rp(4) driver for Comtrol RocketPort Intelligent Serial Port Cards


device rp

For ISA cards, you must specify the port address in /boot/device.hints hint.rp.0.at=isa hint.rp.0.port=0x100


This driver provides a kernel device driver for the RocketPort and RocketPort RA serial boards. These boards provide 8, 16, or 32 high-speed serial ports while requiring only 68 bytes of I/O space for all 8, 16, or 32 ports, and do not require an interrupt channel. This driver supports up to four RocketPort or RocketPort RA boards in one machine simultaneously. If you are using four 32 port RocketPort boards, you can put as many as 128 intelligent serial ports on your system.

The driver supports the following speeds: 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 7200, 14400, 57600, 76800, 115200, and 230400. (You must use termios(4), rather than the old style ioctl interface to use non-traditional speeds.)

An open on the driver will block until carrier is present, unless O_NONBLOCK or CLOCAL is set.


The first RocketPort or RocketPort RA card requires a 68-byte contiguous block of I/O addresses, starting at one of the following: 0x100h, 0x140h, 0x180h, 0x200h, 0x240h, 0x280h, 0x300h, 0x340h, 0x380h. The second, third, and fourth RocketPort cards require only a 64-byte contiguous block of I/O addresses, starting at one of the above address ranges. The I/O address range used by any of the RocketPort cards must not conflict with any other cards in the system, including other RocketPort cards. The starting range of the I/O ports used by each card must match with the I/O address specified in /boot/device.hints

Since the first RocketPort uses 68 I/O addresses, if the first card is set to use an I/O block starting at 0x100, it will occupy the I/O ports between 0x100 and 0x143. This means that the second, third, or fourth RocketPort board may not use the block of addresses starting at 0x140, since the first three I/O addresses of that range are used by the first board. This is an important point to keep in mind.

If you have two ISA cards, one installed at 0x100 and the second installed at 0x180, then you should add the following to /boot/device.hints


The configuration of the RocketPort cards is done via the set of 8 DIP switches, labeled SW1 on the RocketPort card:

| 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
| Unused| Card  | I/O Port Block|

DIP switches 7 and 8 are unused, and must be left on.

DIP switches 6 and 5 identify the card number of each RocketPort card. The first card installed in the system must have its DIP switches set as card number one; the second card installed in the system must have its DIP switches set as card number two; and so on. As shipped from the factory, DIP switches 6 and 5 are both on by default, indicating that this is the first card installed on the system:

DIP Switches
6    5
On   On   First Card
On   Off  Second Card
Off  On   Third Card
Off  Off  Fourth Card

DIP switches 4, 3, 2, and 1 indicate the I/O address range used by the first RocketPort card. If there are more than one RocketPort cards installed in a system, the second, third and fourth RocketPort cards must also be set to the I/O address range used by the first RocketPort card; all cards must have these DIP switches set identically for proper operation. As shipped from the factory, DIP switch 4 is on, and switches 3, 2, and 1 are off by default, indicating an I/O address range used by the first card which starts at 0x180 and extends to 0x1C3.

DIP Switches         I/O Address Range
4    3    2    1     Used by the First Card
On   Off  On   Off   100-143
On   Off  Off  On    140-183
On   Off  Off  Off   180-1C3
Off  On   On   Off   200-243
Off  On   Off  On    240-283
Off  On   Off  Off   280-2C3
Off  Off  On   Off   300-343
Off  Off  Off  On    340-383
Off  Off  Off  Off   380-3C3




An Theodore Ts'o Aq [email protected]

This driver was written under contract for Comtrol Corporation. For dealer, distributor and other information regarding Comtrol RocketPort contact Comtrol Corporation at (800) 926-6876 or send email to Aq [email protected] . To report bugs for this driver, please send email to Aq [email protected] .


If incoming software flow control is enabled on a 486 or Pentium machine, and the flow control is very heavily exercised, on rare occasions a character will get dropped. This problem does not occur on a 386, and it is not currently known whether the bug is in the driver or in the Bs x tty layer.