AHA(4) FreeBSD Kernel Interfaces Manual AHA(4)


ahaAdaptec SCSI host adapter driver


To compile this driver into the kernel, place the following lines in your kernel configuration file:

device scbus
device aha

Alternatively, to load the driver as a module at boot time, place the following line in loader.conf(5):


In /boot/device.hints:


This driver provides access to the SCSI bus connected to the Adaptec AHA-154x and AHA-1640 SCSI host adapters. x is 0 for controllers without a floppy drive and 2 for controllers that have them. For optimum performance, Adaptec AHA-174x controllers should be configured in enhanced mode and attached via the ahb(4) driver.

One device hint entry for every card to be attached by the system is required. Specific values for the port address, IRQ, and DRQ may be specified. If wildcard values are used, the driver will query the device for its current settings and use those. If the port address is a wildcard, the driver consults an internal table of possible port address locations and attaches to the first unattached card it finds. The possible port addresses for this card are 0x330, 0x334, 0x230, 0x234, 0x130, and 0x134.

The AHA-1640 is an MCA bus card. Since the MCA bus is a self-identifying bus, no setting of hints is required.


The aha driver supports the following SCSI host adapters:

  • Adaptec AHA-154xB
  • Adaptec AHA-154xC
  • Adaptec AHA-154xCF
  • Adaptec AHA-154xCP
  • Adaptec AHA-1640
  • Adaptec AHA-174x in 154x emulation mode
  • DTC 3290 SCSI controller in 1542 emulation mode
  • Tekram SCSI controllers in 154x emulation mode


The aha driver was ported by M. Warner Losh from the bt driver written by Justin T. Gibbs.


The AHA-154xA card does not support residuals on data transfers. As a result, this card is no longer supported.

There have been some reports that the AHA-154xB does not work well under heavy load.

The AHA-154xCP is a plug and play controller. However, its resources are set using the on-board BIOS and cannot be moved. Failures to attached for this card are often caused when the resources set in the BIOS conflict.

July 4, 2004 FreeBSD