AHD(4)
β¨ AHD(4) β¨
okay bestie, gather round, because we're talking about ahd(4), the Adaptec PCI/PCI-X Ultra320 SCSI host adapter driver, straight out of the Kernel Interfaces Manual π this one is a whole era of hardware and she is iconic, no cap.
πΈ SYNOPSIS πΈ
so like, if you wanna compile this driver into the kernel (main character move), you drop these lines into your kernel configuration file:
device pci
device scbus
device ahd
and if you also want the debugging code compiled in:
options AHD_DEBUG
options AHD_DEBUG_OPTS=<bitmask of options>
options AHD_REG_PRETTY_PRINT
and if you want one or more controllers to assume the target role:
options AHD_TMODE_ENABLE=<bitmask of units>
OR, if you'd rather be chill about it and just load the driver as a module at boot time, put this line in loader.conf(5):
ahd_load="YES"
periodt. that's the whole synopsis. π
π DESCRIPTION π
this driver gives you access to the SCSI bus(es) connected to Adaptec AIC79xx host adapter chips. she's the bridge, the connector, the yenta of your storage situation fr fr.
driver features include, and I'm gonna list them because every single one is a slay:
- support for narrow and wide busses
- fast, ultra, ultra2, ultra160, and ultra320 synchronous transfers
- packetized transfers
- tagged queueing
- 512 SCB's
- target mode
π₯ AHD_DEBUG_OPTS, the vibe check
the AHD_DEBUG_OPTS option controls which diagnostic messages get printed to the console when AHD_DEBUG is enabled. logically OR the following bits together, like you're making a little bitmask smoothie π:
0x0001β show miscellaneous information0x0002β show sense data0x0004β show Serial EEPROM contents0x0008β show bus termination settings0x0010β show host memory usage0x0020β show SCSI protocol messages0x0040β show mode pointer of the chip register window0x0080β show selection timeouts0x0100β show FIFO usage messages0x0200β show Queue Full status0x0400β show SCB queue status0x0800β show inbound packet information0x1000β show S/G list information0x2000β enable extra diagnostic code in the firmware
β¨ AHD_REG_PRETTY_PRINT
this one compiles in support for human-readable bit definitions for each register that gets printed by the debugging code. gorgeous, stunning, so readable. BUT β and this is the plot twist β it also bloats the compiled size of the driver by approximately 215KB. so it's giving "pretty but she eats" π
π AHD_TMODE_ENABLE
individual controllers can be configured to operate in the target role through the AHD_TMODE_ENABLE configuration option. the value you assign should be a bitmap of all units where target mode is desired. for example, a value of 0x25 would enable target mode on units 0, 2, and 5. cute, right?
β οΈ note that target mode is only supported for ultra160 speeds and below. don't come for me, that's just the rules.
π¦ per-target config, the SCSI-Select menu moment
per target configuration performed in the SCSI-Select menu, accessible at boot, is honored by this driver. this includes:
- synchronous/asynchronous transfers
- maximum synchronous negotiation rate
- wide transfers
- disconnection
- the host adapter's SCSI ID
π HARDWARE π
the ahd driver supports the following, and yes she supports a lot:
- Adaptec AIC7901 host adapter chip
- Adaptec AIC7901A host adapter chip
- Adaptec AIC7902 host adapter chip
- Adaptec 29320 host adapter
- Adaptec 39320 host adapter
- Many motherboards with on-board SCSI support
π«Ά SEE ALSO π«Ά
β HISTORY β
the ahd driver first appeared in FreeBSD 4.7. a legend from day one, honestly.
π AUTHORS π
the ahd driver, the AIC7xxx sequencer-code assembler, and the firmware running on the aic79xx chips was written by Justin T. Gibbs. this manual page is based on the ahc(4) manual page. we love a documented lineage β¨
π BUGS π
okay so, the current generation of 79xx chips do not support target mode in Ultra320 mode. and target mode in general has not been well tested in this driver. so like... proceed with awareness, bestie. it's giving "we tried our best" π
and that's the whole page, babe π
this one came to you from the Debian distribution, dated July 4, 2004 β the Kernel Interfaces Manual, AHD(4), and she ate. bye bestie, go configure your SCSI bus π
π¦ 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, 1996, 1997, 1998, 2000 Justin T. Gibbs. All rights reserved
- Copyright (c) 2002 Scott Long. All rights reserved
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms