Document: X3T9.2/87-130 Date: 10 August 1987 To: X3T9.2 SCSI-2 Working Group and X3T9.2 Committee Members From: Paul R. Nitza - (714) 662-5600 Subj: SCSI-2 Target Implemeneted Options Proposal ============================================================================= Attached for your review is the Target Implemented Options proposal. This proposal describes two methods of returning the implemented option information. This first method uses the Inquiry command while the second method uses a new page in the Mode Sense/Select command. The Implemented Options information provides a means for the Initiator to determine which options are supported by the Target and configure itself to the these options without wasting time responding to Check Conditions to determine if the options are supported. The following section in this proposal documents the Target Implemented Options proposal in the Inquiry command. Byte 7 of the Inquiry Data, which is currently reserved, is used to return the option flags. This method of returning the Implemented Options has limited expansion (only 2 other reserved bytes are available), however, this proposal was not meant to document every possible option in the SCSI spec. [The reserved byte 7 in the Inquiry Data, table 7-12 on page 7-16 must be modified as shown below.] ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 7 |Reserved| RelAdr | WBus | Sync | Linked | Cache | CmdQue | ASense | ------------------------------------------------------------------------------ [The following text must be inserted on page 7-18 after the additional length paragraph.] A Relative Addressing (RelAdr) bit of one indicates that the target supports the relative addressing mode for this logical unit. Note: If this bit is set to one the Linked Command (Linked) but shall also be set to one since relative addressing can only be used with linked commands. A RelAdr bit of zero indicates the target does not support relative addressing for this logical unit. A Wide Bus (WBus) bit of one indicates that the target supports wide data transfers (16 and/or 32 bits). If this WBus bit is set to zero the Target only supports 8 bit data transfers. A Synchronous Transfer (Sync) bit of one indicates that the target supports synchronous data transfer. A Sync bit of zero indicates the target does not support synchronous data transfer. A Linked Command (Linked) bit of one indicates that the target supports linked commands for this logical unit. A Linked bit of zero indicates the target does not support linked commands for this logical unit. A Cache bit of one indicates that the target supports caching for this logical unit. A Cache bit of zero indicates the target does not support caching for this logical unit. A Command Queuing (CmdQue) of one indicates that the target supports command queuing for this logical unit. A CmdQue bit of zero indicates the target does not support command queuing for this logical unit. An Autosense (ASense) bit of one indicates the target supports the autosense option for this logical unit. An ASense bot of zero indicates the target does not support the autosense option for this logical unit. The following section in this proposal documents the Target Implemented Options proposal as a Mode Sense/Select page. This method of returning the Implemented Options has no limitation on expansion since the page can be expanded to any size. Add the following section to Mode Select in section 8 Mode Select/Sense Target Option Page ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 |Reserved|Reserved| Page Code (xxh) | -----|-----------------------------------------------------------------------| 1 | Parameter Length (04h) | -----|-----------------------------------------------------------------------| 2 | Reserved | -----|-----------------------------------------------------------------------| 3 | Reserved | -----|-----------------------------------------------------------------------| 4 | Reserved | -----|-----------------------------------------------------------------------| 5 |Reserved| RelAdr | WBus | Sync | Linked | Cache | CmdQue | ASense | ============================================================================== The Target Options page defines various options which may be supported by the target for the current logical unit. In the MODE SENSE command a Relative Addressing (RelAdr) bit of one indicates that the target supports the relative addressing mode for this logical unit. Note: If this bit is set to one the Linked Command (Linked) bit shall also be set to one since relative addressing can only be used with linked commands. A RelAdr bit of zero indicates the target does not support relative addressing for this logical unit. This bit is ignored by the target in the MODE SELECT command. In the MODE SENSE command a Wide Bus (WBus) bit of one indicates that the target supports wide data transfers (16 and/or 32 bits). If the WBus bit is set to zero the Target only supports 8 bit data transfers. This bit is ignored by the target in the MODE SELECT command. In the MODE SENSE command a Synchronous Transfer (Sync) bit of one indicates that the target supports synchronous data transfer. A Sync bit of zero indicates the target does not support synchronous data transfer. This bit is ignored by the target in the MODE SELECT command. In the MODE SENSE command a Linked Command (Linked) bit of one indicates that the target supports linked commands for this logical unit. A Linked bit of zero indicates the target does not support linked commands for this logical unit. This bit is ignored by the target in the MODE SELECT command. The Cache Control (Cache) bit allows the initiator to enable/disable caching and provides a means for the target to report if the current logical unit supports caching. In the MODE SELECT command the Cache bit enables/disables caching for the current logical unit and overrides the FUA (Force Unit Access, see section 6._._) bit in the CDB. A one in this bit enables caching for the current logical unit and the target may satisfy a request for data by accessing the cache memory. A zero in this bit disables the cache for the current logical unit and the target shall satisfy any request for data by accessing the physical medium. If the initiator changes the Cache bit the target shall generate a Unit Attention condition for all initiators other than the one that issued the MODE SELECT command (see section ?.?.?). In the MODE SENSE command Changeable Values option, the Cache bit reports whether or not the current logical unit supports caching. A one in this bit indicates the target supports caching for the current logical unit. A zero in this bit indicates the target does not support caching for the current logical unit. The MODE SENSE Current, Saved and Default parameters indicate the state of the Cache enable/disable bit for the current, saved and default values, respectively. The Command Queue (CmdQ) bit allows the initiator to enable/disable the command queuing option and provides a means for the target to report if the current logical unit supports command queuing (see section 6._._). In the MODE SELECT command the CmdQ bit enables/disables command queuing for the current logical unit. A one in this bit enables command queuing and the target shall queue commands from all initiators to the current logical unit. A zero in this bit disables command queuing for the current logical unit. If the initiator changes the CmdQ bit the target shall generate a Unit Attention condition for all initiators other than the one that issued the MODE SELECT command (see section ?.?.?). In the MODE SENSE command Changeable Values option, the CmdQ bit reports whether or not the current logical unit supports command queuing. A one in this bit indicates the target supports command queuing for the current logical unit. A zero in this bit indicates the target does not support command queuing for the current logical unit. The MODE SENSE Current, Saved and Default parameters indicate the state of the CmdQ enable/disable bit for the current, saved and default values, respectively. The Autosense (ASense) bit allows the Initiator to enable/disable the Autosense option and provides a means for the Target to report if this logical unit supports the Autosense option (see section 6._._). In the MODE SELECT command the ASense bit enables/disables the Autosense option for the current logical unit. A one in this bit enables the Autosense on Check Condition option. A zero in this bit disables the Autosense option. If the initiator changes this field the target shall generate a Unit Attention condition for all initiators other than the one that issued the MODE SELECT command (see section ?.?.?). In the MODE SENSE command Changeable Values option, the ASesne bit reports whether or not the current logical unit supports the Autosense option. A one in this bit indicates the target supportes the Autosense option for this logical unit. A zero in this bit indicates the target does not support the Autosense option for this logical unit. The MODE SENSE Current, Saved and Default parameters indicate the state of the ASesne enable/disable bit for the current, saved and default values, respectively.