SBNI(4)

πŸ’– SBNI(4) β€” the Granch SBNI12 leased line modem driver πŸ’–

okay bestie, pull up a chair, we're talking about sbni β€” the driver for Granch SBNI12 leased line modems, straight out of the i386 Kernel Interfaces Manual. it's giving vintage networking, it's giving serial-line realness, and yes, we're gonna read the whole thing together. πŸ¦‹


✨ SYNOPSIS ✨

device sbni

that's it. that's the whole vibe. one line and you're in. πŸ’…


🌸 DESCRIPTION 🌸

okay so the sbni driver has your back for leased line modems of these models:

  • SBNI12-02, SBNI12D-02
  • SBNI12-04, SBNI12D-04
  • SBNI12-05, SBNI12D-05, ISA and PCI
  • SBNI12-10, SBNI12D-10, ISA and PCI

and also a kit for data link over a voice band:

  • SBNI12-11, SBNI12D-11, ISA and PCI

so like, besides the standard port and IRQ specs, the sbni driver ALSO supports a bunch of flags that can set baud rate, receive level, and the low three bytes of the Ethernet MAC-address. and why do we care about that last one? because the high three bytes are always 00:ff:01, periodt β€” Granch modems show up to the system as Ethernet-like network cards, so that's just how it is. πŸ’€


πŸ‘‘ the high byte of the flags πŸ‘‘

the high byte of the flags is a bit field, and it's what you use to specify the SBNI adapter receive level / baud rate. let's break it down, no cap:

  • Bits 0-3: receive level (0x00..0x0f)
  • Bits 4-5: baud rate number:
00 - 0 baud rate (2Mb in fast mode/500kb in slow)
01 - 1 baud rate (1Mb/250kb)
10 - 2 baud rate (500kb/125kb)
11 - 3 baud rate (250kb/62.5kb)
  • Bit 6: use fixed receive level

if bit 6 is set then receive level will be set according to bits 0-3 value, otherwise receive level will be autodetected

  • Bit 7: use fixed baud rate

if bit 7 is set then baud rate will be set according to bits 4-5 value, otherwise baud rate is set to 2Mb

like… bits 6 and 7 are literally the "do I trust the hardware or do I trust myself" switches and I am OBSESSED. 🫢


πŸŽ€ FILES πŸŽ€

the sources for the driver reside in:

/sys/dev/sbni/if_sbni.c
/sys/dev/sbni/if_sbnireg.h
/sys/dev/sbni/if_sbnivar.h

three files. main character energy. go read them if you're curious, iykyk. πŸ“‚βœ¨


🌈 SEE ALSO 🌈


⭐ HISTORY ⭐

the sbni device driver first appeared in FreeBSD 4.6. a whole era. a moment. πŸ•°οΈ


πŸ’œ AUTHORS πŸ’œ

the sbni device driver for FreeBSD 4.x was written by Denis I. Timofeev, partially based on David Greenman's ed(4) driver. and the earlier versions (available on ftp.granch.com) were written by Alexey V. Zverev. shoutout to the OGs. 🫑

and SBNI12 hardware was designed by Alexey V. Chirkov. the actual silicon?? iconic. truly the blueprint. πŸ‘‘


bestie reminder: this page is from the Debian crew, dated January 8, 2002. so like, yes, it's a time capsule, and yes, we're respecting it. πŸ’–

okay that's the whole page, love u, go configure ur modem, mwah πŸ’…πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from