RC(4)

πŸ’– RC(4) β€” the RISCom/8 multiport card, bestie edition πŸ’–

okay so this is RC(4) from the Kernel Interfaces Manual, and babes, it's giving vintage hardware realness. it's a whole driver page, so grab a lil snack πŸ“ and let's get into it.


✨ NAME ✨

rc β€” the RISCom/8 multiport card, no cap 🫢


🌸 SYNOPSIS 🌸

device isa
device rc

like, that's it. that's the whole vibe. so simple, so iconic ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

so the RISCom/8 is an eight port ISA RS-232C communications multiplexer with a built in RISC processor. yes queen, a whole RISC processor living on your serial card, main character energy fr fr πŸ‘‘

it uses a block of sixteen I/O ports in the range 0x200 to 0x3f0, and you pick where that block lives with the on-board switches or jumpers. important: the block must be aligned on a sixteen port boundary. like, it's not optional, the alignment is the moment πŸ’…

the jumper-selectable hardware interrupt level may be set to be detected during system initialization using settings found in the /boot/device.hints file. so go peek in there, iykyk 🌈

also this driver is mostly based on the Cirrus Logic CL-CD180 driver. shoutout to the ancestor, we stan a lineage πŸ’œ


πŸŽ€ HARDWARE πŸŽ€

the rc driver provides support for the SDL Communications RISCom/8 boards. that's the whole hardware list, and honestly? she knows what she supports and she's not pretending otherwise 😌


πŸ’… DIAGNOSTICS πŸ’…

the following driver specific error messages may be reported, and bestie, if you see one of these, something is lowkey going through it:

  • rc%d channel%d: interrupt-level buffer overflow β€” an internal buffer overflow error has occurred on the listed channel. to correct this, the rc driver will need to be reloaded. yeah, it's a whole reload situation, no shortcuts 🫠
  • rc%d: Bad char chan %d β€” the channel has obtained a bad set of characters. not a vibe.
  • rc%d: Got extra chars chan %d β€” the rc driver got more characters than expected on the channel shown. greedy lil channel πŸ™ˆ
  • rc%d: data mismatch chan %d ptr %d (%d != %d) β€” data sent from channel %d to the rx buffer was different then expected. the numbers in the parens are literally telling you they don't match. the math is not mathing.
  • rc%d: channel %d command timeout, rc.c line: %d β€” a command timeout has occurred on the channel. you can consult the src/sys/dev/rc/rc.c file for more information. so if you wanna go read source at 3am, the door is open πŸ’€

🌟 SEE ALSO 🌟

and also, the link, fr:

http://www.sdlcomm.com


⭐ HISTORY ⭐

the rc driver first appeared in FreeBSD 2.0.5. this manual page first appeared in FreeBSD 5.3. a legacy icon, honestly πŸ‘‘


πŸ’œ AUTHORS πŸ’œ

this manual page was written by Tom Rhodes <trhodes@FreeBSD.org>. thank you for your service, king 🫢


😭 BUGS 😭

okay so this is the part where we keep it real:

  • the rc driver code still uses the spl(9) functions. these should be replaced by mutex(9) functions. so like, it's the old way, and the old way is still in there, no cap.
  • the various ttyld_*() functions should be documented. bestie they are just. out here. undocumented. we're waiting ✨

not me finishing a whole manpage and still wanting to say one more thing πŸ’…

and that's the page!! πŸŒˆπŸ’– this lil beauty came from Debian, dated March 18, 2005 β€” so yeah, she's an elder, she's been through things, and she still slays. periodt. πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from