smad -- Adaptec AIC-6x60 chipset host adapter driver


smad is the boot-time loadable driver (BTLD) for Adaptec AIC-6x60 chipset host adapter cards. It directly supports these host adapters:

AHA-1510 A  
AHA-1520 A  
AHA-1522 A  

 |AHA-1510   |    |
 |AHA-1510 A |    |
 |AHA-1520   |    |
 |AHA-1520 A |    |
 |AHA-1522   |    |
 |AHA-1522 A |    |

The smad driver supports both the AIC-6260 and AIC-6360 chipsets, and replaces the older and less efficient spad driver (which only supported the AIC-6260 chipset).

Refer to the Compatible Hardware Web Pages. to determine the support status of your host adapter, or contact your system supplier.

Configuring the smad driver

You can configure the smad driver using entries in /etc/conf/cf.d/mdevice and /etc/conf/sdevice.d/smad. See mdevice(F) and sdevice(F). Changes to these files will only take effect if the kernel is relinked using link_unix(ADM) and the machine rebooted.

Configure smad driver-specific characteristics by editing the /etc/conf/pack.d/smad/space.c file, which controls parameters such as address, host adapter ID, IRQ, parity, Fast SCSI, synchronous/asynchronous functionality, and whether disconnection is allowed.

Host adapter base address
Reset the port address for the host adapter. By default, Host adapter 0 is set at port address 0x340.
   paddr_t smad_base[ha_number] = {ha0_addr, ha1_addr};
For example, if you want to configure host adapter 0 at 0x340 and host adapter 1 at 0x140, define this as:
   paddr_t smad_base[ha_number] = {0x340, 0x140};

If you do not modify the space.c file, the HIM sets all the configuration parameters to the default. If you want to change the default, the first number indicates whether the default should be changed. If it is set to 0, the parameter will be set to the default for non-readable jumper hardware, such as the AHA-1510. If it is set to 1, the second number will be used to override the default. For readable jumper hardware like the AHA-1520, setting the first number to 0 causes the jumper settings to be read as default values.

Host adapter SCSI ID
Change the SCSI ID for non-readable jumper hardware from the default value of 7.
   aha_change smad_hba_id[ha_number] = {0,ha0_id,1,ha1_id};
For example, to configure host adapter 0 as SCSI ID 5 and host adapter 1 as the default (7), set this parameter as follows:
   aha_change smad_hba_id[ha_number] = {0,5,0,0};

Interrupt level
Change the IRQ level for non-readable jumper hardware from the default value of 11. For readable jumper hardware, this value is always read from the jumper:
   aha_change smad_irq[ha_number] = {0,irq,1,irq};

Parity option
Specifies whether the host adapter checks parity on incoming SCSI data. Note that parity is always generated on outbound SCSI data. The supported values are:

parity checking is enabled (default)

parity checking is disabled
   aha_change smad_parity[ha_number] = {1,0};

Fast SCSI option
Enable/disable the Fast SCSI option when the AIC -6460 is configured. Supported values are:

synchronous transfers up to 10MB per second can be negotiated

synchronous transfers up to 5MB per second can be negotiated
   aha_change smad_fast[ha_number] = {1,1};

Asynchronous option
Enable/disable the asynchronous option. The valid values are:

respond to synchronous negotiation attempts by SCSI targets (default)

operate in asynchronous mode only; refuse to respond to synchronous negotiation
   aha_change smad_asyn[ha_number] = {1,0};

Synchronous negotiation option
Enable/disable the synchronous negotiation option. The supported values are:

initiate for synchronous negotiaton (default)

respond to synchronous negotiation
   aha_change smad_sync_mode[ha_number] = {1,1}

Allow disconnection
Determine whether disconnection is allowed. Supported values are:

allow target to disconnect (default)

do not allow target to disconnect
   aha_change smad_discon[ha_number] = {1,1}

Boot time configuration of SCSI

Use the bootstring(HW) parameters to override the default hardware configuration information. Of special interest are the adapter= parameter that specifies information for the host adapter card that plugs into or is part of the motherboard, and the periph= parameter that specifies information about the host adapter being used by one of the generic peripheral interfaces (Sdsk, Srom, or Stp).

ioctl commands

The smad driver supports all standard SCSI ioctls that are defined in the <sys/scsicmd.h> header file and documented on the scsi(HW) manual page.


The following error messages may be displayed on the console. See messages(M) for general information about kernel error messages, including a list of generic device driver errors.

WARNING: smad: Cannot initialize drive ID: n
smad was unable to perform SCSI commands on the boot drive to determine its drive geometry. This might indicate that not enough memory was available to perform the operation.

WARNING: smad: Poll command failed on drive ID:n
smad was unable to perform SCSI command on the drive indicated.

WARNING: smad: spurious interrupt
An unexpected interrupt was received.

WARNING: smad: cannot allocate DMA channel n
Requested DMA channel was not available.

WARNING: smad: adapter nError: msg

msg can be one of:

Abort Failure

Time allocated for completion of request was exceeded.

Target Returned Busy

SCSI Bus Reset
The SCSI bus was reset.

Parity Error
Possible data corruption on SCSI bus.

Auto-Request Sense Failed
Request sense command on previous command that generated a check condition has failed.

Data Overrun Occurred
The amount of data requested does not match the amount of data returned.

Unexpected Bus Free Occurred
SCSI bus went to ``bus free'' state unexpectedly.

Protocal Error
Possible hardware signal conflict between host adapter and target device.

Reservation Conflict

Command Terminated
Command has been terminated.

Queue is full
Adapter cannot accept any more commands until the existing commands have completed.



SCSI interface header files

See also

boot(HW), link_unix(ADM), mdevice(F), mkdev(ADM), sconf(ADM), scsi(HW), sdevice(F)

``Adding SCSI host adapters and peripherals'' in the SCO OpenServer Handbook
SCO OpenServer System Administration Guide

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003