The architecture of the Solaris SCSI subsystem distinguishes two types of device drivers: SCSI target drivers, and SCSI host adapter drivers. Target drivers like sd(7D) and st(7D) manage the device on the other end of the SCSI bus. Host adapter drivers manage the SCSI bus on behalf of all the devices that share it.
Drivers for host adapters provide a common set of interfaces for target drivers. These interfaces comprise the Sun Common SCSI Architecture ( SCSA) which are documented as part of the Solaris DDI/DKI. See scsi_ifgetcap(9F), scsi_init_pkt(9F), and scsi_transport(9F) for further details of these, and associated routines.
Target drivers for SCSI devices should use a driver configuration file to enable them to be recognized by the system.
Configuration files for SCSI target drivers should identify the host adapter driver implicitly using the class keyword to remove any dependency on the particular host adapter involved.
All host adapter drivers of class scsi recognize the following properties:
Integer-valued SCSI target identifier that this driver will claim.
Integer-valued SCSI logical unit number ( LUN) that this driver will claim.
All SCSI target drivers must provide target and lun properties. These properties are used to construct the address part of the device name under /devices.
The SCSI target driver configuration files shipped with Solaris have entries for LUN 0 only. For devices that support other LUNs, such as some CD changers, the system administrator may edit the driver configuration file to add entries for other LUNs.
Here is a configuration file for a SCSI target driver called toaster.conf.
# # Copyright (c) 1992, by Sun Microsystems, Inc. # #ident "@(#)toaster.conf 1.2 92/05/12 SMI" name="toaster" class="scsi" target=4 lun=0;
Add the following lines to sd.conf for a six- CD changer on target 3, with LUNs 0 to 5.
name="sd" class="scsi" target=3 lun=1; name="sd" class="scsi" target=3 lun=2; name="sd" class="scsi" target=3 lun=3; name="sd" class="scsi" target=3 lun=4; name="sd" class="scsi" target=3 lun=5;
It is not necessary to add the line for LUN 0, as it already exists in the file shipped with Solaris.
ANSI Small Computer System Interface-2 (SCSI-2)
You need to ensure that the target and lun values claimed by your target driver do not conflict with existing target drivers on the system. For example, if the target is a direct access device, the standard sd.conf file will usually make sd claim it before any other driver has a chance to probe it.