SCSI(5)                File Formats and Configurations               SCSI(5)
NAME
       scsi - configuration files for SCSI target drivers
DESCRIPTION
       The architecture of the illumos 
SCSI subsystem distinguishes two
       types of device drivers: 
SCSI target drivers, and 
SCSI host adapter
       drivers.  Target drivers like 
sd(4D) and 
st(4D) 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 illumos
       DDI/DKI. See 
scsi_ifgetcap(9F), 
scsi_init_pkt(9F), and       
scsi_transport(9F) for further details of these, and associated
       routines.
       Depending on the interconnect (transport), SCSI target devices are
       either self-identifying or rely on 
driver.conf(5) entries to be
       recognized by the system. For self-identifying target devices the
       driver binding is chosen based on the IEEE-1275 like 'compatible'
       forms of the target devices. Currently the Fibre Channel
       interconnects, 
fcp(4D), 
ifp(4D), 
scsi_vhci(4D), 
sf(4D), and the SATA
       framework drivers (see 
sata(4D)) are self-identifying. You must
       specify other possible interconnects target devices by using the
       target driver 
driver.conf(5) configuration files.   
Self-Identifying       Host adapter drivers of class scsi-self-identifying that dynamically
       create self-identifying target device children establish a 
compatible       property on each child. The compatible property is an ordered array
       of strings, each string is a compatible 
form. High precedence forms
       are defined first. For a particular device, the highest precedence
       form that has an established driver alias selects the driver for the
       device. Driver associations to compatible forms, called aliases, are
       administered by way of 
add_drv(8), 
update_drv(8), and 
rem_drv(8)       utilities.
       The forms for self-identifying SCSI target devices are derived from
       the SCSI target device's INQUIRY data. A diverse set of forms is
       defined, allowing for flexibility in binding.
       From the SCSI INQUIRY data, three types of information are extracted:
       scsi_dtype, flag bits, and SCSI_ASCII vendor product revision.
       The scsi_dtype is the first component of most forms. It is
       represented as two hex digits. For nodes that represent embedded
       secondary functions, such as an embedded enclosure service or media
       changer, additional forms are generated that contain the dtype of the
       secondary function followed by the dtype of the device in which the
       secondary function is embedded.
       For forms that use flag bits, all applicable flags are concatenated
       (in alphabetical order) into a single flags string. Removable media
       is represented by a flag. For forms that use the SCSI_ASCII INQUIRY
       vendor, product, and revision fields, a one-way conversion algorithm
       translates SCSI_ASCII to a IEEE 1275 compatible string.
       It is possible that a device might change the INQUIRY data it returns
       over time as a result of a device initialization sequence or in
       response to out-of-band management. A device node's compatible
       property is based on the INQUIRY data when the device node was
       created.
       The following forms, in high to low precedence order, are defined for
       SCSI target device nodes.
         scsiclass,DDEEFFF.vVVVVVVVV.pPPPPPPPPPPPPPPPP.rRRRR (1  *1&2)
         scsiclass,DDEE.vVVVVVVVV.pPPPPPPPPPPPPPPPP.rRRRR    (2  *1)
         scsiclass,DDFFF.vVVVVVVVV.pPPPPPPPPPPPPPPPP.rRRRR   (3  *2)
         scsiclass,DD.vVVVVVVVV.pPPPPPPPPPPPPPPPP.rRRRR      (4)
         scsiclass,DDEEFFF.vVVVVVVVV.pPPPPPPPPPPPPPPPP       (5  *1&2)
         scsiclass,DDEE.vVVVVVVVV.pPPPPPPPPPPPPPPPP          (6  *1)
         scsiclass,DDFFF.vVVVVVVVV.pPPPPPPPPPPPPPPPP         (7  *2)
         scsiclass,DD.vVVVVVVVV.pPPPPPPPPPPPPPPPP            (8)
         scsiclass,DDEEFFF                                   (9 *1&2)
         scsiclass,DDEE                                      (10 *1)
         scsiclass,DDFFF                                     (11 *2)
         scsiclass,DD                                        (12)
         scsiclass                                           (13)
            *1 only produced on a secondary function node
            *2 only produced on a node with flags
       where:       
