The symhisl host bus adapter driver is a SCSA-compliant nexus driver that supports the LSI Logic SYM53C895A, SYM53C1010-33, and SYM53C1010-66 SCSI controller chips.
The symhisl driver supports the standard functions provided by the SCSA interface, including tagged and untagged queuing, Wide, Fast, Ultra, Ultra2, and Ultra3 SCSI, and auto request sense. The symhisl driver does not support linked commands.
You configure the symhisl driver by defining properties in the symhisl.conf file. Properties in the symhisl.conf file override the global SCSI settings. The driver supports the following user-modifiable properties:
target<n>-scsi-options overrides the scsi-options property value for target<n>. <n> can vary from hex 0 to f. symhisl supports the following scsi-options: SCSI_OPTIONS_DR, SCSI_OPTIONS_SYNC, SCSI_OPTIONS_FAST, SCSI_OPTIONS_ULTRA, SCSI_OPTIONS_ULTRA2, SCSI_OPTIONS_TAG, and SCSI_OPTIONS_WIDE.
SCSI_OPTIONS_PARITY is supported for the scsi-options setting only and disables host adapter parity checking.
After periodic interval scsi-watchdog-tick (seconds), the symhisl driver searches through all current and disconnected commands for timeouts.
symFlags is a driver-specific bit-mask you can use to enable or disable driver properties.
bit 0 When set, the driver will not reset the SCSI bus at initialization. Certain CD-ROM, tape, and other devices will not work properly when this bit is set. The default state for this bit is cleared.
bit 1 When set, the driver will not export the DMI ioctl interface. Set this bit only if you want to disable the ioctl interface for security reasons. The default state for this bit is cleared.
bit 2 When set, the driver disables 64-bit addressing capability. When clear, the driver enables 64-bit addressing capability. The default state for this bit is cleared.
bit 3 When set, the driver disables SCSI domain validation for all devices on any adapters controlled by the driver.
Refer to scsi_hba_attach(9F) for more information on driver configuration.
Edit the file /kernel/drv/symhisl.conf and add the following line:
This disables tagged queuing, Fast, Ultra, and Ultra2 SCSI and wide mode for all symhisl instances.
The following example disables an option for one specific symhisl instance (refer to driver.conf(4) and pci(4) for more details):
name="symhisl" parent="/pci@1f,4000" unit-address="3" target1-scsi-options=0x58 scsi-options=0x178 scsi-initiator-id=6;
Note that the initiator ID can only be changed for symhisl adapters that do not use the LSI Logic Boot ROM Configuration Utility. For adapters that can use the LSI Logic Boot ROM Configuration Utility, scsi-initiator-id has no effect.
The example above sets scsi-options for target 1 to 0x58 and all other targets on this SCSI bus to 0x178.
The physical path name of the parent can be determined using the /devices tree or following the link of the logical device name:
# ls -l /dev/rdsk/c0t0d0s0 lrwxrwxrwx 1 root root 45 May 16 10:08 /dev/rdsk/c0t0d0s0 -> ../../devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
In this case, the parent is /pci@1f,4000 and the unit-address is the number bound to the scsi@3 node.
scsi-options specified per target ID have the highest precedence, followed by scsi-options per device type. Global scsi-options (for all symhisl instances) per bus have the lowest precedence.
The system must be rebooted for the specified scsi-options to take effect.
The target driver sets capabilities in the symhisl driver to enable some driver features. The target driver can query and modify the following capabilities: disconnect, synchronous, wide-xfer, tagged-qing, and auto-rqsense. All other capabilities are query only.
By default, tagged-qing capabilities are disabled, while disconnect, synchronous, wide-xfer, auto-rqsense, and untagged-qing are enabled. These capabilities can only have binary values (0 or 1).
The target driver must enable tagged-qing explicitly. The untagged-qing capability is always enabled and its value cannot be modified.
If a conflict exists between the value of scsi-options and a capability, the value set in scsi-options prevails. Only whom != 0 is supported in the scsi_ifsetcap(9F) call. Refer to scsi_ifsetcap(9F) and scsi_ifgetcap(9F) for details.
/kernel/drv/symhisl ELF kernel module
/kernel/drv/symhisl.conf Configuration file
See attributes(5) for descriptions of the following attributes:
prtconf(1M), driver.conf(4), pci(4), attributes(5), scsi_abort(9F), scsi_hba_attach(9F), scsi_ifgetcap(9F), scsi_ifsetcap(9F), scsi_reset(9F), scsi_sync_pkt(9F), scsi_transport(9F), scsi_device(9S), scsi_extended_sense(9S), scsi_inquiry(9S), scsi_pkt(9S)
Writing Device Drivers
ANSI Small Computer System Interface-2 (SCSI-2),
LSI Logic Corporation, SYM53C896 PCI-SCSI I/O Processor
LSI Logic Corporation, SYM53C895A PCI-SCSI I/O Processor
LSI Logic Corporation, SYM53C1010 PCI-SCSI I/O Processor
The symhisl SYM53C895A and SYM53C896 (SYM21002 and SYM22910) hardware and software support Wide, Fast, SCSI Ultra, and Ultra2 synchronous speeds. SYM53C1010-33 and SYM53C1010-66 also support Ultra3 synchronous speeds. The maximum SCSI bandwidth for Ultra2 transfers is 80 Mbytes/sec and 160 Mbytes/sec for Ultra3.