RP(4)
π RP(4) β the rp driver π
okay bestie, gather round, because this is the Kernel Interfaces Manual entry for rp(4), aka the driver that gives your machine a whole lil army of serial ports and does it with main character energy. no cap. π¦
β¨ NAME β¨
rp β driver for Comtrol RocketPort Intelligent Serial Port Cards π
πΈ SYNOPSIS πΈ
device rp
and for ISA cards, you must specify the port address in /boot/device.hints:
hint.rp.0.at="isa"
hint.rp.0.port="0x100"
like yes you literally have to, it's not optional, it's giving mandatory π
π DESCRIPTION π
so this driver is a kernel device driver for the RocketPort and RocketPort RA serial boards. these boards hand you 8, 16, or 32 high-speed serial ports, and the way they do it?? they only need 68 bytes of I/O space for all 8, 16, or 32 of those ports. and they do not require an interrupt channel. obsessed, honestly. π
this driver supports up to four RocketPort or RocketPort RA boards in one machine at the same time. and if you're running four 32-port RocketPort boards, you can put as many as 128 intelligent serial ports on your system. 128!! that's so many bestie π«Ά
the rp driver supports these speeds, in this exact order:
50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 7200, 14400, 57600, 76800, 115200, and 230400.
heads up: you must usetermios(4), not the old styleioctlinterface, if you wanna use the non-traditional speeds. the old way just won't do it, periodt.
and one more thing β an open on the rp driver will block until carrier is present, unless O_NONBLOCK or CLOCAL is set. so if you're just sitting there waiting, that's why. it's not ghosting you, it's the carrier. π
π§ HARDWARE CONFIGURATION π§
the first RocketPort or RocketPort RA card needs a 68-byte contiguous block of I/O addresses, starting at one of these:
0x100h, 0x140h, 0x180h, 0x200h, 0x240h, 0x280h, 0x300h, 0x340h, 0x380h
the second, third, and fourth RocketPort cards only need a 64-byte contiguous block of I/O addresses, starting at one of those same address ranges. (slay, they're low maintenance π )
the I/O address range used by any of the RocketPort cards must not conflict with any other cards in the system β and yes, that includes other RocketPort cards. the starting range of the I/O ports used by each card has to match the I/O address specified in /boot/device.hints.
so here's the part that bites people: 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. which means the second, third, or fourth RocketPort board may not use the block of addresses starting at 0x140, because the first three I/O addresses of that range are already used by the first board. π¨ this is an important point to keep in mind. like genuinely. write it on your hand.
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:
hint.rp.0.at="isa"
hint.rp.0.port="0x100"
hint.rp.1.at="isa"
hint.rp.1.port="0x180"
π§ the DIP switches π§
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. do not touch them. they're just vibing.
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
π FILES π
/dev/ttyR[0-4][0-9a-f]β your devices, your babies π
π AUTHORS π
Theodore Ts'o <tytso@mit.edu> β icon, legend, wrote the thing π
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 info@comtrol.com. to report bugs for this driver, please send email to bug-bsdi-rocketport@comtrol.com.
π BUGS π
okay so here's the one thing that's not slaying: 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 rp driver or in the BSD/OS tty layer. so likeβ¦ it's a mystery, bestie. a 486-era mystery. π
and that's the whole page, fr fr. this one shipped from Debian, dated November 15, 1995, and it lives at RP(4) in the manual. go forth and configure your serial ports responsibly πβ¨π
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 1995 Comtrol, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms