|
|
coherent
aahhaa115544xx -- Device Driver
The device driver aahhaa115544xx lets you use SCSI interface devices attached to
an Adaptec AHA-154x series host adapter. This driver has major number 13.
It can be accessed either as a block-special device or as a character-
special device. The minor number specifies the device and partition number
for disk-type devices, letting you use up to eight SCSI-IDs, with up to
four logical unit numbers (LUNs) per SCSI-ID and up to four partitions per
LUN.
The first ooppeenn call on a SCSI disk device allocates memory for the
partition table and reads it into memory.
_C_o_n_t_r_o_l_l_e_r _C_o_n_f_i_g_u_r_a_t_i_o_n
Prior to installing the Adaptec host adapter in your system, you must
configure the I/O base address, interrupt vector, and DMA channel as
follows:
I/O base address:0x330
DMA channel: 5
Interrupt vector:IRQ11
In addition, if you are using any synchronous SCSI peripherals, disable the
synchronous transfer option on the Adaptec host adapter.
After verifying that your controller works with COHERENT, you may select an
alternate I/O base address or an alternate interrupt vector. Device-driver
variables SSDDBBAASSEE and SSDDIIRRQQ correspond to the I/O base address and interrupt
vector, respectively. Variable SSDDDDMMAA sets the number of the DMA channel
being used. See Lexicon article hhss for an example of how to configure a
device driver.
When processing BIOS I/O requests prior to booting COHERENT, the Adaptec
host adapter uses translation mode drive parameters: number of heads,
cylinders, and sectors per track. Most current versions of the AHA-154x
use values of 64 heads and 32 sectors per track, and calculate the number
of cylinders based upon drive capacity. Note that these numbers are called
``translation-mode'' parameters because they have nothing to do with the
geometry of the physical drive. Some early versions of the AHA-154x, and
some versions distributed by Tandy, use 16 heads and 32 sectors per track.
Device driver variable SSDD_HHDDSS is initialized to 64 as shipped; it should be
patched to a value of 16 for adapters whose BIOS code uses 16-head
translation mode. The translation-mode parameters used by the BIOS code
present on your host adapter can be obtained using the iinnffoo command from
the tertiary boot in versions 3.2.1 and later of COHERENT. (See the
article on ttbboooott for details.) Note that the BIOS code is executed by
COHERENT only during initial bootstrap. After that, drive parameters are
of no consequence since SCSI I/O requests are based upon logical block
number, rather than on cylinder/head/sector addressing.
The installation procedure for COHERENT versions 3.2.0 and later patches
all necessary variables for the accompanying version of the aahhaa115544xx driver
by executing the command:
/etc/mkdev scsi
_M_i_n_o_r _D_e_v_i_c_e _N_u_m_b_e_r_s
The minor device number is decoded as follows:
_B_i_t _n_u_m_b_e_r: 7 6 5 4 3 2 1 0
_M_e_a_n_i_n_g: S I I I L L P P
where _S indicates the ``special'' bit, _I_I_I indicates a three-bit field
containing the SCSI-ID in the range of zero through seven, _L_L indicates a
two-bit field containing a LUN in the range of zero through three, and _P_P
indicates a two-bit field that contains either a partition number for disk-
type devices or a set of special modes for devices other than disks.
The ``special'' bit and the partition number interact as follows:
_D_e_s_c_r_i_p_t_i_o_n _S _B_i_t _P_P _D_e_v_i_c_e _T_y_p_e
partition a 0 00 /dev/sd?a disk
partition b 0 01 /dev/sd?b disk
partition c 0 10 /dev/sd?c disk
partition d 0 11 /dev/sd?d disk
partition table 1 00 /dev/sd?x disk
no rewind 1 01 /dev/sd?n tape
RESERVED 1 10 --- ----
rewind on close 1 11 /dev/sd? tape
_L_o_a_d_i_n_g _t_h_e _D_r_i_v_e_r
On COHERENT releases which support loadable device drivers, the aahhaa115544xx
device driver must be loaded on a system that does not have a SCSI hard
disk as the root device. To do so, use the command /eettcc/ddrrvvlldd, as follows:
/etc/drvld -r /drv/aha154x
_F_i_l_e_s
/ddeevv/ssdd* -- bblloocckk-ssppeecciiaall ddeevviicceess
/ddeevv/rrssdd* -- cchhaarraacctteerr-ssppeecciiaall ddeevviicceess
_S_e_e _A_l_s_o
ddeevviiccee ddrriivveerrss, ddrrvvlldd, ssccssii, ttbboooott
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.