Subject: High-speed (230 - 960K) for Cyberserial PCI cards
To: None <tech-kern@NetBSD.org>
From: Frederick Bruckman <fredb@immanent.net>
List: tech-kern
Date: 01/19/2004 00:06:00
The following adds support for the selecting the alternate clock
on the SIIG Cyberserial PCI cards (one and two-port), which permits
speeds to 960k...

  ftp://ftp.netbsd.org/pub/NetBSD/misc/fredb/cyberserial.diff

The bits are in the PCI configuration space, so the tag for that has
to be passed down into com_softc. I guess that's weird, but all the
changes are conditional on #ifdef COM_CYBER.

I made a point to abstract the bit-toggling function into its own
file, so that it might be useful, at some future time, for setting ECP
mode on the Cyberparallel cards, or for selecting the high-speed clock
on the four and eight-port cards. The only problem with the first,
presently, is that there's no interface for setting ECP mode. (Add 16
to the minor?) The issue with the four and eight-port cards is that
there's only one bit for all ports, so that needs another interface,
too, as it can't be handled transparently as a consequence of setting
the speed as it is on the one and two-port cards.

What do you think? Does anyone see any glaring errors, or is this OK
to commit?

Frederick