AHA(4) BSD Programmer's Manual AHA(4)NAMEaha - Adaptec AHA-1540B/AHA-1542B SCSI host adapter driver
SYNOPSIS
aha0 at isa0 port 0x330
DESCRIPTION
The aha driver is a software interface to the Adaptec AHA-1540B and
AHA-1542B ISA host adapters for the Small Computer Systems Interface
(X3.131-1992) bus. This driver also supports compatible devices such as
the Buslogic line of host adapters in 24 bit mode. The Adaptec cards
provide automatic SCSI protocol handling, in which the user just sends a
SCSI Command Descriptor Block and the SCSI protocol state is managed on-
board. They provide parallel operations, using a `mailbox' protocol
which allows the host to send several operations that the board will
schedule automatically. The cards also support bus master DMA, a form of
ISA DMA which has low software overhead and is used for scanning command
blocks and mailboxes as well as reading and writing buffers. For conve-
nient operation in the ISA DMA environment, the Adaptec firmware offers
scatter/gather mapping, a technique for handling transfers out of virtual
memory that works by providing the card with a map of the physical ad-
dresses in a virtual region. The card supports only 24-bit physical ad-
dresses, but the driver will copy pages outside this range into buffers
with low addresses if necessary. Two SCSI features supported in firmware
are automatic synchronous SCSI protocol negotiation, which can identify
SCSI peripherals that support high-speed operation and match transfer
speeds, and automatic connect/disconnect bus control, which allows the
host adapter to disconnect from long-running operations such as seeks or
rewinds and to connect to other operations on other targets while waiting
for the original operation to reconnect. The AHA-1542B differs from the
AHA-1540B in providing an on-board floppy controller which is handled us-
ing a standard floppy interface (see floppy(4)). The EISA AHA-1742A card
can be handled in `standard' (AHA-1542B compatible) mode using this driv-
er, although it is more effective to use `enhanced' mode instead; see
eaha(4).
The aha driver is designed to be used as a machine-dependent back end for
machine-independent SCSI pseudo-devices (see sd(4), st(4)).
Booting from a SCSI disk attached to an Adaptec host adapter requires
boot code with knowledge of the host adapter. A SCSI disk boot block
named ahaboot and a 14-sector boot named bootaha must be installed using
disksetup(8) on a SCSI disk in order to boot from the Adaptec interface.
The Adaptec card simulates the BIOS interface for a standard PC hard disk
for the purpose of booting, and the CMOS setup memory must indicate that
the primary hard disk is `Not Installed' in order for the Adaptec card to
override the normal hard disk boot.
BOOT PARAMETERS
There are now parameters which are configurable from boot(8) with the
-parm command. Typically these commands would be added to boot.default(5)
though they can be set at the ``boot:'' prompt.
The following parameter takes a list of target specifiers as an argu-
ment(s):
single_lun
For these targets only look at lun 0.
-parm aha* single_lun=none #default
-parm aha* single_lun=all
-parm aha* single_lun=target1,target2
The following is a list of permissible arguments to this
command:
t0 target 0.
target0 target 0.
t1 target 1.
target1 target 1.
t2 target 2.
target2 target 2.
.
.
.
t6 target 6
target6 target 6
t7 target 7
target7 target 7
all targets 0 through 7
none no targets
The following parameter takes a numeric value as an argument:
reset_delay
This is used to control the number of seconds of delay
which is inserted after the SCSI bus is reset at boot time.
-parm aha* reset_delay=5 #default
-parm aha* reset_delay=1 #1 second reset delay
-parm aha0 reset_delay=0 #no delay after reset
FILES
/dev/sd[0-6][a-h] SCSI disk pseudo-devices
/dev/rst[0-3] SCSI tape pseudo-devices
/usr/bootstraps/ahaboot boot block
/usr/bootstraps/bootaha 14-sector boot
SEE ALSOsd(4), st(4)HISTORY
Written by Donn Seeley of BSDI for BSD/OS 0.3.
BUGS
The AHA-1540A isn't supported yet.
The buffer `bounce' hack for machines with more than 16 megabytes of mem-
ory can be slow.
The driver determines the IRQ and DRQ by reading them from the board with
a `config data' command, but the board uses separate jumpers to set the
real IRQ and DRQ and to set the values returned by the `config data' com-
mand. If these jumpers disagree, severe confusion will result.
The default bus transfer speed is sometimes too high for certain SCSI de-
vices. If trouble occurs, try lowering it with the appropriate jumpers.
Floppy drives usually have tiny buffers and can get data late errors if
the Adaptec card uses the built-in 11-microsecond value for DMA burst
length (bus on time). The driver programs the card to run more slowly to
avoid this problem, but the value of aha_bus_on_time can be increased if
your floppies don't have this problem.
BSDI BSD/OS August 8, 1997 2