Description

The scsi_hba_attach_setup() function is the recommended interface over the scsi_hba_attach() function.

scsi_hba_attach_setup( ) scsi_hba_attach( )

The scsi_hba_attach() function registers the hba_lim DMA limits and the hba_tran transport
vectors of each instance of the HBA device defined by dip. The
scsi_hba_attach_setup() function registers the hba_dma_attr DMA attributes and the hba_tran transport vectors of
each instance of the HBA device defined by dip. The HBA driver
can pass different DMA limits or DMA attributes and the transport vectors
for each instance of the device to support any constraints imposed by the
HBA itself.

The scsi_hba_attach() and scsi_hba_attach_setup() functions use the dev_bus_ops field in the dev_ops(9S)
structure. The HBA driver should initialize this field to NULL before calling scsi_hba_attach()
or scsi_hba_attach_setup().

If SCSI_HBA_TRAN_CLONE is requested in hba_flags, the hba_tran structure is cloned once
for each target that is attached to the HBA. The structure is
cloned before the tran_tgt_init(9E) entry point is called to initialize a target.
At all subsequent HBA entry points, including tran_tgt_init(9E), the scsi_hba_tran_t structure passed
as an argument or found in a scsi_address structure is the cloned
scsi_hba_tran_t structure,which allows the HBA to use the tran_tgt_private field in the
scsi_hba_tran_t structure to point to per-target data. The HBA should free only
the same scsi_hba_tran_t structure allocated when the HBA detaches. All cloned scsi_hba_tran_t
structures that are allocated by the system are freed by the system.

The flags SCSI_HBA_TRAN_CDB and SCSI_HBA_TRAN_SCB are only valid when tran_setup_pkt() is used.
See tran_setup_pkt(9E) for information on using these flags.

The scsi_hba_attach() and scsi_hba_attach_setup() functions attach a number of integer-valued properties to
dip, unless properties of the same name are already attached to the
node. An HBA driver should retrieve these configuration parameters via ddi_prop_get_int(9F), and respect
any settings for features provided the HBA.

scsi-options

OptionalSCSIconfiguration bits

SCSI_OPTIONS_DR

If not set, the HBA should not grant Disconnect privileges to target devices.

SCSI_OPTIONS_TAG

If not set, the HBA should not operate in Command Tagged Queueing mode.

SCSI_OPTIONS_PARITY

If not set, the HBA should not operate in parity mode.

SCSI_OPTIONS_QAS

If not set, the HBA should not make use of the Quick Arbitration Select feature. Consult your Sun hardware documentation to determine whether your machine supports QAS.

SCSI_OPTIONS_FAST

If not set, the HBA should not operate the bus in FAST SCSI mode.

SCSI_OPTIONS_FAST20

If not set, the HBA should not operate the bus in FAST20 SCSI mode.

SCSI_OPTIONS_FAST40

If not set, the HBA should not operate the bus in FAST40 SCSI mode.

SCSI_OPTIONS_FAST80

If not set, the HBA should not operate the bus in FAST80 SCSI mode.

SCSI_OPTIONS_FAST160

If not set, the HBA should not operate the bus in FAST160 SCSI mode.

SCSI_OPTIONS_FAST320

If not set, the HBA should not operate the bus in FAST320 SCSI mode.

SCSI_OPTIONS_WIDE

If not set, the HBA should not operate the bus in WIDE SCSI mode.

SCSI_OPTIONS_SYNC

If not set, the HBA should not operate the bus in synchronous transfer mode.