v                           Is the letter 
v. Denotes the beginning of                           
VVVVVVVV.       
VVVVVVVV                           Translated scsi_vendor: SCSI standard INQUIRY
                           data "Vendor identification" SCSI_ASCII field
                           (bytes 8-15).       
p                           Is the letter 
p. Denotes the beginning of                           
PPPPPPPPPPPPPPPP.       
PPPPPPPPPPPPPPPP                           Translated scsi_product: SCSI standard INQUIRY
                           data "Product identification" SCSI_ASCII field
                           (bytes 16-31).       
r                           Is the letter 
r. Denotes the beginning of 
RRRR.       
RRRR                           Translated scsi_revision: SCSI standard INQUIRY
                           data "Product revision level" SCSI_ASCII field
                           (bytes 32-35).       
DD                           Is a two digit ASCII hexadecimal number. The
                           value of the two digits is based one the SCSI
                           "Peripheral device type" command set associated
                           with the node. On a primary node this is the
                           scsi_dtype of the primary command set; on a
                           secondary node this is the 
scsi_dtype associated
                           with the embedded function command set.       
EE                           Same encoding used for 
DD. This form is only
                           generated on secondary function nodes. The 
DD                           function is embedded in an 
EE device.       
FFF                           Concatenation, in alphabetical order, of the flag
                           characters below. The following flag characters
                           are defined:                           
R                                Removable media: Used when 
scsi_rmb is set
                           Forms using 
FFF are only be generated if there
                           are applicable flag characters.
       illumos might create additional 
compatible forms not described. These
       forms are for illumos internal use only. Any additional use of these
       forms is discouraged. Future releases of illumos might not produce
       these forms.   
driver.conf       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:       
target                 Integer-valued 
SCSI target identifier that this driver
                 claims.       
lun                 Integer-valued 
SCSI logical unit number ( 
LUN) that this
                 driver claims.
       All 
SCSI target driver configuration file device definitions except
       stub device definitions for discovery of 
devid must provide target
       and 
lun properties. These properties are used to construct the
       address part of the device name under 
/devices. The stub device
       definitions for discovery of 
devid must be able to specify or imply
       the host adapter drivers that might have children that bind to the
       target driver. So all SCSI target driver configuration file stub
       device definitions must be defined by property class or parent.
       The 
SCSI target driver configuration files shipped with illumos have
       entries for 
LUN 0 only. For devices that support other 
LUNs, such as
       some 
CD changers, the system administrator can edit the driver
       configuration file to add entries for other 
LUNs.EXAMPLES
       Example 1: An Example Configuration File for a SCSI Target Driver
       The following is an example 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 illumos.
       Example 2: A Stub Device Definition of sd.conf
       The following line is a stub device definition which implies the host
       adapter drivers of class scsi-self-identifying might have children
       that bind to the 
sd(4D) driver:
         name="sd" class="scsi-self-identifying";
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Committed       |
       +--------------------+-----------------+
SEE ALSO
       fcp(4D), 
ifp(4D), 
sata(4D), 
scsi_vhci(4D), 
sd(4D), 
sf(4D), 
st(4D),       
driver.conf(5), 
attributes(7), 
add_drv(8), 
rem_drv(8), 
update_drv(8),       
scsi_ifgetcap(9F), 
scsi_init_pkt(9F), 
scsi_transport(9F)       Writing Device Drivers       ANS X3T9.2/82-2 SMALL COMPUTER SYSTEM INTERFACE (SCSI-1)       ANS X3T9.2/375D Small Computer System Interface - 2 (SCSI-2)       ANS X3T10/994D SCSI-3 Architecture Model (SAM)       IEEE 1275 SCSI Target Device BindingNOTES
       With 
driver.conf(5) configuration, 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 usually makes 
sd       claim it before any other driver has a chance to probe it.
                                May 30, 2008                         SCSI(5)