--- scsi_hba_attach_setup.9f.orig Tue Oct 21 19:12:37 2008 +++ scsi_hba_attach_setup.9f Mon Oct 27 20:54:30 2008 @@ -25,12 +25,14 @@ hba_lim A pointer to a ddi_dma_lim(9S) structure. hba_tran A pointer to a scsi_hba_tran(9S) structure. - hba_flags Flag modifiers. The only defined flag value - is SCSI_HBA_TRAN_CLONE. + hba_flags Flag modifiers. The only defined flag values are + SCSI_HBA_ADDR_SPI, SCSI_HBA_ADDR_COMPLEX, and + SCSI_HBA_TRAN_CLONE. SCSI_HBA_TRAN_CLONE is + obsolete, use SCSI_HBA_ADDR_COMPLEX instead. hba_options Optional features provided by the HBA driver for future extensions; must be NULL. hba_dma_attr A pointer to a ddi_dma_attr(9S) structure. @@ -55,10 +57,24 @@ scsi_hba_attach() and scsi_hba_attach_setup() 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(). + A scsi_address(9S) unit-address form for a scsi_device(9S) is + chosen based on whether SCSI_HBA_ADDR_SPI or SCSI_HBA_ADDR_COMPLEX + is requested in hba_flags. Only one flag can be specified; if + neither flag is specified SCSI_HBA_ADDR_SPI is assumed. If + SCSI_HBA_ADDR_SPI is selected then the a_target and a_lun fields + of a scsi_address structure are established by the SCSA library + code prior to tran_tgt_init(9E). If SCSI_HBA_ADDR_COMPLEX is + selected then the host adapter driver is expected to establish an + opaque private representation of device unit-address, based + on property values, during tran_tgt_init(9E). See scsi_address(9S) + for more detail. + + The SCSI_HBA_TRAN_CLONE flag is also supported, but use + of SCSI_HBA_ADDR_COMPLEX is prefered. If SCSI_HBA_TRAN_CLONE is requested in hba_flags, the hba_tran structure will be cloned once for each target attached to the HBA. The cloning of the structure will occur before the tran_tgt_init(9E) entry point is called to ini- tialize a target. At all subsequent HBA entry points, @@ -189,5 +205,9 @@ get device driver after scsi_hba_detach() is called. The scsi_hba_attach() function is obsolete and will be dis- continued in a future release. This function is replaced by scsi_hba_attach_setup(). + + The use of SCSI_HBA_TRAN_CLONE is obsolete and will be + discontinued in a future release, use SCSI_HBA_ADDR_COMPLEX + and a_sd->sd_hba_private instead.