ADW(4)

πŸ’– ADW(4) β€” the manual page, but make it a group chat πŸ’–

okay bestie, pull up a chair, because today we're talking about adw β€” the Advansys PCI 16bit SCSI Host adapter driver β€” and yes it lives in the Kernel Interfaces Manual section of the manual pages, so it's ✨official✨. this is a section 4 situation, aka kernel interfaces, aka hardware-adjacent lore. let's get into it πŸ’…


✨ NAME ✨

adw β€” the Advansys PCI 16bit SCSI Host adapter driver. that's it, that's the name, she's short and she knows what she is πŸŽ€


✨ SYNOPSIS ✨

so you wanna compile this driver into the kernel? not as a module, bestie, into the kernel. you gotta drop these exact lines into your kernel configuration file:

device pci
device scbus
device adw

three lines. that's the whole ritual. no cap 🫢


✨ DESCRIPTION ✨

okay so here's the tea β˜• β€” this driver gives you access to the 16bit SCSI bus that's connected to the Advanced Systems Products, Inc. ASC3550 Ultra and ASC38C0800 Ultra2 SCSI Host Adapter chips. two chips, one driver, iconic behavior.

and listen, both chips support:

  • synchronous transfers β€” 20MHz max for the ASC3550 Ultra and 40MHz max for the ASC38C0800 Ultra2, respectively πŸ’¨
  • 16bit transfers
  • tagged queueing 🏷️
  • and up to 253 concurrent SCSI transactions β€” that's a lot of multitasking, she's giving main character energy fr fr

🧚 per-target config, the way it actually works

so there's this thing called the AdvanceWare menu, and you can reach it at boot. whatever per-target configuration you do in there, this driver honors it. periodt. that includes:

  • synchronous/asynchronous transfers
  • maximum synchronous negotiation rate
  • wide transfers
  • disconnection
  • tagged queueing
  • and the host adapter's SCSI ID

but here's the plot twist 😭 β€” the global setting for the maximum number of tagged transactions allowed per target is not honored. why? because the CAM SCSI system just does it itself. it automatically figures out the maximum number of tags a device can receive, and it guarantees fair resource allocation among devices. she doesn't need your help, she's got it 🫑


✨ HARDWARE ✨

the adw driver supports these SCSI controllers, and this is the full list, no skipping:

  • AdvanSys ABP940UW/ABP3940UW
  • AdvanSys ABP950UW
  • AdvanSys ABP970UW
  • AdvanSys ABP3940U2W
  • AdvanSys ABP3950U2W

five icons, all slaying πŸ”₯


✨ SEE ALSO ✨

go read these too, they're all besties with adw:

iykyk 🌸


✨ HISTORY ✨

the adw driver appeared in FreeBSD 3.0. vintage. she's been around and she's still here πŸŽ€


✨ AUTHORS ✨

the adw driver was ported by Justin T. Gibbs from the Linux driver written by Bob Frey of Advanced System Products, Inc.

and many thanks to AdvanSys for providing the original driver under a suitable license for use in FreeBSD πŸ«ΆπŸ’– literally so generous of them, we love a licensing moment.


ngl this whole thing came from the Debian build of the page, dated July 14, 2004, and it's filed under ADW(4) in the Kernel Interfaces Manual. she's old, she's iconic, she's still in your kernel config. bye bestie, go add device adw πŸ’…βœ¨πŸ¦‹
πŸ“¦ where this page comes from