ad320(HW)


ad320 -- Adaptec Ultra320 SCSI host adapter driver

Description

ad320 is the device driver for the Adaptec® Ultra320 SCSI card family. It directly supports these host adapters:

Adaptec 39320 PCI host adapter
Adaptec 39320A PCI host adapter
Adaptec 29320 PCI host adapter
Adaptec 29320LP PCI host adapter
Adaptec 29320ALP PCI host adapter
Adaptec 29320A PCI host adapter
AIC-7901A host adapter
AIC-7901B host adapter
AIC-7902A4 host adapter
AIC-7902B host adapter

Currently, this driver supports up to two host bus adapters. Dual-channel cards are treated as two separate adapters.

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

Configuring the ad320 driver

You can configure the ad320 driver using entries in /etc/conf/cf.d/mdevice and /etc/conf/sdevice.d/ad320. See mdevice(F) and sdevice(F). Changes to these files take effect once you relink the kernel using link_unix(ADM) and reboot the system.

Configure ad320 driver-specific characteristics by editing the /etc/conf/pack.d/ad320/space.c file, which controls parameters such as the SCSI ID, timeouts, and so on.

Each parameter line represents a configurable parameter for one host adapter. The first number indicates whether the parameter should be changed from the default; if it is 0, the parameter will be set to the default for that adapter.


Interrupt distribution
Set to 1 for base CPU interrupts only. If set, interrupt distribution to DRIVER_CPU_DEFAULT (0) cause interrupt distribution across all CPUs.

SCSI ID
The default is 7. The format is as follows:
   aha_change ad320_hba_id[SCSI_NAD320] = {enable, scsiID, {enable, scsiID ,...};
Where enable=1 and scsiID=0-15.

Parity option
Specifies whether the host adapter will check parity on incoming SCSI data. (parity always generates on outbound SCSI data) The supported values are:

1 parity checking is enabled.
0 parity checking is disbled.

 1   parity checking is enabled.
 0   parity checking is disbled.
   aha_change ad320_parity[SCSI_NAD320] = {enable, parityCheck};
Where enable=1 and parityCheck=1 or 0.

Time selection
Specifies the length of time in milliseconds the host adapter will wait for a target to respond to selection before aborting the selection procedure. The supported values are:

AD320_SEL_256 256 milliseconds
AD320_SEL_128 128 milliseconds
AD320_SEL_64 64 milliseconds
AD320_SEL_32 32 milliseconds

 AD320_SEL_256   256 milliseconds
 AD320_SEL_128   128 milliseconds
 AD320_SEL_64    64 milliseconds
 AD320_SEL_32    32 milliseconds

Allow disconnection
A 16-bit field where each bit corresponds to a target ID (bit 0 for target ID 0, and so on). If bit is set to 1, disconnection is allowed for the corresponding target ID. Default value is allow disconnection. If you want be able to change this value in ScsiSelect without having to rebuild kernel modify to:
   aha_change ad320_disconnect[SCSI_NAD320];


NOTE: If disconnection is not allowed, tag-queueing must be turned off. Turning on tag-queuing must also allow disconnection.


Ignore (suppress) underrun
If set to 1, ignore underrun as an error. If set to 0, report underrun as an error. Default is 1, ignore underrun as an error.

Tagged command queuing
Tagged queuing increases performance by reordering the requests from the host adapter to minimize head switching and seeking. If set to 1, driver will do tagged queuing. Set to 0 to disable. Default is 1 to enable.

Scatter Gather
Scatter/gather operations can reduce the number of system calls required to perform I/O. If set to 1, driver will perform scatter-gather. Set to 0 to disable.

Suppress scanning for LUN
During initialization, the driver will scan all devices to obtain negotiation information. By default, all target IDs are scanned, but not the LUN. A value of 0 disables LUN scanning and 1 enables.

Instrumentation
Instrumentation for each host adapter (default is disabled).


NOTE: Normally CIO software enables instrumentation. Therefore, it is not necessary to enable instrumentation here. However, enabling will provide more accurate instrumentation information but at a slight expense of performance.


ad320_instr_errlogsz
If Instrumentation is used, the maximum number of entries in the error log. Each entry is approximately 40 bytes long. min=1; default=3;, max is limited by available memory.

ad320_instr_buffersz
If Instrumentation is used, the maximum number of 4K pages to allocate for data for SCSI pass thru commands (read, write, and so on). min=2, default=2, max=16.

ad320_message_level
Sets the types of messages to be displayed:

0 all
1 notices, warnings, and errors
2 warnings and errors
3 errors
9 none

 0   all
 1   notices, warnings, and errors
 2   warnings and errors
 3   errors
 9   none

ad320_autosense_enable
Set whether driver should automatically try to get the sense information in a check condition.

1 (default)
if a check condition occurs, driver will do a request sense to obtain the sense information. This information will be available in the ``req_p->scsi_sense'' field.

0
A check condition will be reported to the calling layer and it will be responsible for performing the request sense.

Maximum tagged Qqeue
If tagged queuing is used, the maximum number of tagged queuing IOBs the driver will send to each SCSI device. The valid values are 1 to 32. The default value is 8.

ad320_hw_map
0=I/O mapped (default). 1=memory mapped.

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).

Configuring dual-channel adapters

If your adapter supports more than one SCSI bus (that is, you have one of the dual-channel adapters), you must ensure that all installation devices are on the primary bus.

To use the secondary bus channel after installation, it must be configured as an additional SCSI host adapter. Dual-channel cards are treated as two separate adapters.

BIOS notes

These notes apply to the Adaptec host adapter BIOS:

ioctl commands

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

Diagnostics

The following error messages are associated with the ad320 driver. See messages(M) for general information about kernel error messages, including a list of generic device driver errors.

WARNING: ad320: Adapter diagnostic failure -- possible resource conflict
ad320 was unable to initialize the hardware that it found. This often indicates a hardware error.

WARNING: ad320: Cannot initialize device
ad320 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: ad320: CONFLICT-Disconnection must be enabled in order for tag-queuing to work
By definition, tag queuing requires that disconnection be enabled. If tag queuing is enabled but disconnect is disabled, then this message appears. The solution is to either enable disconnection or disable tag queuing in the driver's space.c file.

WARNING: ad320: Unexpected interrupt
An interrupt occurred but there was no pending command. The source could be another driver, such as a video driver, that is sharing the same interrupt. From the standpoint of the host adapter driver, this message can be ignored.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0
Command Aborted by Host Adapter
No response required.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0)
Selection Timeout
Device is not ready, malfunctioned, or is no longer connected to the SCSI bus. Make sure that the device is connected. Also, check the cabling and power connector.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0
Data Overrun or Underrun occurred
For CD-ROM devices, no response is required. For other devices, check the hardware and software for the error condition.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0)
Unexpected Bus Free Occurred
Almost anything can cause this message, including device firmware, the SCSI driver, and bus resets. Usually no user response is possible.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0)
Target Bus Phase Sequence Error
An error occurred in the SCSI phase. Anything can cause this message, including device firmware, the SCSI driver, and bus resets. Usually no user response is possible, although you may want to avoid issuing the commands that resulted in this error.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0)
Invalid SCSI Linking Operation
No response required.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0)
Auto-Request Sense Failed
When a check condition occurs, the host adapter automatically performs a check condition to obtain the sense key. If that process also fails, this message is displayed. No user response required.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0)
Tagged Queuing Rejected by Target
Target rejected a tagged command. The solution is to disable tagged queuing.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0)
Host Adapter Hardware Error
Check the adapter and cabling. Be sure that the host adapter is firmly seated in the slot. The host adapter might be malfunctioning; contact the host adapter manufacturer for assistance.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0)
Target Didn't Respond to ATN (RESET)
If no other error is visible, no user response is required. Otherwise, contact the device manufacturer.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0)
SCSI bus reset by host adapter
If no other error is visible, no user response is required.

WARNING: ad320: adapter 0 Error: ad320 (ha=0 bus=0 id=0 lun=0)
SCSI bus reset by other device
If no other error is visible, no user response is required.

Files


/usr/include/sys/ad320.h

/usr/include/sys/scsicmd.h

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 The SCO Group, Inc. All rights reserved.