home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 571.lha / SCSI_II_Documentation / SCSI2.LZH / SCSIDOC.007 < prev    next >
Text File  |  1991-08-11  |  260KB  |  6,223 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. All Device Types                                                        3/9/90
  8.  
  9. 7. All Device Types
  10.  
  11. 7.1. Model for All Device Types
  12.  
  13. This model describes some of the general characteristics expected of most SCSI
  14. devices.  It is not intended to define any requirements nor is it intended to
  15. alter any requirements defined elsewhere in this standard.  Section 6 of this
  16. standard also contains model information pertaining to all device types.
  17.  
  18. 7.1.1. SCSI Addresses
  19.  
  20. There are two levels of addresses within the SCSI architecture: the SCSI
  21. device address and the logical unit number or target routine number.
  22.  
  23. 7.1.1.1. SCSI Device Address
  24. SCSI devices occupy (i.e., respond to) one address on the SCSI bus.  Generally
  25. the SCSI device provides a means (e.g., switches, jumpers) to select one of
  26. the eight available addresses (0 through 7).  This address is used during bus
  27. arbitration and selection or reselection of SCSI devices.  Each device on the
  28. SCSI bus is assigned an unique address.
  29.  
  30. Normally, the SCSI device address is set when the system is configured and it
  31. remains static thereafter.  Some systems and devices provide vendor- specific
  32. means to alter this address at other times.
  33.  
  34. 7.1.1.2. Logical Units
  35. Each target has one or more logical units, beginning with logical unit zero.
  36. There is a maximum of eight logical units.  These logical units are usually
  37. mapped directly to peripheral devices, but they may be a portion of a
  38. peripheral device or may comprise multiple peripheral devices.
  39.  
  40. An initiator can determine whether a target implements a logical unit by
  41. issuing an INQUIRY command and examining the returned peripheral qualifier and
  42. peripheral device type.
  43.  
  44. The concept of a logical unit is not defined for an initiator.  (An SCSI
  45. device may implement both the initiator role and the target role.  In this
  46. case logical unit(s) are defined only for the target role.)
  47.  
  48. 7.1.1.3. Target Routines
  49. An optional feature of the SCSI architecture permits each target to have one
  50. or more target routines, beginning with target routine number zero.  There is
  51. a maximum of eight target routines.  These target routines are processes that
  52. execute directly on the target and are not associated with a particular
  53. logical unit or peripheral device.  Target routines are addressed using the
  54. LUNTAR bit of the IDENTIFY message (see 5.6.7).
  55.  
  56. Target routines are principally intended to return information about the
  57. target and the only valid commands are INQUIRY and REQUEST SENSE.
  58.  
  59.  
  60. SCSI-2 draft proposed American National Standard        7-1      Revision 10c1
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. All Device Types                                                        3/9/90
  69.  
  70. 7.1.2. Commands Implemented by all SCSI Devices
  71.  
  72. This standard defines four commands that all SCSI-2 targets implement:
  73. INQUIRY, REQUEST SENSE, SEND DIAGNOSTIC, and TEST UNIT READY.  These commands
  74. are used to configure the system, to test targets, and to return important
  75. information concerning errors and exception conditions.
  76.  
  77. 7.1.2.1. Using the INQUIRY Command
  78. The INQUIRY command may be used by a system to determine the configuration of
  79. the SCSI bus.  Target devices respond with information that includes their
  80. type and standard level and may include the vendor's identification, model
  81. number and other useful information.  It is recommended that SCSI targets be
  82. capable of returning this information (or whatever part of it that is
  83. available) upon completing power-on initialization.  An SCSI device may take
  84. longer to get certain portions of this information, especially if it retrieves
  85. the information from the medium.
  86.  
  87. 7.1.2.2. Using the REQUEST SENSE Command
  88. Whenever a contingent allegiance condition (6.6) is established, the initiator
  89. that received the error should issue a REQUEST SENSE command to receive the
  90. sense data describing what caused the contingent allegiance condition.  If the
  91. initiator issues some other command, the sense data is lost.
  92.  
  93. 7.1.2.3. Using the SEND DIAGNOSTIC Command
  94. The SEND DIAGNOSTIC command provides a means to request the target to perform
  95. a self test.  While the test is target specific, the means of requesting the
  96. test is standardized and the response is simply GOOD status if all is well or
  97. CHECK CONDITION status if the test fails.
  98.  
  99. The SEND DIAGNOSTIC command also provides other powerful features when used in
  100. conjunction with the RECEIVE DIAGNOSTIC RESULTS command, but this capability
  101. is optional.
  102.  
  103. 7.1.2.4. Using the TEST UNIT READY Command
  104. The TEST UNIT READY command is useful in that it allows an initiator to poll a
  105. logical unit until it is ready without the need to allocate space for returned
  106. data.  It is especially useful to check cartridge status of logical units with
  107. removable media.  Targets are expected to respond promptly to indicate the
  108. current status of the device (i.e., a target should avoid lengthy
  109. disconnections in an attempt to respond with GOOD status).
  110.  
  111.  
  112. 7.2. Commands for All Device Types
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121. SCSI-2 draft proposed American National Standard        7-2      Revision 10c2
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129. All Device Types                                                        3/9/90
  130.  
  131.  
  132. The operation codes for commands that apply to all device types are listed in
  133. Table 7-1.
  134.  
  135.                   Table 7-1: Commands for All Device Types
  136.  
  137. ==============================================================================
  138.                                    Operation
  139. Command Name                         Code       Type    Section
  140. ------------------------------------------------------------------------------
  141. CHANGE DEFINITION                     40h        O       7.2.1
  142. COMPARE                               39h        O       7.2.2
  143. COPY                                  18h        O       7.2.3
  144. COPY AND VERIFY                       3Ah        O       7.2.4
  145. INQUIRY                               12h        M       7.2.5
  146. LOG SELECT                            4Ch        O       7.2.6
  147. LOG SENSE                             4Dh        O       7.2.7
  148. MODE SELECT(6)                        15h        Z       7.2.8
  149. MODE SELECT(10)                       55h        Z       7.2.9
  150. MODE SENSE(6)                         1Ah        Z       7.2.10
  151. MODE SENSE(10)                        5Ah        Z       7.2.11
  152. READ BUFFER                           3Ch        O       7.2.12
  153. RECEIVE DIAGNOSTIC RESULTS            1Ch        O       7.2.13
  154. REQUEST SENSE                         03h        M       7.2.14
  155. SEND DIAGNOSTIC                       1Dh        O       7.2.15
  156. TEST UNIT READY                       00h        M       7.2.16
  157. WRITE BUFFER                          3Bh        O       7.2.17
  158. ==============================================================================
  159.  
  160.   Key:  M = Command implementation is mandatory.
  161.         O = Command implementation is optional.
  162.         Z = Command implementation is device type specific.
  163.  
  164. 7.2.1. CHANGE DEFINITION Command
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182. SCSI-2 draft proposed American National Standard        7-3      Revision 10c3
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190. All Device Types                                                        3/9/90
  191.  
  192.  
  193.  
  194.                     Table 7-2: CHANGE DEFINITION Command
  195.  
  196. ==============================================================================
  197.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  198. Byte |        |        |        |        |        |        |        |        |
  199. ==============================================================================
  200.  0   |                           Operation Code (40h)                        |
  201. -----|-----------------------------------------------------------------------|
  202.  1   | Logical Unit Number      |              Reserved                      |
  203. -----|-----------------------------------------------------------------------|
  204.  2   |                  Reserved                                    |  Save  |
  205. -----|-----------------------------------------------------------------------|
  206.  3   |Reserved|                  Definition Parameter                        |
  207. -----|-----------------------------------------------------------------------|
  208.  4   |                           Reserved                                    |
  209. -----|-----------------------------------------------------------------------|
  210.  5   |                           Reserved                                    |
  211. -----|-----------------------------------------------------------------------|
  212.  6   |                           Reserved                                    |
  213. -----|-----------------------------------------------------------------------|
  214.  7   |                           Reserved                                    |
  215. -----|-----------------------------------------------------------------------|
  216.  8   |                           Parameter Data Length                       |
  217. -----|-----------------------------------------------------------------------|
  218.  9   |                           Control                                     |
  219. ==============================================================================
  220.  
  221.  
  222. The CHANGE DEFINITION command (Table 7-2) modifies the operating definition of
  223. the selected logical unit or target with respect to commands from the
  224. selecting initiator or for all initiators.
  225.  
  226. A save control bit (Save) of zero indicates that the target shall not save the
  227. operating definition.  A Save bit of one indicates that the target shall save
  228. the operating definition to non-volatile memory.
  229.  
  230. The definition parameter field is defined in Table 7-3.
  231.  
  232.                     Table 7-3: Definition Parameter Field
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243. SCSI-2 draft proposed American National Standard        7-4      Revision 10c4
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251. All Device Types                                                        3/9/90
  252.  
  253.  
  254.               =================================================
  255.               Value     Meaning of Definition Parameter
  256.               -----     ---------------------------------------
  257.                00h      Use Current Operating Definition
  258.                01h      SCSI-1 Operating Definition
  259.                02h      CCS Operating Definition
  260.                03h      SCSI-2 Operating Definition
  261.               04-3Fh    Reserved
  262.               40-7Fh    Vendor Specific
  263.               =================================================
  264.  
  265.  
  266. IMPLEMENTORS NOTE: The current operating definition parameter values establish
  267. operating definitions compatible with the appropriate SCSI specification.
  268. Vendor-specific values are available for those applications where more complex
  269. operation definition changes are required. Definitions supported by a device
  270. are returned in the implemented operating definition page (see 7.3.4.3).
  271.  
  272. The parameter data length field specifies the length in bytes of the parameter
  273. data that shall be transferred from the initiator to the target.  A parameter
  274. data length of zero indicates that no data shall be transferred.  This
  275. condition shall not be considered as an error.  Parameter data lengths greater
  276. than zero indicate the number of bytes of parameter data that shall be
  277. transferred.
  278.  
  279. The parameter data is vendor specific.
  280.  
  281. IMPLEMENTORS NOTE:  The parameter data may be used to specify a password to
  282. validate an operating definition change.
  283.  
  284. The CHANGE DEFINITION command causes one of the operating definition
  285. modifications listed below:
  286. (1) Change the operating definition of a logical unit relative to the
  287. initiator that issued the command.  In this case, the target is capable of
  288. maintaining an unique operating definition for each logical unit relative to
  289. each initiator in the system.
  290. (2) Change the operating definition of the target relative to the initiator
  291. that issued the command.  In this case, the target is capable of maintaining
  292. an unique operating definition, for each initiator in the system, that applies
  293. to all logical units of the target.
  294. (3) The operating definition of a logical unit relative to all initiators in
  295. the system.  In this case, the target is capable of maintaining an unique
  296. operating definition for each logical unit relative to all initiators in the
  297. system.
  298. (4) The operating definition of the target relative to all initiators in the
  299.  
  300.  
  301.  
  302.  
  303.  
  304. SCSI-2 draft proposed American National Standard        7-5      Revision 10c5
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312. All Device Types                                                        3/9/90
  313.  
  314. system.  In this case, the target is capable of maintaining only one operating
  315. definition.
  316.  
  317. IMPLEMENTORS NOTE:
  318. (1) This standard does not provide a direct means to determine which of the
  319. above four methods has been implemented by the target.  An indirect means of
  320. determining which method is implemented exists in that the target is required
  321. to inform affected initiators of operating definition changes via the unit
  322. attention condition.
  323. (2) Cases (3) and (4), above, may result in incompatibilities if there are
  324. other initiators in the system operated below the SCSI-2 level.
  325.  
  326. The operating definition is modified after successful completion of the
  327. command.  A target shall consider the command successfully completed when it
  328. detects the assertion of the ACK signal for the COMMAND COMPLETE message.  The
  329. initiator should verify the new operating definition by issuing an INQUIRY
  330. command requesting the implemented operating definition page (see Table 7-75).
  331.  
  332.  
  333. It is permissible for an SCSI-2 device that has its definition changed to an
  334. SCSI-1 device to accept a CHANGE DEFINITION command.
  335.  
  336.  
  337. IMPLEMENTORS NOTE:  The method of changing the operating definition is
  338. implementation dependent.  Some implementations may require the target's
  339. operating mode be re-initialized as if a power-up or hard-reset had occurred.
  340. Other implementations may modify only those operating definitions that are
  341. affected by the CHANGE DEFINITION command.
  342.  
  343. If the CHANGE DEFINITION command is not executed successfully for any reason,
  344. the operating definition shall remain the same as it was before the CHANGE
  345. DEFINITION command was attempted.  If it is impossible to return to the
  346. previous operating definition, an unit attention condition shall be generated
  347. by the target.
  348.  
  349. IMPLEMENTORS NOTE:  The present operating definition of the target may always
  350. be interrogated through the INQUIRY command.  When an SCSI-2 target has its
  351. operating definition changed to CCS or SCSI-1, certain changes are needed to
  352. promote compatibility with pre-existing SCSI-1 initiators.  The recommended
  353. changes are as follows:
  354. (1) The target should not initiate selections to other SCSI devices to
  355. determine if any initiators support AEN.  The target should assume that none
  356. are capable of receiving AEN and not issue an AEN.
  357. (2) The target should not generate extended contigent allegiance conditions by
  358. issuing an INITIATE RECOVERY message.
  359. (3) If a REQUEST SENSE command with an allocation length of zero is received,
  360. the target should return four bytes of sense data.
  361. (4) If an INQUIRY command is received, the returned data should have
  362. appropriate values in the ANSI version and response data format fields.  The
  363. features supported bits should be zero.
  364.  
  365. SCSI-2 draft proposed American National Standard        7-6      Revision 10c6
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373. All Device Types                                                        3/9/90
  374.  
  375. (5) A change in the operating definition may change the vendor identifier, the
  376. device type, the device model, the SCSI implementation level, the command set,
  377. and any other operating characteristics.
  378.  
  379. After a power-on condition or a hard RESET condition, the target shall set its
  380. initial operating definition to the last saved value, if saving is
  381. implemented, or its default value, if saving is not implemented.
  382.  
  383. 7.2.2. COMPARE Command
  384.  
  385.  
  386.                          Table 7-4: COMPARE Command
  387.  
  388. ==============================================================================
  389.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  390. Byte |        |        |        |        |        |        |        |        |
  391. ==============================================================================
  392.  0   |                           Operation Code (39h)                        |
  393. -----|-----------------------------------------------------------------------|
  394.  1   | Logical Unit Number      |              Reserved             |  Pad   |
  395. -----|-----------------------------------------------------------------------|
  396.  2   |                           Reserved                                    |
  397. -----|-----------------------------------------------------------------------|
  398.  3   | (MSB)                                                                 |
  399. - - -|- -                        Parameter List Length                    - -|
  400.  5   |                                                                 (LSB) |
  401. -----|-----------------------------------------------------------------------|
  402.  6   |                                                                       |
  403. - - -|- -                        Reserved                                 - -|
  404.  8   |                                                                       |
  405. -----|-----------------------------------------------------------------------|
  406.  9   |                           Control                                     |
  407. ==============================================================================
  408.  
  409.  
  410. The COMPARE command (Table 7-4) provides the means to compare data from one
  411. logical unit with another or the same logical unit in a manner similar to the
  412. COPY command.
  413.  
  414. This command functions in the same manner as the COPY command, except that the
  415. data from the source is compared on a byte-by-byte basis with the data from
  416. the destination.  The parameter list transferred to the target is the same as
  417. for the COPY command.  This parameter list contains the information to
  418. identify the logical units involved in the comparison and the length of the
  419. comparison.  (See 7.2.3 for additional information about the COPY command.)
  420.  
  421. If the comparison is unsuccessful, the command shall be terminated with CHECK
  422. CONDITION status and the sense key shall be set to MISCOMPARE.  The remaining
  423. fields in the sense data shall be set as documented in the COPY command.
  424.  
  425.  
  426. SCSI-2 draft proposed American National Standard        7-7      Revision 10c7
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434. All Device Types                                                        3/9/90
  435.  
  436. 7.2.3. COPY Command
  437.  
  438.  
  439.                            Table 7-5: COPY Command
  440.  
  441. ==============================================================================
  442.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  443. Byte |        |        |        |        |        |        |        |        |
  444. ==============================================================================
  445.  0   |                           Operation Code (18h)                        |
  446. -----|-----------------------------------------------------------------------|
  447.  1   | Logical Unit Number      |              Reserved             |  Pad   |
  448. -----|-----------------------------------------------------------------------|
  449.  2   | (MSB)                                                                 |
  450. - - -|- -                        Parameter List Length                    - -|
  451.  4   |                                                                 (LSB) |
  452. -----|-----------------------------------------------------------------------|
  453.  5   |                           Control                                     |
  454. ==============================================================================
  455.  
  456.  
  457. The COPY command (Table 7-5) provides a means to copy data from one logical
  458. unit to another or the same logical unit.  The logical unit that receives and
  459. performs the COPY command is called the copy manager.  The copy manager is
  460. responsible for copying data from a logical unit (source device) to a logical
  461. unit (destination device).  These logical units may reside on different SCSI
  462. devices or the same SCSI device (in fact all three may be the same logical
  463. unit).  Some SCSI devices that implement this command may not support copies
  464. to or from another SCSI device, or may not support third party copies (i.e.,
  465. both the source and the destination logical units reside on other SCSI
  466. devices).
  467.  
  468. The pad bit (7.2.3.7) is used in conjunction with the Cat bit (7.2.3.7) in the
  469. segment descriptors to define what action should be taken when a segment of
  470. the copy does not fit exactly into an integer number of destination blocks.
  471. The parameter list length field specifies the length in bytes of the
  472. parameters that shall be sent during the DATA OUT phase of the command.  A
  473. parameter list length of zero indicates that no data shall be transferred.
  474. This condition shall not be considered as an error.
  475.  
  476. The COPY parameter list (Table 7-6) begins with a four-byte header that
  477. contains the COPY function code and priority.  Following the header is one or
  478. more segment descriptors.
  479.  
  480.                        Table 7-6: COPY Parameter List
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487. SCSI-2 draft proposed American National Standard        7-8      Revision 10c8
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495. All Device Types                                                        3/9/90
  496.  
  497.  
  498. ==============================================================================
  499.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  500. Byte |        |        |        |        |        |        |        |        |
  501. ==============================================================================
  502.  0   |         COPY Function Code                 |         Priority         |
  503. -----|-----------------------------------------------------------------------|
  504.  1   |                           Vendor Specific                             |
  505. -----|-----------------------------------------------------------------------|
  506.  2   |                           Reserved                                    |
  507. -----|-----------------------------------------------------------------------|
  508.  3   |                           Reserved                                    |
  509. ==============================================================================
  510.      |                         Segment Descriptor(s)                         |
  511. ==============================================================================
  512.  0 - |                           Segment Descriptor 0                        |
  513.  xx  |                     (See specific table for length.)                  |
  514. -----|-----------------------------------------------------------------------|
  515.      |                                 .                                     |
  516.      |                                 .                                     |
  517.      |                                 .                                     |
  518. -----|-----------------------------------------------------------------------|
  519.  0 - |                           Segment Descriptor n                        |
  520.  xx  |                     (See specific table for length.)                  |
  521. ==============================================================================
  522.  
  523.  
  524. The COPY function code field defines a specific format for the segment
  525. descriptors.  The COPY function codes are defined in Table 7-7.  A target need
  526. not support all function codes for its device type.
  527.  
  528. The priority field of the COPY parameter list establishes the relative
  529. priority of this COPY command to other commands being executed by the same
  530. target.  All other commands are assumed to have a priority of 1.  Priority 0
  531. is the highest priority with increasing values indicating lower priorities.
  532.  
  533. The segment descriptor formats are determined by the COPY function code.  The
  534. segment descriptor format used for block devices (i.e., write-once, CD- ROM,
  535. optical-memory, and direct-access devices) shall be the same.  The segment
  536. descriptor format used for stream devices (i.e., printer, processor,
  537. communications, and sequential-access devices), shall be the same.  Thus a
  538. copy operation from a write-once device to a printer device uses the same
  539. segment descriptor format as a copy operation from a direct-access device to a
  540. sequential-access device (see Table 7-7).  The segment descriptor formats are
  541. described in Tables 7-8 through 7-11.  A maximum of 256 segment descriptors
  542. are permitted.  The segment descriptors are identified by ascending numbers
  543. beginning with zero.
  544.  
  545.                        Table 7-7: COPY Function Codes
  546.  
  547.  
  548. SCSI-2 draft proposed American National Standard        7-9      Revision 10c9
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556. All Device Types                                                        3/9/90
  557.  
  558.  
  559. ==============================================================================
  560.        Peripheral Device Type                   COPY      Segment
  561.        ----------------------                 Function   Descriptor
  562. Source                  Destination             Code       Table    Comments
  563. ------------------------------------------------------------------------------
  564. Block Devices           Stream Devices            0         7-8
  565. (Device types 0,4,5,7)  (Device types 1,2,3,9)
  566. Stream Devices          Block Devices             1         7-8     (Note 3)
  567. (Device types 1,3,9)    (Device types 0,4,5,7)
  568. Block Devices           Block Devices             2         7-9     (Note 3)
  569. (Device types 0,4,5,7)  (Device types 0,4,5,7)
  570. Stream Devices          Stream Devices            3         7-10
  571. (Device types 1,3,9)    (Device types 1,2,3,9)
  572. Sequential-Access       Sequential-Access         4         7-11    Image Copy
  573. (Device type 1)         (Device type 1)
  574. ==============================================================================
  575.  
  576. NOTES:
  577. (1) COPY function codes 05h - 0Fh are reserved.
  578. (2) COPY function codes 10h - 1Fh are vendor specific.
  579. (3) When using the COMPARE command the destination block device may be a CD-
  580. ROM device or an optical-memory device that uses read-only media.
  581.  
  582. 7.2.3.1. Errors Detected by the Managing SCSI Device
  583. Two classes of exception conditions may occur during execution of a COPY
  584. command.  The first class consists of those exception conditions detected by
  585. the SCSI device that received the COPY command and is managing the execution
  586. of the command.  These conditions include parity errors while transferring the
  587. COPY command and status byte, invalid parameters in the COPY command, invalid
  588. segment descriptors, and inability of the SCSI device controlling the COPY
  589. functions to continue operating.  In the event of such an exception condition,
  590. the SCSI device managing the COPY shall:
  591. (1) Terminate the COPY command with CHECK CONDITION status.
  592. (2) The valid bit in the sense data shall be set to one.  The segment number
  593. shall contain the number of the segment descriptor being processed at the time
  594. the exception condition is detected.  The sense key shall contain the sense
  595. key code describing the exception condition (i.e., not COPY ABORTED).  The
  596. information field shall contain the difference between the number of blocks
  597. field in the segment descriptor being processed at the time of the failure and
  598. the number of blocks successfully copied.  This number is the residue of
  599. unprocessed blocks remaining for the segment descriptor.
  600.  
  601. 7.2.3.2. Errors Detected by a Target
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609. SCSI-2 draft proposed American National Standard        7-10      Revision 10c10
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617. All Device Types                                                        3/9/90
  618.  
  619. The second class of errors consists of exception conditions detected by the
  620. SCSI device transferring data at the request of the SCSI device managing the
  621. transfer.  The SCSI device managing the COPY command detects exception
  622. conditions by receiving CHECK CONDITION status from one of the SCSI devices it
  623. is managing.  It then shall recover the sense data associated with the
  624. exception condition.
  625.  
  626. The SCSI device managing the COPY command may also be the source or
  627. destination SCSI device (or both).  It shall distinguish between a failure of
  628. the management of the COPY and a failure of the data transfer being requested.
  629. It shall then create the appropriate sense data internally.
  630.  
  631. After recovering the sense data associated with the detected error, the SCSI
  632. device managing the COPY command shall:
  633. (1) Terminate the COPY command with CHECK CONDITION status.
  634. (2) The valid bit in the sense data shall be set to one.  The segment number
  635. shall contain the number of the segment descriptor being processed at the time
  636. the exception condition is detected.  The sense key shall be set to COPY
  637. ABORTED.  The information field shall contain the difference between the
  638. number of blocks field in the segment descriptor being processed at the time
  639. of the failure and the number of blocks successfully copied.  This number is
  640. the residue of unprocessed blocks remaining for the segment descriptor.
  641.  
  642. The first byte of the command-specific information field shall specify the
  643. starting byte number, relative to the first byte of sense data, of an area
  644. that contains (unchanged) the source logical unit's status byte and sense
  645. data.  A zero value indicates that no status byte or sense data is being
  646. returned for the source logical unit.
  647.  
  648. The second byte of the command-specific information field shall specify the
  649. starting byte number, relative to the first byte of sense data, of an area
  650. that contains (unchanged) the destination logical unit's status byte and sense
  651. data.  A zero value indicates that no status byte or sense data is being
  652. returned for the destination logical unit.
  653.  
  654. 7.2.3.3. COPY Function Code 00h and 01h
  655. The format for the segment descriptors for COPY transfers between block and
  656. stream devices is specified in Table 7-8.  This format is required for COPY
  657. function codes 00h or 01h.  The segment descriptor may be repeated up to 256
  658. times within the parameter list length specified in the command descriptor
  659. block.
  660.  
  661.       Table 7-8: Segment Descriptor for COPY Function Codes 00h and 01h
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670. SCSI-2 draft proposed American National Standard        7-11      Revision 10c11
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678. All Device Types                                                        3/9/90
  679.  
  680.  
  681. ==============================================================================
  682.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  683. Byte |        |        |        |        |        |        |        |        |
  684. ==============================================================================
  685.  0   | Source Address           |Reserved|  Cat   |     Source LUN           |
  686. -----|-----------------------------------------------------------------------|
  687.  1   | Destination Address      |   Reserved      |     Destination LUN      |
  688. -----|-----------------------------------------------------------------------|
  689.  2   | (MSB)                                                                 |
  690. -----|---                        Stream Device Block Length               ---|
  691.  3   |                                                                 (LSB) |
  692. -----|-----------------------------------------------------------------------|
  693.  4   | (MSB)                                                                 |
  694. - - -|- -                        Block Device Number of Blocks            - -|
  695.  7   |                                                                 (LSB) |
  696. -----|-----------------------------------------------------------------------|
  697.  8   | (MSB)                                                                 |
  698. - - -|- -                        Block Device Logical Block Address       - -|
  699. 11   |                                                                 (LSB) |
  700. ==============================================================================
  701.  
  702.  
  703. The source address and source LUN fields specify the SCSI bus ID and logical
  704. unit of the device to copy the data from for this segment of the COPY command.
  705. The destination address and destination LUN fields specify the SCSI bus ID and
  706. logical unit to copy the data to for this segment of the COPY command.  Some
  707. SCSI devices may not support third-party COPY in which the copying SCSI device
  708. is not the source or destination device.  Some SCSI devices only support COPY
  709. within the SCSI device and not to other SCSI devices.  If an unsupported COPY
  710. operation is requested, the command shall be terminated with CHECK CONDITION
  711. status and the sense key shall be set to ILLEGAL REQUEST with an additional
  712. sense code of INVALID FIELD IN PARAMETER LIST (see 7.2.3.1).
  713.  
  714. A catenate (Cat) bit (optional) of one indicates that the COPY manager shall
  715. catenate the last source block of a segment with the first source block of the
  716. next segment if the last source block does not end exactly at the end of the
  717. destination block.  The definition of a cat bit of zero depends on the setting
  718. of the pad bit in the command descriptor block  (see 7.2.3.7).
  719.  
  720. The stream device block-length field specifies the block length to be used on
  721. the stream device logical unit during this segment of the COPY command.  If
  722. the SCSI device managing the COPY knows this block length is not supported,
  723. the command shall be terminated with CHECK CONDITION status and the sense key
  724. shall be set to ILLEGAL REQUEST with an additional sense code of INVALID FIELD
  725. IN PARAMETER LIST . If the block length is found to be invalid while executing
  726. a read or write operation to the stream device, the command shall be
  727. terminated with CHECK CONDITION status and the sense key shall be set to COPY
  728. ABORTED (see 7.2.3.2).
  729.  
  730.  
  731. SCSI-2 draft proposed American National Standard        7-12      Revision 10c12
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739. All Device Types                                                        3/9/90
  740.  
  741. The block device number of blocks field specifies the number of blocks in the
  742. current segment to be copied.  A value of zero indicates that no blocks shall
  743. be transferred in this segment.
  744.  
  745. The block device logical block address field specifies the starting logical
  746. block address on the logical unit for this segment.
  747.  
  748. 7.2.3.4. COPY Function Code 02h
  749. The format for the segment descriptors for COPY transfers among block devices
  750. is specified in Table 7-9.  This format is required for COPY function code
  751. 02h.  The segment descriptor may be repeated up to 256 times within the
  752. parameter list length specified in the command descriptor block.
  753.  
  754.           Table 7-9: Segment Descriptor for COPY Function Code 02h
  755.  
  756. ==============================================================================
  757.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  758. Byte |        |        |        |        |        |        |        |        |
  759. ==============================================================================
  760.  0   | Source Address           |   DC   |  Cat   | Source LUN               |
  761. -----|-----------------------------------------------------------------------|
  762.  1   | Destination Address      |   Reserved      | Destination LUN          |
  763. -----|-----------------------------------------------------------------------|
  764.  2   |                              Reserved                                 |
  765. -----|-----------------------------------------------------------------------|
  766.  3   |                              Reserved                                 |
  767. -----|-----------------------------------------------------------------------|
  768.  4   | (MSB)                                                                 |
  769. - - -|- -                Number of Blocks                                 - -|
  770.  7   |                                                                 (LSB) |
  771. -----|-----------------------------------------------------------------------|
  772.  8   | (MSB)                                                                 |
  773. - - -|- -                Source Logical Block Address                     - -|
  774. 11   |                                                                 (LSB) |
  775. -----|-----------------------------------------------------------------------|
  776. 12   | (MSB)                                                                 |
  777. - - -|- -                Destination Logical Block Address                - -|
  778. 15   |                                                                 (LSB) |
  779. ==============================================================================
  780.  
  781.  
  782. See 7.2.3.3 for definitions of the source address, the source LUN, the
  783. destination address, the destination LUN, and CAT fields.
  784.  
  785. A destination count (DC) bit of zero indicates that the number of blocks field
  786. refers to the source logical unit.  A DC bit of one indicates that the number
  787. of blocks field refers to the destination logical unit.
  788.  
  789. The number of blocks field specifies the number of blocks to be transferred to
  790.  
  791.  
  792. SCSI-2 draft proposed American National Standard        7-13      Revision 10c13
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800. All Device Types                                                        3/9/90
  801.  
  802. or from (depending on the DC bit) the block device during this segment.  A
  803. value of zero indicates that no blocks shall be transferred.
  804.  
  805. The source logical block address field specifies the starting logical block
  806. address on the source block device.
  807.  
  808. The destination logical block address field specifies the starting logical
  809. block address on the destination block device.
  810.  
  811. 7.2.3.5. COPY Function Code 03h
  812. The format for the segment descriptors for COPY transfers among stream devices
  813. is specified by Table 7-10.  This format is required for COPY function code
  814. 03h.  The segment descriptor may be repeated up to 256 times within the
  815. parameter list length specified in the command descriptor block.
  816.  
  817.           Table 7-10: Segment Descriptor for COPY Function Code 03h
  818.  
  819. ==============================================================================
  820.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  821. Byte |        |        |        |        |        |        |        |        |
  822. ==============================================================================
  823.  0   | Source Address           |   DC   |  Cat   | Source LUN               |
  824. -----|-----------------------------------------------------------------------|
  825.  1   | Destination Address      |   Reserved      | Destination LUN          |
  826. -----|-----------------------------------------------------------------------|
  827.  2   |                              Reserved                                 |
  828. -----|-----------------------------------------------------------------------|
  829.  3   |                              Reserved                                 |
  830. -----|-----------------------------------------------------------------------|
  831.  4   | (MSB)                                                                 |
  832. -----|---                        Source Block Length                      ---|
  833.  5   |                                                                 (LSB) |
  834. -----|-----------------------------------------------------------------------|
  835.  6   | (MSB)                                                                 |
  836. -----|---                        Destination Block Length                 ---|
  837.  7   |                                                                 (LSB) |
  838. -----|-----------------------------------------------------------------------|
  839.  8   | (MSB)                                                                 |
  840. - - -|- -                        Number of Blocks                         - -|
  841. 11   |                                                                 (LSB) |
  842. ==============================================================================
  843.  
  844.  
  845. See 7.2.3.3 for definitions of the source address, the source LUN, the
  846. destination address, the destination LUN, and CAT fields.
  847.  
  848. A destination count (DC) bit of zero indicates that the number of blocks field
  849. refers to the source logical unit.  A DC bit of one indicates that the number
  850. of blocks field refers to the destination logical unit.
  851.  
  852.  
  853. SCSI-2 draft proposed American National Standard        7-14      Revision 10c14
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861. All Device Types                                                        3/9/90
  862.  
  863. The source block length field specifies the block-length of the source device
  864. for this segment of the COPY.  A zero in this field indicates variable
  865. block-length.  For non-zero values, this field shall match the logical unit's
  866. actual block-length.
  867.  
  868. If block-length mismatches are detected prior to the beginning of the read
  869. operation by the SCSI device managing the COPY, the command shall be
  870. terminated with CHECK CONDITION status.  The sense key shall be set to ILLEGAL
  871. REQUEST and the additional sense code shall be set to INVALID FIELD IN
  872. PARAMETER LIST (see 7.2.3.1).
  873.  
  874. If the mismatches are detected during the read operation by the COPY manager,
  875. the command shall be terminated with CHECK CONDITION status.  The sense key
  876. shall be set to COPY ABORTED (see 7.2.3.2).  and the additional sense code
  877. shall be set to INVALID FIELD IN PARAMETER LIST.
  878.  
  879. The destination block-length field specifies the block length to be used on
  880. the destination logical unit during the COPY.  Destination block length
  881. mismatches are handled in an analogous manner as source block length
  882. mismatches.
  883.  
  884. The number of blocks field specifies the number of blocks to be transferred to
  885. or from (depending on the DC bit) the device during this segment.  A value of
  886. zero indicates that no blocks shall be transferred.
  887.  
  888. 7.2.3.6. COPY Function Code 04h
  889. The format for the segment descriptors for image COPY transfers between
  890. sequential-access devices is specified in Table 7-11.  This format is required
  891. for COPY function code 04h.  The segment descriptor may be repeated up to 256
  892. times within the parameter list length specified in the command descriptor
  893. block.
  894.  
  895.           Table 7-11: Segment Descriptor for COPY Function Code 04h
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914. SCSI-2 draft proposed American National Standard        7-15      Revision 10c15
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922. All Device Types                                                        3/9/90
  923.  
  924.  
  925. ==============================================================================
  926.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  927. Byte |        |        |        |        |        |        |        |        |
  928. ==============================================================================
  929.  0   | Source Address           |   Reserved      | Source LUN               |
  930. -----|-----------------------------------------------------------------------|
  931.  1   | Destination Address      |   Reserved      | Destination LUN          |
  932. -----|-----------------------------------------------------------------------|
  933.  2   |                              Count                                    |
  934. -----|-----------------------------------------------------------------------|
  935.  3   |                                                                       |
  936. - - -|- -                           Reserved                              - -|
  937.  7   |                                                                       |
  938. -----|-----------------------------------------------------------------------|
  939.  8   |                                                                       |
  940. - - -|- -                           Vendor Specific                       - -|
  941. 11   |                                                                       |
  942. ==============================================================================
  943.  
  944.  
  945. See 7.2.3.3 for definitions of the source address, the source LUN, the
  946. destination address, the destination LUN, and CAT fields.
  947.  
  948. The image mode COPY command copies an exact image of the source device medium
  949. to the destination device medium, beginning at their current positions. The
  950. copy function terminates when the source device:
  951. (1) encounters an end-of-partition as defined by the source device
  952. (2) encounters an end-of-data as defined by the source device (i.e., BLANK
  953. CHECK sense key)
  954. (3) has copied the number of consecutive filemarks specified in the count
  955. field from the source device to the destination device
  956. (4) has copied the number of consecutive setmarks specified in the count field
  957. from the source device to the destination device, if the RSmk bit in the
  958. device configuration page (see 9.3.3.1) is one.
  959.  
  960. A count field of zero indicates that the COPY command shall not terminate due
  961. to any number of consecutive filemarks or setmarks.  Other error or exception
  962. conditions (e.g., early-warning end-of-partition on the destination device)
  963. may cause the COPY command to terminate prior to completion.  In such cases,
  964. it is not possible to calculate a residue, so the information field in the
  965. sense data shall be set to zero.
  966.  
  967. 7.2.3.7. Copies With Unequal Block Lengths
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975. SCSI-2 draft proposed American National Standard        7-16      Revision 10c16
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983. All Device Types                                                        3/9/90
  984.  
  985. When copying data between two devices with unequal block lengths, it is
  986. possible for the last source block to not completely fill the last destination
  987. block for one or more segments in the COPY command.  Two optional bits are
  988. defined to assist in controlling the copy manager's actions in this
  989. circumstance.  The Pad bit (in the command descriptor block) and the Cat bit
  990. (in each applicable segment descriptor) are defined in Table 7-12.
  991.  
  992.                     Table 7-12: Pad and Cat Bit Definition
  993.  
  994. ==============================================================================
  995.  Pad Cat   COPY Manager's Action
  996. ---- ----  -------------------------------------------------------------------
  997. 0   0    On inexact segments, it is device specific whether the COPY manager
  998. rejects the COPY command with CHECK CONDITION status and ILLEGAL REQUEST sense
  999. key, the COPY manager writes or accepts short blocks (variable-block mode on
  1000. sequential-access devices), or the COPY manager adds pad characters (00h) to
  1001. the destination block or strips pad characters from the source block.
  1002.  
  1003. 1   0    On inexact segments, the COPY manager shall add pad characters (00h)
  1004. to the destination block to completely fill the block or it shall strip pad
  1005. characters from the source block, always stopping at the end of a complete
  1006. block.
  1007.  
  1008. X   1    The COPY manager shall always write or read complete blocks.  On
  1009. inexact segments, the remainder of the block contains data from the next
  1010. segment.  This code is not valid in the last segment of the COPY command.
  1011. ==============================================================================
  1012.  
  1013.  
  1014. IMPLEMENTORS NOTE:  Use of pad characters is intended to assist in managing
  1015. COPY commands between devices of different block lengths where partial-block
  1016. residues may occur.  The initiator which issued the COPY command is
  1017. responsible for management of these pad areas (i.e., remembering where they
  1018. are).  One possible method is to write the COPY parameter list information to
  1019. the destination medium prior to issuing the COPY command for backup and to
  1020. read this information prior to issuing the COPY command for restore.
  1021.  
  1022. 7.2.4. COPY AND VERIFY Command
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036. SCSI-2 draft proposed American National Standard        7-17      Revision 10c17
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044. All Device Types                                                        3/9/90
  1045.  
  1046.  
  1047.  
  1048.                      Table 7-13: COPY AND VERIFY Command
  1049.  
  1050. ==============================================================================
  1051.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1052. Byte |        |        |        |        |        |        |        |        |
  1053. ==============================================================================
  1054.  0   |                           Operation Code (3Ah)                        |
  1055. -----|-----------------------------------------------------------------------|
  1056.  1   | Logical Unit Number      |        Reserved          | BytChk |  Pad   |
  1057. -----|-----------------------------------------------------------------------|
  1058.  2   |                           Reserved                                    |
  1059. -----|-----------------------------------------------------------------------|
  1060.  3   | (MSB)                                                                 |
  1061. - - -|- -                        Parameter List Length                    - -|
  1062.  5   |                                                                 (LSB) |
  1063. -----|-----------------------------------------------------------------------|
  1064.  6   |                                                                       |
  1065. - - -|- -                        Reserved                                 - -|
  1066.  8   |                                                                       |
  1067. -----|-----------------------------------------------------------------------|
  1068.  9   |                           Control                                     |
  1069. ==============================================================================
  1070.  
  1071.  
  1072. The COPY AND VERIFY command (Table 7-13) performs the same function as the
  1073. COPY command, except that a verification of the data written to the
  1074. destination logical unit is performed after the data is written.  The
  1075. parameter list transferred to the target is the same as for the COPY command.
  1076. This parameter list contains the information to identify the logical units
  1077. involved in the copy and the length of the copy.  See 7.2.3 for additional
  1078. information about the COPY command.
  1079.  
  1080. A byte check (BytChk) bit of zero causes a medium verification to be performed
  1081. with no data comparison.  A BytChk bit of one causes a byte-by-byte compare of
  1082. data written on the destination medium and the data transferred from the
  1083. source medium.  If the compare is unsuccessful for any reason, the copy
  1084. manager shall return CHECK CONDITION status with the sense key set to
  1085. MISCOMPARE.  The remaining fields in the sense data shall be set as documented
  1086. in the COPY command.
  1087.  
  1088.  
  1089. 7.2.5. INQUIRY Command
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097. SCSI-2 draft proposed American National Standard        7-18      Revision 10c18
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105. All Device Types                                                        3/9/90
  1106.  
  1107.  
  1108.  
  1109.                          Table 7-14: INQUIRY Command
  1110.  
  1111. ==============================================================================
  1112.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1113. Byte |        |        |        |        |        |        |        |        |
  1114. ==============================================================================
  1115.  0   |                           Operation Code (12h)                        |
  1116. -----|-----------------------------------------------------------------------|
  1117.  1   | Logical Unit Number      |                  Reserved         |  EVPD  |
  1118. -----|-----------------------------------------------------------------------|
  1119.  2   |                           Page Code                                   |
  1120. -----|-----------------------------------------------------------------------|
  1121.  3   |                           Reserved                                    |
  1122. -----|-----------------------------------------------------------------------|
  1123.  4   |                           Allocation Length                           |
  1124. -----|-----------------------------------------------------------------------|
  1125.  5   |                           Control                                     |
  1126. ==============================================================================
  1127.  
  1128.  
  1129. The INQUIRY command (Table 7-14) requests that information regarding
  1130. parameters of the target and its attached peripheral device(s) be sent to the
  1131. initiator.  An option allows the initiator to request additional information
  1132. about the target or logical unit (see 7.2.5.2).
  1133.  
  1134. An enable vital product data (EVPD) bit of one specifies that the target shall
  1135. return the optional vital product data specified by the page code field.  If
  1136. the target does not support vital product data and this bit is set to one, the
  1137. target shall return CHECK CONDITION status with the sense key set to ILLEGAL
  1138. REQUEST and an additional sense code of INVALID FIELD IN CDB.
  1139.  
  1140. An EVPD bit of zero specifies that the target shall return the standard
  1141. INQUIRY data.  If the page code field is not zero, the target shall return
  1142. CHECK CONDITION status with the sense key set to ILLEGAL REQUEST and an
  1143. additional sense code of INVALID FIELD IN CDB.
  1144.  
  1145. The page code field specifies which page of vital product data information the
  1146. target shall return (see 7.3.4).
  1147.  
  1148. The INQUIRY command shall return CHECK CONDITION status only when the target
  1149. cannot return the requested INQUIRY data.
  1150.  
  1151. IMPLEMENTORS NOTE:  It is recommended that the INQUIRY data be returned even
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158. SCSI-2 draft proposed American National Standard        7-19      Revision 10c19
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166. All Device Types                                                        3/9/90
  1167.  
  1168. though the peripheral device may not be ready for other commands.
  1169.  
  1170. If an INQUIRY command is received from an initiator with a pending unit
  1171. attention condition (i.e., before the target reports CHECK CONDITION status),
  1172. the target shall perform the INQUIRY command and shall not clear the unit
  1173. attention condition (see 6.9).
  1174.  
  1175. IMPLEMENTORS NOTES:
  1176. (1) The INQUIRY command is typically used by the initiator after a reset or
  1177. power-up condition to determine the device types for system configuration.  To
  1178. minimize delays after a reset or power-up condition the standard INQUIRY data
  1179. should be available without incurring any media access delays.  If the target
  1180. does store some of the INQUIRY data on the device it may return zeros or ASCII
  1181. spaces (20h) in those fields until the data is available from the device.
  1182. (2) The INQUIRY data may change as the target executes its initialization
  1183. sequence or in response to a CHANGE DEFINITION command.  For example, the
  1184. target may contain a minimum command set in its non-volatile memory and may
  1185. load its final firmware from the device when it becomes ready.  After it has
  1186. loaded the firmware it may support more options and therefore return different
  1187. supported options information in the INQUIRY data.
  1188.  
  1189. 7.2.5.1. Standard INQUIRY Data
  1190. The standard INQUIRY data (Table 7-15) contains 36 required bytes, followed by
  1191. a variable number of vendor-specific parameters.  Bytes 56 through 95, if
  1192. returned, are reserved for future standardization.
  1193.  
  1194. The standard INQUIRY data format is shown in Table 7-15.
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219. SCSI-2 draft proposed American National Standard        7-20      Revision 10c20
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227. All Device Types                                                        3/9/90
  1228.  
  1229.  
  1230.                    Table 7-15: Standard INQUIRY Data Format
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280. SCSI-2 draft proposed American National Standard        7-21      Revision 10c21
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288. All Device Types                                                        3/9/90
  1289.  
  1290.  
  1291. ==============================================================================
  1292.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1293. Byte |        |        |        |        |        |        |        |        |
  1294. ==============================================================================
  1295.  0   | Peripheral Qualifier     |           Peripheral Device Type           |
  1296. -----|-----------------------------------------------------------------------|
  1297.  1   |  RMB   |                  Device-Type Modifier                        |
  1298. -----|-----------------------------------------------------------------------|
  1299.  2   |   ISO Version   |       ECMA Version       |  ANSI-Approved Version   |
  1300. -----|-----------------------------------------------------------------------|
  1301.  3   |  AENC  | TrmIOP |     Reserved    |         Response Data Format      |
  1302. -----|-----------------------------------------------------------------------|
  1303.  4   |                           Additional Length (n-4)                     |
  1304. -----|-----------------------------------------------------------------------|
  1305.  5   |                           Reserved                                    |
  1306. -----|-----------------------------------------------------------------------|
  1307.  6   |                           Reserved                                    |
  1308. -----|-----------------------------------------------------------------------|
  1309.  7   | RelAdr | WBus32 | WBus16 |  Sync  | Linked |Reserved| CmdQue | SftRe  |
  1310. -----|-+---------------------------------------------------------------------|
  1311.  8   | (MSB)                                                                 |
  1312. - - -|- -                        Vendor Identification                    - -|
  1313.  15  |                                                                 (LSB) |
  1314. -----|-+---------------------------------------------------------------------|
  1315.  16  | (MSB)                                                                 |
  1316. - - -|- -                        Product Identification                   - -|
  1317.  31  |                                                                 (LSB) |
  1318. -----|-+---------------------------------------------------------------------|
  1319.  32  | (MSB)                                                                 |
  1320. - - -|- -                        Product Revision Level                   - -|
  1321.  35  |                                                                 (LSB) |
  1322. -----|-+---------------------------------------------------------------------|
  1323.  36  |                                                                       |
  1324. - - -|- -                        Vendor Specific                          - -|
  1325.  55  |                                                                       |
  1326. -----|-+---------------------------------------------------------------------|
  1327.  56  |                                                                       |
  1328. - - -|- -                        Reserved                                 - -|
  1329.  95  |                                                                       |
  1330. ==============================================================================
  1331.     |                       Vendor-Specific Parameters                      |
  1332. ==============================================================================
  1333. 96 to|                           Vendor-Specific                             |
  1334.  n   |                           Parameter Bytes                             |
  1335. ==============================================================================
  1336.  
  1337.  
  1338. The peripheral qualifier and peripheral device-type fields identify the device
  1339.  
  1340.  
  1341. SCSI-2 draft proposed American National Standard        7-22      Revision 10c22
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349. All Device Types                                                        3/9/90
  1350.  
  1351. currently connected to the logical unit.  If the target is not capable of
  1352. supporting a device on this logical unit, this field shall be set to 7Fh
  1353. (peripheral qualifier set to 011b and peripheral device type set to 1Fh).  The
  1354. peripheral qualifier is defined in Table 7-16 and the peripheral device type
  1355. is defined in Table 7-17.
  1356.  
  1357.                        Table 7-16: Peripheral Qualifier
  1358.  
  1359. ==============================================================================
  1360. Qualifier     Description
  1361. ---------     ----------------------------------------------------------------
  1362. 000b        The specified peripheral device type is currently connected to
  1363. this logical unit.  If the target cannot determine whether or not a physical
  1364. device is currently connected it shall also use this peripheral qualifier when
  1365. returning the INQUIRY data.  Note: This peripheral qualifier does not imply
  1366. that the device is ready for access by the initiator.
  1367.  
  1368. 001b        The target is capable of supporting the specified peripheral
  1369. device type on this logical unit, however the physical device is not currently
  1370. connected to this logical unit.
  1371.  
  1372. 010b        Reserved
  1373.  
  1374. 011b        The target is not capable of supporting a physical device on this
  1375. logical unit.  For this peripheral qualifier the peripheral device type shall
  1376. be set to 1Fh to provide compatibility with previous versions of SCSI.  All
  1377. other peripheral device type values are reserved for this peripheral
  1378. qualifier.
  1379.  
  1380. 1XXb        Vendor specific
  1381. ==============================================================================
  1382.  
  1383.  
  1384.                       Table 7-17: Peripheral Device Type
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. SCSI-2 draft proposed American National Standard        7-23      Revision 10c23
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410. All Device Types                                                        3/9/90
  1411.  
  1412.  
  1413. ==============================================================================
  1414.   Code         Description
  1415. -----------    ---------------------------------------------------------------
  1416. 00h          Direct-access device (e.g., magnetic disk)
  1417. 01h          Sequential-access device (e.g., magnetic tape)
  1418. 02h          Printer device
  1419. 03h          Processor device
  1420. 04h          Write-once device (e.g., some optical disks)
  1421. 05h          CD-ROM device
  1422. 06h          Scanner device
  1423. 07h          Optical memory device (e.g., some optical disks)
  1424. 08h          Medium Changer device (e.g., jukeboxes)
  1425. 09h          Communications device
  1426. 0Ah - 0Bh    Defined by ASC IT8 (Graphic Arts Pre-Press Devices)
  1427. 0Ch - 1Eh    Reserved
  1428. 1Fh          Unknown or no device type
  1429. ==============================================================================
  1430.  
  1431.  
  1432. A removable medium (RMB) bit of zero indicates that the medium is not
  1433. removable.  A RMB bit of one indicates that the medium is removable.
  1434.  
  1435. The device-type modifier field was defined in SCSI-1 to permit vendor-
  1436. specific qualification codes of the device type.  This field is retained for
  1437. compatibility with SCSI-1.  Targets that do not support this field should
  1438. return a value of zero.
  1439.  
  1440. The usage of non-zero code values in the ISO version and ECMA version fields
  1441. are defined by the International Organization for Standardization and the
  1442. European Computer Manufacturers Association, respectively.  A zero code value
  1443. in these fields shall indicate that the target does not claim compliance to
  1444. the ISO version of SCSI (ISO IS 9316) or the ECMA version of SCSI (ECMA-111).
  1445. It is possible to claim compliance to more than one of these SCSI standards.
  1446.  
  1447. The ANSI-approved version field indicates the implemented version of this
  1448. standard and is defined in Table 7-18.
  1449.  
  1450.                       Table 7-18: ANSI-Approved Version
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463. SCSI-2 draft proposed American National Standard        7-24      Revision 10c24
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471. All Device Types                                                        3/9/90
  1472.  
  1473.  
  1474. ==============================================================================
  1475.   Code        Description
  1476. ------------------------------------------------------------------------------
  1477. 0h      The device might or might not comply to an ANSI-approved standard.
  1478. 1h      The device complies to ANSI X3.131-1986 (SCSI-1).
  1479. 2h      The device complies to this version of SCSI.  This code is reserved to
  1480. designate this standard upon approval by ANSI.
  1481. 3h - 7h   Reserved
  1482. ==============================================================================
  1483.  
  1484.  
  1485. The asynchronous event notification capability (AENC) bit indicates that the
  1486. device supports the asynchronous event notification capability as defined in
  1487. 6.5.5.
  1488. (1) Processor device-type definition:  An AENC bit of one indicates that the
  1489. processor device is capable of accepting asynchronous event notifications. An
  1490. AENC bit of zero indicates that the processor device does not support
  1491. asynchronous event notifications.
  1492. (2) All other device-types:  This bit is reserved.
  1493.  
  1494. A terminate I/O process (TrmIOP) bit of one indicates that the device supports
  1495. the TERMINATE I/O PROCESS message as defined in 5.6.22.  A value of zero
  1496. indicates that the device does not support the TERMINATE I/O PROCESS message.
  1497.  
  1498. A response data format value of zero indicates the INQUIRY data format is as
  1499. specified in SCSI-1.  A response data format value of one indicates
  1500. compatibility with some products that were designed prior to the development
  1501. of this standard (i.e., CCS).  A response data format value of two indicates
  1502. that the data shall be in the format specified in this standard.  Response
  1503. data format values greater than two are reserved.
  1504.  
  1505. The additional length field shall specify the length in bytes of the
  1506. parameters.  If the allocation length of the command descriptor block is too
  1507. small to transfer all of the parameters, the additional length shall not be
  1508. adjusted to reflect the truncation.
  1509.  
  1510. A relative addressing (RelAdr) bit of one indicates that the device supports
  1511. the relative addressing mode for this logical unit.  If this bit is set to one
  1512. the linked command (Linked) bit shall also be set to one since relative
  1513. addressing can only be used with linked commands.  A RelAdr bit of zero
  1514. indicates the device does not support relative addressing for this logical
  1515. unit.
  1516.  
  1517. A wide bus 32 (WBus32) bit of one indicates that the device supports 32-bit
  1518. wide data transfers.  A value of zero indicates that the device does not
  1519. support 32-bit wide data transfers.
  1520.  
  1521. A wide bus 16 (WBus16) bit of one indicates that the device supports 16-bit
  1522. wide data transfers.  A value of zero indicates that the device does not
  1523.  
  1524. SCSI-2 draft proposed American National Standard        7-25      Revision 10c25
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532. All Device Types                                                        3/9/90
  1533.  
  1534. support 16-bit wide data transfers.
  1535.  
  1536. NOTE: If the values of both the WBus16 and WBus32 bits are zero the device
  1537. only supports 8-bit wide data transfers.
  1538.  
  1539. A synchronous transfer (Sync) bit of one indicates that the device supports
  1540. synchronous data transfer.  A value of zero indicates the device does not
  1541. support synchronous data transfer.
  1542.  
  1543. A linked command (Linked) bit of one indicates that the device supports linked
  1544. commands for this logical unit.  A value of zero indicates the device does not
  1545. support linked commands for this logical unit.
  1546.  
  1547. A command queuing (CmdQue) bit of one indicates that the device supports
  1548. tagged command queuing for this logical unit.  A value of zero indicates the
  1549. device does not support tagged command queuing for this logical unit.
  1550.  
  1551. A soft reset (SftRe) bit of zero indicates that the device responds to the
  1552. RESET condition with the hard RESET alternative (see 5.2.2.1).  A SftRe bit of
  1553. one indicates that the device responds to the RESET condition with the soft
  1554. RESET alternative (see 5.2.2.2).
  1555.  
  1556. ASCII data fields shall contain only graphic codes (i.e., code values 20h
  1557. through 7Eh).  Left-aligned fields shall place any unused bytes at the end of
  1558. the field (highest offset) and the unused bytes shall be filled with space
  1559. characters (20h).  Right-aligned fields shall place any unused bytes at the
  1560. start of the field (lowest offset) and the unused bytes shall be filled with
  1561. space characters (20h).
  1562.  
  1563. The vendor identification field contains eight bytes of ASCII data identifying
  1564. the vendor of the product.  The data shall be left aligned within this field.
  1565.  
  1566.  
  1567. NOTE:  It is intended that this field provide a unique vendor identification
  1568. of the manufacturer of the SCSI device.  In the absence of a formal
  1569. registration procedure, X3T9.2 maintains a list of vendor identification codes
  1570. in use.  Vendors are requested to voluntarily submit their identification
  1571. codes to X3T9.2 to prevent duplication of codes (see Appendix J).
  1572.  
  1573. The product identification field contains sixteen bytes of ASCII data as
  1574. defined by the vendor.  The data shall be left-aligned within this field.
  1575.  
  1576. The product revision level field contains four bytes of ASCII data as defined
  1577. by the vendor.  The data shall be left-aligned within this field.
  1578.  
  1579. 7.2.5.2. Vital Product Data
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585. SCSI-2 draft proposed American National Standard        7-26      Revision 10c26
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593. All Device Types                                                        3/9/90
  1594.  
  1595. Implementation of vital product data is optional.  The information returned
  1596. consists of configuration data (e.g., vendor identification, product
  1597. identification, model, serial number), manufacturing data (e.g., plant and
  1598. date of manufacture), field replaceable unit data and other vendor- or device-
  1599. specific data.
  1600.  
  1601. The initiator requests the vital product data information by setting the EVPD
  1602. bit to one and specifying the page code of the desired vital product data (see
  1603. Table 7-72).  If the target does not implement the requested page it shall
  1604. return CHECK CONDITION status.  The a sense key shall be set to ILLEGAL
  1605. REQUEST and the additional sense code shall be set to INVALID FIELD IN CDB.
  1606.  
  1607. IMPLEMENTORS NOTES:
  1608. (1) It is recommended that the target have the ability to execute the INQUIRY
  1609. command even when a device error occurs which prohibits normal command
  1610. execution.  In such a case, CHECK CONDITION status would be returned for
  1611. commands other than INQUIRY or REQUEST SENSE.  The sense data returned may
  1612. contain the field replaceable unit code.  The vital product data would be
  1613. obtained for the failing device using the INQUIRY command.
  1614. (2) This standard defines a format which allows device-independent initiator
  1615. software to display the vital product data returned by the INQUIRY command.
  1616. For example, the initiator may display the data associated for the field
  1617. replaceable unit returned in the sense data.  The contents of the data may be
  1618. vendor-specific; therefore it may not be usable without detailed information
  1619. about the device.
  1620. (3) This standard does not define the location or method of storing the vital
  1621. product data.  The retrieval of the data may require completion of
  1622. initialization operations within the device which may induce delays before the
  1623. data is available to the initiator.  Time-critical requirements are an
  1624. implementation consideration and are not addressed in this standard.
  1625.  
  1626. 7.2.6. LOG SELECT Command
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646. SCSI-2 draft proposed American National Standard        7-27      Revision 10c27
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. All Device Types                                                        3/9/90
  1655.  
  1656.  
  1657.  
  1658.                         Table 7-19: LOG SELECT Command
  1659.  
  1660. ==============================================================================
  1661.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1662. Byte |        |        |        |        |        |        |        |        |
  1663. ==============================================================================
  1664.  0   |                           Operation Code (4Ch)                        |
  1665. -----|-----------------------------------------------------------------------|
  1666.  1   | Logical Unit Number      |              Reserved    |  PCR   |   SP   |
  1667. -----|-----------------------------------------------------------------------|
  1668.  2   |        PC       |         Reserved                                    |
  1669. -----|-----------------------------------------------------------------------|
  1670.  3   |                           Reserved                                    |
  1671. -----|-----------------------------------------------------------------------|
  1672.  4   |                           Reserved                                    |
  1673. -----|-----------------------------------------------------------------------|
  1674.  5   |                           Reserved                                    |
  1675. -----|-----------------------------------------------------------------------|
  1676.  6   |                           Reserved                                    |
  1677. -----|-----------------------------------------------------------------------|
  1678.  7   | (MSB)                                                                 |
  1679. -----|---                        Parameter List Length                    ---|
  1680.  8   |                                                                 (LSB) |
  1681. -----|-----------------------------------------------------------------------|
  1682.  9   |                           Control                                     |
  1683. ==============================================================================
  1684.  
  1685.  
  1686. The LOG SELECT command (Table 7-19) provides a means for the initiator to
  1687. manage statistical information maintained by the device about the device or
  1688. its logical units.  Targets that implement the LOG SELECT command shall also
  1689. implement the LOG SENSE command.  Structures in the form of log parameters
  1690. within log pages are defined as a way to manage the log data. The LOG SELECT
  1691. command provides for sending zero or more log pages during a DATA OUT phase.
  1692. This standard defines the format of the log pages, but does not define the
  1693. exact conditions and events which are logged.
  1694.  
  1695. A parameter code reset (PCR) bit of one and a parameter list length of zero
  1696. shall cause all implemented parameters to be set to the target-defined default
  1697. values (e.g., zero).  If the PCR bit is one and a the parameter list length is
  1698. greater than zero the command is terminated with CHECK CONDITION status.  The
  1699. sense key shall be set to ILLEGAL REQUEST and the additional sense code shall
  1700. be set to INVALID FIELD IN CDB.  A PCR bit of zero specifies that the log
  1701. parameters shall not be reset.
  1702.  
  1703. A save parameters (SP) bit of one indicates that after performing the
  1704.  
  1705.  
  1706.  
  1707. SCSI-2 draft proposed American National Standard        7-28      Revision 10c28
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715. All Device Types                                                        3/9/90
  1716.  
  1717. specified LOG SELECT operation the target shall save to non-volatile memory
  1718. all parameters identified as savable by the DS bit in the log page (see
  1719. 7.3.2).  A SP bit of zero specifies that parameters shall not be saved.
  1720.  
  1721. Saving of log parameters is optional and indicated for each log parameter by
  1722. the DS bit in the page.  Log parameters may be saved at vendor-specific times
  1723. subject to the TSD bit (see 7.3.2) in the log parameter.  If the target does
  1724. not implement saved parameters for any log parameter and the SP bit is set to
  1725. one, the command shall be terminated with CHECK CONDITION status.  The sense
  1726. key shall be set to ILLEGAL REQUEST, and the additional sense code set to
  1727. INVALID FIELD IN CDB.
  1728.  
  1729. It is not an error to set the SP bit to one and to set the DS bit of a log
  1730. parameter to one.  In this case, the parameter value for that log parameter is
  1731. not saved.
  1732.  
  1733. The page control (PC) field defines the type of parameter values to be
  1734. selected.  The page control field is defined in Table 7-20.
  1735.  
  1736.                         Table 7-20: Page Control Field
  1737.  
  1738.          ============================================================
  1739.                              Type of Parameter Values
  1740.          Value         LOG SENSE                   LOG SELECT
  1741.          -----  -------------------------  --------------------------
  1742.          00b    Current Threshold Values    Threshold Values
  1743.          01b    Current Cumulative Values   Cumulative Values
  1744.          10b    Default Threshold Values    Default Threshold Values
  1745.          11b    Default Cumulative Values   Default Cumulative Values
  1746.          ============================================================
  1747.  
  1748. The current cumulative values may be updated by the target or by the initiator
  1749. using the LOG SELECT command to reflect the cumulative number of events
  1750. experienced by the target.  Fields in the parameter control byte (7.3.2) of
  1751. each log parameter control the updating and saving of the current cumulative
  1752. parameters.
  1753.  
  1754. The target shall set the current threshold parameters to the default threshold
  1755. values in response to a LOG SELECT command with the PC field set to 10b and
  1756. the parameter list length field set to zero.
  1757.  
  1758. The target shall set all cumulative parameters to their default values in
  1759. response to a LOG SELECT command with the PC field set to 11b and the
  1760. parameter list length field set to zero.
  1761.  
  1762. The current threshold value can only be modified by the initiator via the LOG
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768. SCSI-2 draft proposed American National Standard        7-29      Revision 10c29
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776. All Device Types                                                        3/9/90
  1777.  
  1778. SELECT command.  If the initiator attempts to change current threshold values
  1779. that are not available or not implemented for that log parameter, then the
  1780. target shall terminate the LOG SELECT command with CHECK CONDITION status, the
  1781. sense key set to ILLEGAL REQUEST, and the additional sense code set to INVALID
  1782. FIELD IN PARAMETER LIST.  The saving of current threshold parameters and the
  1783. criteria for the current threshold being met are controlled by bits in the
  1784. parameter control byte (7.3.2).
  1785.  
  1786. IMPLEMENTORS NOTE: Pages or log parameters that are not available may become
  1787. available at some later time (e.g., after the device has become ready).
  1788.  
  1789. The parameter list length field specifies the length in bytes of the parameter
  1790. list that shall be transferred from the initiator to the target during the
  1791. DATA OUT phase.  A parameter list length of zero indicates that no pages shall
  1792. be transferred.  This condition shall not be considered an error.  If the
  1793. initiator sends page codes or parameter codes within the parameter list that
  1794. are reserved or not implemented by the target, the target shall terminate the
  1795. LOG SELECT command with CHECK CONDITION status.  The sense key shall be set to
  1796. ILLEGAL REQUEST and the additional sense code set to INVALID FIELD IN
  1797. PARAMETER LIST.
  1798.  
  1799. If a parameter list length results in the truncation of any log parameter, the
  1800. target shall terminate the command with CHECK CONDITION status.  The sense key
  1801. shall be set to ILLEGAL REQUEST and the additional sense code set to INVALID
  1802. FIELD IN CDB.
  1803.  
  1804. The initiator should send pages in ascending order by page code value if
  1805. multiple pages are sent during a DATA OUT phase.  If multiple log parameters
  1806. within a page are sent during the DATA OUT phase then they should be sent in
  1807. ascending order by parameter code value.  The target shall return CHECK
  1808. CONDITION status if the initiator sends pages out of order or parameter codes
  1809. out of order.  The sense key shall be set to ILLEGAL REQUEST and the
  1810. additional sense code set to INVALID FIELD IN PARAMETER LIST.
  1811.  
  1812. IMPLEMENTORS NOTE:  Initiators should issue LOG SENSE commands prior to
  1813. issuing LOG SELECT commands to determine supported pages and page lengths.
  1814.  
  1815. The target may provide independent sets of log parameters for each logical
  1816. unit or for each combination of logical units and initiators.  If the target
  1817. does not support independent sets of log parameters and any log parameters are
  1818. changed that affect other initiators, then the target shall generate an unit
  1819. attention condition for all initiators except the one that issued the LOG
  1820. SELECT command (see 6.9).  This unit attention condition is returned with an
  1821. additional sense code of LOG PARAMETERS CHANGED.
  1822.  
  1823. If the initiator sends a log parameter that is not supported by the target,
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829. SCSI-2 draft proposed American National Standard        7-30      Revision 10c30
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837. All Device Types                                                        3/9/90
  1838.  
  1839. the target shall terminate the command with CHECK CONDITION status, set the
  1840. sense key to ILLEGAL REQUEST, and set the additional sense code to INVALID
  1841. FIELD IN PARAMETER LIST.
  1842.  
  1843. 7.2.7. LOG SENSE Command
  1844.  
  1845.  
  1846.                         Table 7-21: LOG SENSE Command
  1847.  
  1848. ==============================================================================
  1849.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1850. Byte |        |        |        |        |        |        |        |        |
  1851. ==============================================================================
  1852.  0   |                           Operation Code (4Dh)                        |
  1853. -----|-----------------------------------------------------------------------|
  1854.  1   | Logical Unit Number      |         Reserved         |  PPC   |    SP  |
  1855. -----|-----------------------------------------------------------------------|
  1856.  2   |        PC        |        Page Code                                   |
  1857. -----|-----------------------------------------------------------------------|
  1858.  3   |                           Reserved                                    |
  1859. -----|-----------------------------------------------------------------------|
  1860.  4   |                           Reserved                                    |
  1861. -----|-----------------------------------------------------------------------|
  1862.  5   | (MSB)                                                                 |
  1863. -----|---                        Parameter Pointer                        ---|
  1864.  6   |                                                                 (LSB) |
  1865. -----|-----------------------------------------------------------------------|
  1866.  7   | (MSB)                                                                 |
  1867. -----|---                        Allocation Length                        ---|
  1868.  8   |                                                                 (LSB) |
  1869. -----|-----------------------------------------------------------------------|
  1870.  9   |                           Control                                     |
  1871. ==============================================================================
  1872.  
  1873.  
  1874. The LOG SENSE command (Table 7-21) provides a means for the initiator to
  1875. retrieve statistical information maintained by the device about the device or
  1876. its logical units.  It is a complementary command to the LOG SELECT command.
  1877.  
  1878. The parameter pointer control (PPC) bit controls the type of parameters
  1879. requested from the target:
  1880. (1) A PPC bit of one indicates that the target shall return a log page with
  1881. parameter code values which have changed since the last LOG SELECT or LOG
  1882. SENSE command.  The target shall return only those parameter codes following
  1883. the parameter pointer field.
  1884. (2) A PPC bit of zero indicates that the log parameter requested from the
  1885. target shall begin with the parameter code specified in the parameter pointer
  1886. field and return the number of bytes specified by the allocation length field
  1887. in ascending order of parameter codes from the specified log page.  A PPC bit
  1888. of zero and a parameter pointer field of zero shall cause all available log
  1889.  
  1890. SCSI-2 draft proposed American National Standard        7-31      Revision 10c31
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898. All Device Types                                                        3/9/90
  1899.  
  1900. parameters for the specified log page to be returned to the initiator subject
  1901. to the specified allocation length.
  1902.  
  1903. Saving parameters is an optional function of the LOG SENSE command.  If the
  1904. target does not implement saving log parameters and if the save parameters
  1905. (SP) bit is one, then the target shall return CHECK CONDITION status, set the
  1906. sense key to ILLEGAL REQUEST, and set the additional sense code to INVALID
  1907. FIELD IN CDB.
  1908.  
  1909. A SP bit of zero indicates the target shall perform the specified LOG SENSE
  1910. command and shall not save any log parameters.  If saving log parameters is
  1911. implemented, a SP bit of one indicates that the target shall perform the
  1912. specified LOG SENSE command and shall save all log parameters identified as
  1913. savable by the DS bit (7.3.2) to a non-volatile vendor-specific location.
  1914.  
  1915. The page control (PC) field defines the type of parameter values to be
  1916. selected (see 7.2.6 for the definition of the page control field).  The
  1917. parameter values returned by a LOG SENSE command are determined as follows:
  1918. (1) The specified parameter values at the last update (in response to a LOG
  1919. SELECT or LOG SENSE command or done automatically by the target for cumulative
  1920. values).
  1921. (2) The saved values if an update has not occurred since the last power-on,
  1922. hard RESET condition, or BUS DEVICE RESET message and saved parameters are
  1923. implemented.
  1924. (3) The default values if an update has not occurred since the last power- on,
  1925. hard RESET condition, or BUS DEVICE RESET message and saved values are not
  1926. available or not implemented.
  1927.  
  1928. The page code field identifies which page of data is being requested (see
  1929. Table 7-53).  If the page code is reserved or not implemented, the target
  1930. shall terminate the command with CHECK CONDITION status.  The sense key shall
  1931. be set to ILLEGAL REQUEST with the additional sense code set to INVALID FIELD
  1932. IN CDB.
  1933.  
  1934. The parameter pointer field allows the initiator to request parameter data
  1935. beginning from a specific parameter code to the maximum allocation length or
  1936. the maximum parameter code supported by the target, whichever is less.  If the
  1937. value of the parameter pointer field is larger than the largest available
  1938. parameter code that can be returned by the target on the specified page, the
  1939. target shall terminate the command with CHECK CONDITION status.  The sense key
  1940. shall be set to ILLEGAL REQUEST and the additional sense code shall be set to
  1941. INVALID FIELD IN CDB.
  1942.  
  1943. Log parameters within the specified log page shall be transferred in ascending
  1944. order according to parameter code.
  1945.  
  1946. 7.2.8. MODE SELECT(6) Command
  1947.  
  1948.  
  1949.  
  1950.  
  1951. SCSI-2 draft proposed American National Standard        7-32      Revision 10c32
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959. All Device Types                                                        3/9/90
  1960.  
  1961.  
  1962.  
  1963.                       Table 7-22: MODE SELECT(6) Command
  1964.  
  1965. ==============================================================================
  1966.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1967. Byte |        |        |        |        |        |        |        |        |
  1968. ==============================================================================
  1969.  0   |                           Operation Code (15h)                        |
  1970. -----|-----------------------------------------------------------------------|
  1971.  1   | Logical Unit Number      |   PF   |         Reserved         |  SP    |
  1972. -----|-----------------------------------------------------------------------|
  1973.  2   |                           Reserved                                    |
  1974. -----|-----------------------------------------------------------------------|
  1975.  3   |                           Reserved                                    |
  1976. -----|-----------------------------------------------------------------------|
  1977.  4   |                           Parameter List Length                       |
  1978. -----|-----------------------------------------------------------------------|
  1979.  5   |                           Control                                     |
  1980. ==============================================================================
  1981.  
  1982.  
  1983. The MODE SELECT(6) command (Table 7-22) provides a means for the initiator to
  1984. specify medium, logical unit, or peripheral device parameters to the target.
  1985. Targets that implement the MODE SELECT command shall also implement the MODE
  1986. SENSE command.  Initiators should issue MODE SENSE prior to MODE SELECT to
  1987. determine supported pages, page lengths, and other parameters.
  1988.  
  1989. If a target supports saved pages, it may save only one copy of the page for
  1990. each logical unit and have it apply to all initiators or it may save separate
  1991. copies for each initiator for each logical unit.  If separate copies are
  1992. saved, the target shall maintain separate current values for each I_T_L nexus.
  1993. Pages which are common to all initiators are not required to have multiple
  1994. copies.
  1995.  
  1996. If an initiator sends a MODE SELECT command that changes any parameters that
  1997. apply to other initiators, the target shall generate a unit attention
  1998. condition for all initiators except the one that issued the MODE SELECT
  1999. command (see 6.9).  The target shall set the additional sense code to MODE
  2000. PARAMETERS CHANGED.
  2001.  
  2002. The target may provide for independent sets of parameters for each attached
  2003. logical unit or for each combination of logical unit and initiator.  If
  2004. independent sets of parameters are implemented, and a third party reservation
  2005. is requested the target transfers the set of parameters in effect for the
  2006. initiator of the RESERVE command to the parameters used for commands from the
  2007. third party device (see 8.2.12.3 and 9.2.10.1).
  2008.  
  2009. A page format (PF) bit of zero indicates that the MODE SELECT parameters are
  2010.  
  2011.  
  2012. SCSI-2 draft proposed American National Standard        7-33      Revision 10c33
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020. All Device Types                                                        3/9/90
  2021.  
  2022. as specified in SCSI-1, (i.e., all parameters after the block descriptors are
  2023. vendor-specific.  A PF bit of one indicates that the MODE SELECT parameters
  2024. following the header and block descriptor(s) are structured as pages of
  2025. related parameters and are as specified in this standard.
  2026.  
  2027. A save pages (SP) bit of zero indicates the target shall perform the specified
  2028. MODE SELECT operation, and shall not save any pages.  A SP bit of one
  2029. indicates that the target shall perform the specified MODE SELECT operation,
  2030. and shall save to a non-volatile vendor-specific location all the savable
  2031. pages including any sent during the DATA OUT phase.  The SP bit is optional,
  2032. even when mode pages are supported by the target.  Pages which are saved are
  2033. identified by the parameter savable bit that is returned in the page header by
  2034. the MODE SENSE command (see 7.2.10.4).  If the target does not implement saved
  2035. pages and the SP bit is set to one, the command shall be terminated with CHECK
  2036. CONDITION status. The sense key shall be set to ILLEGAL REQUEST, and the
  2037. additional sense code shall be set to INVALID FIELD IN CDB.
  2038.  
  2039. The parameter list length field specifies the length in bytes of the MODE
  2040. SELECT parameter list that shall be transferred from the initiator to the
  2041. target during the DATA OUT phase.  A parameter list length of zero indicates
  2042. that no data shall be transferred.  This condition shall not be considered as
  2043. an error.  A parameter list length that results in the truncation of any
  2044. descriptor, header or page of parameters shall cause the target to terminate
  2045. the command with CHECK CONDITION status.  The sense key shall be set to
  2046. ILLEGAL REQUEST, and the additional sense code shall be set to PARAMETER LIST
  2047. LENGTH ERROR.
  2048.  
  2049. The parameter list for the MODE SELECT and MODE SENSE commands is defined in
  2050. 7.3.3.  Parts of each parameter list are uniquely defined for each device-
  2051. type.
  2052.  
  2053. IMPLEMENTORS NOTE:  In some situations where there is a conflict between the
  2054. information in the command descriptor block and the information in the
  2055. parameter list, one of several additional sense codes may apply.  As a guide,
  2056. INVALID FIELD IN CDB or PARAMETER LIST LENGTH ERROR should be used if the
  2057. error is detected prior to any operations that alter the logical unit's mode
  2058. parameters.  INVALID FIELD IN PARAMETER LIST should be used if the logical
  2059. unit's mode parameters have been altered.
  2060.  
  2061. The target shall terminate the MODE SELECT command with CHECK CONDITION
  2062. status, set the sense key to ILLEGAL REQUEST and set the additional sense code
  2063. to INVALID FIELD IN PARAMETER LIST for the following conditions:
  2064. (1) If the initiator attempts to change any field that is not changeable as
  2065. reported by the target.  In this case, no parameters shall be changed by this
  2066. command.
  2067. (2) If the initiator attempts to send an unsupported value or a non-zero value
  2068. to a reserved field  in the MODE SELECT header, block descriptor, or any page
  2069. header.
  2070. (3) If an initiator attempts to send a page with a length not equal to the
  2071. parameter length reported for that page by the MODE SENSE command.
  2072.  
  2073. SCSI-2 draft proposed American National Standard        7-34      Revision 10c34
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081. All Device Types                                                        3/9/90
  2082.  
  2083. (4) If the initiator attempts to send a value for a parameter that is outside
  2084. the range supported by the target and rounding is not implemented for that
  2085. parameter.
  2086.  
  2087. If the initiator sends a value for a parameter that is outside the range
  2088. supported by the target and rounding is implemented for that parameter, the
  2089. target may either:
  2090. (1) round the parameter to an acceptable value and terminate the command as
  2091. described in 6.5.4.
  2092. (2) terminate the command with CHECK CONDITION status, the sense key set to
  2093. ILLEGAL REQUEST, and the additional sense code set to INVALID FIELD IN
  2094. PARAMETER LIST.
  2095.  
  2096. 7.2.9. MODE SELECT(10) Command
  2097.  
  2098.  
  2099.                      Table 7-23: MODE SELECT(10) Command
  2100.  
  2101. ==============================================================================
  2102.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2103. Byte |        |        |        |        |        |        |        |        |
  2104. ==============================================================================
  2105.  0   |                           Operation Code (55h)                        |
  2106. -----|-----------------------------------------------------------------------|
  2107.  1   | Logical Unit Number      |   PF   |         Reserved         |  SP    |
  2108. -----|-----------------------------------------------------------------------|
  2109.  2   |                           Reserved                                    |
  2110. -----|-----------------------------------------------------------------------|
  2111.  3   |                           Reserved                                    |
  2112. -----|-----------------------------------------------------------------------|
  2113.  4   |                           Reserved                                    |
  2114. -----|-----------------------------------------------------------------------|
  2115.  5   |                           Reserved                                    |
  2116. -----|-----------------------------------------------------------------------|
  2117.  6   |                           Reserved                                    |
  2118. -----|-----------------------------------------------------------------------|
  2119.  7   | (MSB)                                                                 |
  2120. -----|---                        Parameter List Length                    ---|
  2121.  8   |                                                                 (LSB) |
  2122. -----|-----------------------------------------------------------------------|
  2123.  9   |                           Control                                     |
  2124. ==============================================================================
  2125.  
  2126.  
  2127. The MODE SELECT(10) command (Table 7-23) provides a means for the initiator to
  2128. specify medium, logical unit, or peripheral device parameters to the target.
  2129. See the MODE SELECT(6) command (7.2.8) for a description of the fields in this
  2130. command.  Initiators should issue MODE SENSE prior to MODE SELECT to determine
  2131. supported pages, page lengths, and other parameters.
  2132.  
  2133.  
  2134. SCSI-2 draft proposed American National Standard        7-35      Revision 10c35
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142. All Device Types                                                        3/9/90
  2143.  
  2144. Targets that implement the MODE SELECT(10) command shall also implement the
  2145. MODE SENSE(10) command.
  2146.  
  2147. 7.2.10. MODE SENSE(6) Command
  2148.  
  2149.  
  2150.                       Table 7-24: MODE SENSE(6) Command
  2151.  
  2152. ==============================================================================
  2153.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2154. Byte |        |        |        |        |        |        |        |        |
  2155. ==============================================================================
  2156.  0   |                           Operation Code (1Ah)                        |
  2157. -----|-----------------------------------------------------------------------|
  2158.  1   | Logical Unit Number      |Reserved|   DBD  |         Reserved         |
  2159. -----|-----------------------------------------------------------------------|
  2160.  2   |       PC        |                   Page Code                         |
  2161. -----|-----------------------------------------------------------------------|
  2162.  3   |                           Reserved                                    |
  2163. -----|-----------------------------------------------------------------------|
  2164.  4   |                           Allocation Length                           |
  2165. -----|-----------------------------------------------------------------------|
  2166.  5   |                           Control                                     |
  2167. ==============================================================================
  2168.  
  2169.  
  2170. The MODE SENSE(6) command (Table 7-24) provides a means for a target to report
  2171. parameters to the initiator.  It is a complementary command to the MODE
  2172. SELECT(6) command.
  2173.  
  2174. A disable block descriptors (DBD) bit of zero indicates that the target may
  2175. return zero or more block descriptors in the returned MODE SENSE data (see
  2176. 7.3.3), at the target's discretion.  A DBD bit of one specifies that the
  2177. target shall not return any block descriptors in the returned MODE SENSE data.
  2178.  
  2179. The page control (PC) field defines the type of parameter values to be
  2180. returned. The page control field is defined in Table 7-25.
  2181.  
  2182.                         Table 7-25: Page Control Field
  2183.  
  2184.                ================================================
  2185.                Bit 7  Bit 6  Type of Parameter Values  Section
  2186.                -----  -----  ------------------------  --------
  2187.                  0      0    Current Values            7.2.10.1
  2188.                  0      1    Changeable Values         7.2.10.2
  2189.                  1      0    Default Values            7.2.10.3
  2190.                  1      1    Saved Values              7.2.10.4
  2191.                ================================================
  2192.  
  2193.  
  2194.  
  2195. SCSI-2 draft proposed American National Standard        7-36      Revision 10c36
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203. All Device Types                                                        3/9/90
  2204.  
  2205. The page code specifies which page or pages to return.  Page code usage is
  2206. defined in Table 7-26.
  2207.  
  2208.                  Table 7-26: Page Code Usage for All Devices
  2209.  
  2210.           ==========================================================
  2211.           Page Code   Description
  2212.           ---------   ----------------------------------------------
  2213.              00h      Vendor Specific (does not require page format)
  2214.           01h - 1Fh   See specific device-types
  2215.           20h - 3Eh   Vendor Specific (page format required)
  2216.              3Fh      Return all pages
  2217.           ==========================================================
  2218.  
  2219.  
  2220. An initiator may request any one or all of the supported pages of a target. If
  2221. an initiator attempts a MODE SENSE command with a page code value not
  2222. implemented by the target, the target shall return CHECK CONDITION status and
  2223. shall set the sense key to ILLEGAL REQUEST and the additional sense code to
  2224. INVALID FIELD IN CDB.
  2225.  
  2226. A page code of 3Fh indicates that all pages implemented by the target shall be
  2227. returned to the initiator.  Page 00h, if implemented, shall be returned after
  2228. all other pages.  Targets that implement more than 256 bytes of mode page
  2229. parameter data and block descriptors shall return CHECK CONDITION status to a
  2230. MODE SENSE(6) request of 3Fh in the page code field.  The sense key shall be
  2231. set to ILLEGAL REQUEST and the additional sense code shall be set to INVALID
  2232. FIELD IN CDB.
  2233.  
  2234. IMPLEMENTORS NOTES:
  2235. (1) Targets that support more than 256 bytes of block descriptors and
  2236. parameter pages should consider implementing the MODE SELECT(10) and MODE
  2237. SENSE(10) commands.  Targets might not support an entire mode page as defined
  2238. in this standard.  Typically, the mode pages are returned in ascending order
  2239. (except for page 00h).
  2240. (2) A target that receives a MODE SENSE command with a PC field and a page
  2241. code field of zero should return a mode parameter header and block descriptor
  2242. (if applicable).  This allows for compatibility with existing SCSI-1
  2243. initiators.
  2244.  
  2245. The parameter list for MODE SELECT and MODE SENSE is defined in 7.3.3.  Parts
  2246. of the parameter lists are specifically defined for each device type.
  2247.  
  2248. 7.2.10.1. Current Values
  2249. A PC field value of 0h requests the target to return the current parameter
  2250. values for the specified page code for the logical unit.  The current values
  2251. returned are:
  2252. (1) The parameters set in the last successful MODE SELECT command.
  2253. (2) The saved values if a MODE SELECT command has not been executed since the
  2254. last power-on, hard RESET condition, or BUS DEVICE RESET message.
  2255.  
  2256. SCSI-2 draft proposed American National Standard        7-37      Revision 10c37
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264. All Device Types                                                        3/9/90
  2265.  
  2266. (3) The default values if saved values are not available or not supported.
  2267.  
  2268. 7.2.10.2. Changeable Values
  2269. A PC field value of 1h requests the target to return the changeable parameter
  2270. mask for the page code specified.  The page requested shall be returned
  2271. containing information that indicates which parameters are changeable.  All
  2272. bits of parameters that are changeable shall be set to one.  All bits of
  2273. parameters that are target defined (not changeable by the initiator) shall be
  2274. set to zero.
  2275.  
  2276. NOTE: An attempt to change a target-defined parameter (via MODE SELECT)
  2277. results in an error condition (see 7.2.8).
  2278.  
  2279. IMPLEMENTORS NOTE:  The initiator should issue a MODE SENSE command with the
  2280. PC field set to 1h and the page code field set to 3Fh to determine which pages
  2281. are supported, which parameters within the pages are changeable, and the
  2282. supported length of each page prior to issuing any MODE SELECT commands.
  2283.  
  2284. 7.2.10.3. Default Values
  2285. A PC field value of 2h requests the target return the default values for the
  2286. page code specified.  The page requested shall be returned with each supported
  2287. parameter set to its default value.  Parameters not supported by the target
  2288. shall be set to zero.
  2289.  
  2290. 7.2.10.4. Saved Values
  2291. A PC field value of 3h requests the target return the saved values for the
  2292. page code specified.  Implementation of saved page parameters is optional.
  2293. The page requested shall be returned with the parameters set to their saved
  2294. values.  Parameters not supported by the target shall be set to zero.  If
  2295. saved values are not implemented, the command shall be terminated with CHECK
  2296. CONDITION status with the sense key set to ILLEGAL REQUEST and the additional
  2297. sense code set to SAVING PARAMETERS NOT SUPPORTED.
  2298.  
  2299. IMPLEMENTORS NOTE:  The method of saving parameters is vendor-specific.  The
  2300. parameters are preserved in such a manner that they are retained when the
  2301. target is powered down.  All savable pages can be considered saved when a MODE
  2302. SELECT command issued with the SP bit set to one has returned a GOOD status or
  2303. after the successful completion of a FORMAT UNIT command.
  2304.  
  2305. 7.2.10.5. Initial Responses
  2306. After a power-up condition or hard reset condition, the target shall respond
  2307. in the following manner:
  2308. (1) If default values are requested, report the default values.
  2309. (2) If saved values are requested, report valid restored parameters, or
  2310. restore the parameters and report them.  If the saved parameters are not able
  2311. to be accessed from the non-volatile vendor-specific location, terminate the
  2312. command with CHECK CONDITION status and the sense key set to NOT READY.  If
  2313. saved parameters are not implemented respond as defined in 7.2.10.4.
  2314. (3) If current values are requested and current values have not been sent by
  2315. the initiator (via a MODE SELECT command), the target may return either the
  2316.  
  2317. SCSI-2 draft proposed American National Standard        7-38      Revision 10c38
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325. All Device Types                                                        3/9/90
  2326.  
  2327. default or saved parameters (if implemented), as defined above.  If current
  2328. values have been sent, the current values shall be reported.
  2329.  
  2330. 7.2.11. MODE SENSE(10) Command
  2331.  
  2332.  
  2333.                       Table 7-27: MODE SENSE(10) Command
  2334.  
  2335. ==============================================================================
  2336.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2337. Byte |        |        |        |        |        |        |        |        |
  2338. ==============================================================================
  2339.  0   |                           Operation Code (5Ah)                        |
  2340. -----|-----------------------------------------------------------------------|
  2341.  1   | Logical Unit Number      |Reserved|  DBD   |         Reserved         |
  2342. -----|-----------------------------------------------------------------------|
  2343.  2   |       PC        |                   Page Code                         |
  2344. -----|-----------------------------------------------------------------------|
  2345.  3   |                           Reserved                                    |
  2346. -----|-----------------------------------------------------------------------|
  2347.  4   |                           Reserved                                    |
  2348. -----|-----------------------------------------------------------------------|
  2349.  5   |                           Reserved                                    |
  2350. -----|-----------------------------------------------------------------------|
  2351.  6   |                           Reserved                                    |
  2352. -----|-----------------------------------------------------------------------|
  2353.  7   | (MSB)                                                                 |
  2354. -----|---                        Allocation Length                        ---|
  2355.  8   |                                                                 (LSB) |
  2356. -----|-----------------------------------------------------------------------|
  2357.  9   |                           Control                                     |
  2358. ==============================================================================
  2359.  
  2360.  
  2361. The MODE SENSE(10) command (Table 7-27) provides a means for a target to
  2362. report parameters to the initiator.  It is a complementary command to the MODE
  2363. SELECT(10) command.  If the MODE SELECT(10) command is implemented the MODE
  2364. SENSE(10) command shall be implemented.  See the MODE SENSE(6) command for a
  2365. description of the fields in this command.
  2366.  
  2367. 7.2.12. READ BUFFER
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378. SCSI-2 draft proposed American National Standard        7-39      Revision 10c39
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386. All Device Types                                                        3/9/90
  2387.  
  2388.  
  2389.  
  2390.                        Table 7-28: READ BUFFER Command
  2391.  
  2392. ==============================================================================
  2393.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2394. Byte |        |        |        |        |        |        |        |        |
  2395. ==============================================================================
  2396.  0   |                           Operation Code (3Ch)                        |
  2397. -----|-----------------------------------------------------------------------|
  2398.  1   | Logical Unit Number      |     Reserved    |           Mode           |
  2399. -----|-----------------------------------------------------------------------|
  2400.  2   |                           Buffer ID                                   |
  2401. -----|-----------------------------------------------------------------------|
  2402.  3   | (MSB)                                                                 |
  2403. - - -|- -                        Buffer Offset                            - -|
  2404.  5   |                                                                 (LSB) |
  2405. -----|-----------------------------------------------------------------------|
  2406.  6   | (MSB)                                                                 |
  2407. - - -|- -                        Allocation Length                        - -|
  2408.  8   |                                                                 (LSB) |
  2409. -----|-----------------------------------------------------------------------|
  2410.  9   |                           Control                                     |
  2411. ==============================================================================
  2412.  
  2413.  
  2414. The READ BUFFER command (Table 7-28) is used in conjunction with the WRITE
  2415. BUFFER command as a diagnostic function for testing target memory and the SCSI
  2416. bus integrity.  This command shall not alter the medium.
  2417.  
  2418. The function of this command and the meaning of fields within the command
  2419. descriptor block depend on the contents of the mode field.  The mode field is
  2420. defined in Table 7-29.
  2421.  
  2422.                       Table 7-29: READ BUFFER Mode Field
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439. SCSI-2 draft proposed American National Standard        7-40      Revision 10c40
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447. All Device Types                                                        3/9/90
  2448.  
  2449.  
  2450.                ===============================================
  2451.                Mode  Description               Type
  2452.                ----  ------------------------  ---------------
  2453.                000b  Combined header and data  Optional
  2454.                001b  Vendor-specific           Vendor specific
  2455.                010b  Data                      Optional
  2456.                011b  Descriptor                Optional
  2457.                100b  Reserved                  Reserved
  2458.                101b  Reserved                  Reserved
  2459.                110b  Reserved                  Reserved
  2460.                111b  Reserved                  Reserved
  2461.                ===============================================
  2462.  
  2463. IMPLEMENTORS NOTE: Modes 000b and 001b are included for compatibility with
  2464. products that were designed prior to the generation of this standard.  Some
  2465. products that were designed prior to the generation of this standard restrict
  2466. the available length to to 65535 bytes.
  2467.  
  2468. 7.2.12.1. Combined Header and Data Mode (000b)
  2469. In this mode, a four-byte header followed by data bytes are returned to the
  2470. initiator during the DATA IN phase.  The buffer ID and the buffer offset
  2471. fields are reserved.
  2472.  
  2473. The four-byte READ BUFFER header (Table 7-30) is followed by data bytes from
  2474. the target's data buffer.
  2475.  
  2476.                         Table 7-30: READ BUFFER Header
  2477.  
  2478. ==============================================================================
  2479.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2480. Byte |        |        |        |        |        |        |        |        |
  2481. ==============================================================================
  2482.  0   |                           Reserved                                    |
  2483. -----|-----------------------------------------------------------------------|
  2484.  1   | (MSB)                                                                 |
  2485. - - -|- -                        Buffer Capacity                          - -|
  2486.  3   |                                                                 (LSB) |
  2487. ==============================================================================
  2488.  
  2489.  
  2490. The buffer capacity field specifies the total number of data bytes that are
  2491. available in the target's data buffer.  This number is not reduced to reflect
  2492. the allocation length nor is it reduced to reflect the actual number of bytes
  2493. written using the WRITE BUFFER command.  Following the READ BUFFER header, the
  2494. target shall transfer data from its data buffer.  The target terminates the
  2495. DATA IN phase when allocation length bytes of header plus data have been
  2496. transferred or when all available header and buffer data have been transferred
  2497. to the initiator, whichever is less.
  2498.  
  2499.  
  2500. SCSI-2 draft proposed American National Standard        7-41      Revision 10c41
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508. All Device Types                                                        3/9/90
  2509.  
  2510. 7.2.12.2. Vendor-Specific Mode (001b)
  2511. In this mode, the meaning of the buffer ID, buffer offset, and allocation
  2512. length fields are not specified by this standard.
  2513.  
  2514. 7.2.12.3. Data Mode (010b)
  2515. In this mode, the DATA IN phase contains buffer data.  The buffer ID field
  2516. identifies a specific buffer within the target from which data shall be
  2517. transferred.  The vendor assigns buffer ID codes to buffers within the target.
  2518. Buffer ID zero shall be supported.  If more than one buffer is supported,
  2519. additional buffer ID codes shall be assigned contiguously, beginning with one.
  2520. Buffer ID code assignments for the READ BUFFER command shall be the same as
  2521. for the WRITE BUFFER command.  If an unsupported buffer ID code is selected,
  2522. the target shall return CHECK CONDITION status, shall set the sense key to
  2523. ILLEGAL REQUEST and set the additional sense code to ILLEGAL FIELD IN CDB.
  2524. The target terminates the DATA IN phase when allocation length bytes have been
  2525. transferred or when all the available data from the buffer has been
  2526. transferred to the initiator, whichever is less.
  2527.  
  2528. The buffer offset field contains the byte offset within the specified buffer
  2529. where data shall be transferred from.  The initiator should conform to the
  2530. offset boundary requirements returned in the READ BUFFER descriptor (see
  2531. 7.2.12.4).  If the target is unable to accept the specified buffer offset, it
  2532. shall return CHECK CONDITION status, shall set the sense key to ILLEGAL
  2533. REQUEST and set the additional sense code to ILLEGAL FIELD IN CDB.
  2534.  
  2535. 7.2.12.4. Descriptor Mode (011b)
  2536. In this mode, a maximum of four bytes of READ BUFFER descriptor information
  2537. are returned.  The target shall return the descriptor information for the
  2538. buffer specified by the buffer ID (see the description of the buffer ID in
  2539. 7.2.12.3).  If there is no buffer associated with the specified buffer ID, the
  2540. target shall return all zeros in the READ BUFFER descriptor.  The buffer
  2541. offset field is reserved in this mode.  The allocation length should be set to
  2542. four or greater.  The target shall transfer the lesser of the allocation
  2543. length or four bytes of READ BUFFER descriptor.  The READ BUFFER descriptor is
  2544. defined as shown in Table 7-31.
  2545.  
  2546.                       Table 7-31: READ BUFFER Descriptor
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561. SCSI-2 draft proposed American National Standard        7-42      Revision 10c42
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569. All Device Types                                                        3/9/90
  2570.  
  2571.  
  2572. ==============================================================================
  2573.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2574. Byte |        |        |        |        |        |        |        |        |
  2575. ==============================================================================
  2576.  0   |                           Offset Boundary                             |
  2577. -----|-----------------------------------------------------------------------|
  2578.  1   | (MSB)                                                                 |
  2579. - - -|- -                        Buffer Capacity                          - -|
  2580.  3   |                                                                 (LSB) |
  2581. ==============================================================================
  2582.  
  2583.  
  2584. The offset boundary field returns the boundary alignment within the selected
  2585. buffer for subsequent WRITE BUFFER and READ BUFFER commands.  The value
  2586. contained in the offset boundary field shall be interpreted as a power of two.
  2587.  
  2588. The value contained in the buffer offset field of subsequent WRITE BUFFER and
  2589. READ BUFFER commands should be a multiple of 2offset boundary as shown in
  2590. Table 7-32.
  2591.  
  2592.                       Table 7-32: Buffer Offset Boundary
  2593.  
  2594. ==============================================================================
  2595.       Offset
  2596.       Boundary  2Offset Boundary  Buffer Offsets
  2597.       --------  ----------------  --------------------------------------
  2598.          0           20 = 1       Byte boundaries
  2599.          1           21 = 2       Even-byte boundaries
  2600.          2           22 = 4       Four-byte boundaries
  2601.          3           23 = 8       Eight-byte boundaries
  2602.          4           24 = 16      16-byte boundaries
  2603.          .              .                .
  2604.          .              .                .
  2605.          .              .                .
  2606.         FFh     Not Applicable    0 is the only supported buffer offset.
  2607. ==============================================================================
  2608.  
  2609.  
  2610. The buffer capacity field shall return the size of the selected buffer in
  2611. bytes.
  2612.  
  2613. IMPLEMENTORS NOTE:  In a multi-tasking system, a buffer may be altered between
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622. SCSI-2 draft proposed American National Standard        7-43      Revision 10c43
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630. All Device Types                                                        3/9/90
  2631.  
  2632. the WRITE BUFFER and READ BUFFER commands by another task.  Buffer testing
  2633. applications may wish to insure that only a single task is active. Use of
  2634. reservations (to all logical units on the device) or linked commands may also
  2635. be helpful in avoiding buffer alteration between these two commands.
  2636.  
  2637. 7.2.13. RECEIVE DIAGNOSTIC RESULTS Command
  2638.  
  2639.  
  2640.                 Table 7-33: RECEIVE DIAGNOSTIC RESULTS Command
  2641.  
  2642. ==============================================================================
  2643.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2644. Byte |        |        |        |        |        |        |        |        |
  2645. ==============================================================================
  2646.  0   |                           Operation Code (1Ch)                        |
  2647. -----|-----------------------------------------------------------------------|
  2648.  1   | Logical Unit Number      |             Reserved                       |
  2649. -----|-----------------------------------------------------------------------|
  2650.  2   |                           Reserved                                    |
  2651. -----|-----------------------------------------------------------------------|
  2652.  3   | (MSB)                                                                 |
  2653. -----|---                        Allocation Length                        ---|
  2654.  4   |                                                                 (LSB) |
  2655. -----|-----------------------------------------------------------------------|
  2656.  5   |                           Control                                     |
  2657. ==============================================================================
  2658.  
  2659.  
  2660. The RECEIVE DIAGNOSTIC RESULTS command (Table 7-33) requests analysis data be
  2661. sent to the initiator after completion of a SEND DIAGNOSTIC command (see
  2662. 7.2.15).  If the target supports the optional page format the page code field
  2663. sent in the previous SEND DIAGNOSTIC command specifies the format of the
  2664. returned data.
  2665.  
  2666. IMPLEMENTORS NOTES:
  2667. (1) To insure that the diagnostic command information is not destroyed by a
  2668. command sent from another initiator, the SEND DIAGNOSTIC command should either
  2669. be linked to the RECEIVE DIAGNOSTIC RESULTS command or the logical unit should
  2670. be reserved.
  2671. (2) Although diagnostic software is generally device-specific, this command
  2672. and the SEND DIAGNOSTIC command provide a means to isolate the operating
  2673. system software from the device-specific diagnostic software. Hence the
  2674. operating system can remain device-independent.  This also allows diagnostic
  2675. software to be more easily transferred to other operating systems.
  2676.  
  2677. See 7.3.1 for RECEIVE DIAGNOSTIC RESULTS page format definitions.
  2678.  
  2679. 7.2.14. REQUEST SENSE Command
  2680.  
  2681.  
  2682.  
  2683. SCSI-2 draft proposed American National Standard        7-44      Revision 10c44
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691. All Device Types                                                        3/9/90
  2692.  
  2693.  
  2694.  
  2695.                       Table 7-34: REQUEST SENSE Command
  2696.  
  2697. ==============================================================================
  2698.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2699. Byte |        |        |        |        |        |        |        |        |
  2700. ==============================================================================
  2701.  0   |                           Operation Code (03h)                        |
  2702. -----|-----------------------------------------------------------------------|
  2703.  1   | Logical Unit Number      |                  Reserved                  |
  2704. -----|-----------------------------------------------------------------------|
  2705.  2   |                           Reserved                                    |
  2706. -----|-----------------------------------------------------------------------|
  2707.  3   |                           Reserved                                    |
  2708. -----|-----------------------------------------------------------------------|
  2709.  4   |                           Allocation Length                           |
  2710. -----|-----------------------------------------------------------------------|
  2711.  5   |                           Control                                     |
  2712. ==============================================================================
  2713.  
  2714.  
  2715. The REQUEST SENSE command (Table 7-34) requests that the target transfer sense
  2716. data to the initiator.
  2717.  
  2718. The sense data:
  2719. (1) shall be available if the previous command to the specified I_T_x nexus
  2720. terminated with CHECK CONDITION or COMMAND TERMINATED status
  2721. (2) shall be available if other information (e.g., medium position) is
  2722. available in any field
  2723. (3) may be available if the previous command to the specified I_T_x nexus
  2724. ended with an unexpected BUS FREE error (5.1.1).
  2725.  
  2726. If the target has no sense data available to return, it shall return a sense
  2727. key of NO SENSE and an additional sense code of NO ADDITIONAL SENSE
  2728. INFORMATION.
  2729.  
  2730. The sense data shall be preserved by the target for the initiator until
  2731. retrieved by the REQUEST SENSE command or until the receipt of any other
  2732. command for the same I_T_x nexus (see 6.6).  Sense data shall be cleared upon
  2733. receipt of any subsequent command (including REQUEST SENSE) to the same I_T_x
  2734. nexus.
  2735.  
  2736. IMPLEMENTORS NOTE: Some target implementations do not update sense data except
  2737. on commands that return CHECK CONDITION or COMMAND TERMINATED status.  Thus
  2738. when polling for a logical unit to become ready, the initiator should issue
  2739. TEST UNIT READY commands until GOOD status is returned.  If desired, the
  2740. initiator may issue REQUEST SENSE commands after the TEST UNIT READY commands
  2741. that return CHECK CONDITION or COMMAND TERMINATED status to obtain the sense
  2742. data.
  2743.  
  2744. SCSI-2 draft proposed American National Standard        7-45      Revision 10c45
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752. All Device Types                                                        3/9/90
  2753.  
  2754.  
  2755. The target shall return CHECK CONDITION status for a REQUEST SENSE command
  2756. only to report errors specific to the command itself.  For example:
  2757. (1) A non-zero reserved bit is detected in the command descriptor block.
  2758. (2) An unrecovered parity error is detected on the data bus.
  2759. (3) A target malfunction prevents return of the sense data.
  2760.  
  2761. If a recovered error occurs during the execution of the REQUEST SENSE command,
  2762. the target shall return the sense data with GOOD status.  If a target returns
  2763. CHECK CONDITION status for a REQUEST SENSE command the sense data may be
  2764. invalid.
  2765.  
  2766. IMPLEMENTORS NOTE:  The sense data appropriate to the selection of an invalid
  2767. logical unit is defined in 6.5.3.
  2768.  
  2769. Targets shall be capable of returning eighteen bytes of data in response to a
  2770. REQUEST SENSE command.  If the allocation length is eighteen or greater and a
  2771. target returns less than eighteen bytes of data the initiator should assume
  2772. that the bytes not transferred would have been zeros had the target returned
  2773. those bytes.  Initiators can determine how much sense data has been returned
  2774. by examining the allocation length parameter in the command descriptor block
  2775. and the additional sense length in the sense data.  Targets shall not adjust
  2776. the additional sense length to reflect truncation if the allocation length is
  2777. less than the sense data available.
  2778.  
  2779.             Table 7-35: Error Codes 70h and 71h Sense Data Format
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805. SCSI-2 draft proposed American National Standard        7-46      Revision 10c46
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813. All Device Types                                                        3/9/90
  2814.  
  2815.  
  2816. ==============================================================================
  2817.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2818. Byte |        |        |        |        |        |        |        |        |
  2819. ==============================================================================
  2820.  0   | Valid  |                  Error Code (70h or 71h)                     |
  2821. -----|-----------------------------------------------------------------------|
  2822.  1   |                           Segment Number                              |
  2823. -----|-----------------------------------------------------------------------|
  2824.  2   |Filemark|  EOM   |  ILI   |Reserved|         Sense Key                 |
  2825. -----|-----------------------------------------------------------------------|
  2826.  3   | (MSB)                                                                 |
  2827. - - -|- -                        Information                              - -|
  2828.  6   |                                                                 (LSB) |
  2829. -----|-----------------------------------------------------------------------|
  2830.  7   |                           Additional Sense Length (n-7)               |
  2831. -----|-----------------------------------------------------------------------|
  2832.  8   | (MSB)                                                                 |
  2833. - - -|- -                        Command-Specific Information             - -|
  2834.  11  |                                                                 (LSB) |
  2835. -----|-----------------------------------------------------------------------|
  2836.  12  |                           Additional Sense Code                       |
  2837. -----|-----------------------------------------------------------------------|
  2838.  13  |                           Additional Sense Code Qualifier             |
  2839. -----|-----------------------------------------------------------------------|
  2840.  14  |                           Field Replaceable Unit Code                 |
  2841. -----|-----------------------------------------------------------------------|
  2842. 15 to|  SKSV  |                                                              |
  2843. - - -|---------- -               Sense-Key Specific                       - -|
  2844.  17  |                                                                       |
  2845. -----|-----------------------------------------------------------------------|
  2846. 18 to|                                                                       |
  2847. - - -|- -                        Additional Sense Bytes                   - -|
  2848.  n   |                                                                       |
  2849. ==============================================================================
  2850.  
  2851.  
  2852. A valid bit of zero indicates that the information field is not as defined in
  2853. this standard.  A valid bit of one indicates the information field contains
  2854. valid information as defined in this standard.  Targets shall implement the
  2855. valid bit.
  2856.  
  2857. The sense data format for error codes 70h (current errors) and 71h (deferred
  2858. errors) are defined in Table 7-35.  Error code values of 72h to 7Eh are
  2859. reserved.  Error code 7Fh is for a vendor-specific sense data format.  Targets
  2860. shall implement error code 70h; implementation of error code 71h is optional.
  2861. Error code values of 00h to 6Fh are not defined by this standard and their use
  2862. is not recommended.
  2863.  
  2864. The segment number field contains the number of the current segment descriptor
  2865.  
  2866. SCSI-2 draft proposed American National Standard        7-47      Revision 10c47
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874. All Device Types                                                        3/9/90
  2875.  
  2876. if the REQUEST SENSE command is in response to a COPY, COMPARE, or COPY AND
  2877. VERIFY command.  Up to 256 segments are supported beginning with segment zero.
  2878.  
  2879.  
  2880. The filemark bit is mandatory for sequential-access devices and this bit is
  2881. reserved for all other device types.  A filemark bit of one indicates that the
  2882. current command has read a filemark or setmark.  The additional sense code
  2883. field may be used to indicate whether a filemark or setmark was read.
  2884. Reporting of setmarks is optional and indicated by the RSmk bit for
  2885. sequential-access devices in the configuration parameters page (see 9.3.3).
  2886.  
  2887. The end-of-medium (EOM) bit is mandatory for sequential-access and printer
  2888. devices and this bit is reserved for all other device types.  An EOM bit of
  2889. one indicates that an end-of-medium condition (end-of-partition, beginning-of-
  2890. partition, out-of-paper, etc.) exists.  For sequential-access devices, this
  2891. bit indicates that the unit is at or past the early-warning if the direction
  2892. was forward or that the command could not be completed because beginning-of-
  2893. partition was encountered if the direction was reverse.
  2894.  
  2895. An incorrect length indicator (ILI) bit of one usually indicates that the
  2896. requested logical block length did not match the logical block length of the
  2897. data on the medium.
  2898.  
  2899. The sense key, additional sense code and additional sense code qualifier
  2900. provide a hierarchy of information.  The intention of the hierarchy is to
  2901. provide a top-down approach for an initiator to determine information relating
  2902. to the error and exception conditions.  The sense key provides generic
  2903. categories in which error and exception conditions can be reported.
  2904. Initiators would typically use sense keys for high level error recovery
  2905. procedures.  Additional sense codes provide further detail describing the
  2906. sense key.  Additional sense code qualifiers add further detail to the
  2907. additional sense code.  The additional sense code and additional sense code
  2908. qualifier can be used by initiators where sophisticated error recovery
  2909. procedures require detailed information describing the error and exception
  2910. conditions.
  2911.  
  2912. The sense key field is mandatory and indicates generic information describing
  2913. an error or exception condition.  The sense keys are defined in Tables 7-39
  2914. and 7-40.
  2915.  
  2916. The contents of the information field is device-type or command specific and
  2917. is defined within the appropriate section for the device type or command of
  2918. interest.  Targets shall implement the information field.  Unless specified
  2919. otherwise, this field contains:
  2920. (1) The unsigned logical block address associated with the sense key, for
  2921. direct-access devices (Device Type 0), write-once devices (Device Type 4), CD-
  2922. ROM devices (Device Type 5), and optical memory devices (Device Type 7).
  2923. (2) The difference (residue) of the requested length minus the actual length
  2924.  
  2925.  
  2926.  
  2927. SCSI-2 draft proposed American National Standard        7-48      Revision 10c48
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935. All Device Types                                                        3/9/90
  2936.  
  2937. in either bytes or blocks, as determined by the command, for sequential-access
  2938. devices (Device Type 1), printer devices (Device Type 2), processor devices
  2939. (Device Type 3) and some direct access device commands, except as defined for
  2940. (4) below. (Negative values are indicated by two's complement notation.)
  2941. (3) The difference (residue) of the requested number of blocks minus the
  2942. actual number of blocks copied or compared for the current segment descriptor
  2943. of a COPY, COMPARE, or COPY AND VERIFY command.
  2944. (4) For sequential-access devices operating in buffered modes 1h or 2h that
  2945. detect an unrecoverable write error when unwritten data blocks, filemarks, or
  2946. setmarks remain in the buffer, the value of the information field for all
  2947. commands shall be:
  2948. (a) the total number of data blocks, filemarks, and setmarks in the buffer if
  2949. the device is in fixed block mode (block length field of the MODE SENSE block
  2950. descriptor is non-zero and the fixed bit of the WRITE command is one).
  2951. (b) the number of bytes in the buffer, including filemarks and setmarks, if
  2952. the device is in variable mode (the fixed bit of the WRITE command is zero).
  2953.  
  2954.  
  2955. The additional sense length field indicates the number of additional sense
  2956. bytes to follow.  If the allocation length of the command descriptor block is
  2957. too small to transfer all of the additional sense bytes, the additional sense
  2958. length is not adjusted to reflect the truncation.
  2959.  
  2960. The command-specific information field contains information that depends on
  2961. the command which was executed.  Further meaning for this field is defined
  2962. within the command description.  The command-specific information field is
  2963. mandatory if the target supports any of the following commands:  COPY,
  2964. COMPARE, COPY AND VERIFY, SEARCH DATA, and REASSIGN BLOCKS.
  2965.  
  2966. The additional sense code field indicates further information related to the
  2967. error or exception condition reported in the sense key field.  Targets shall
  2968. support the additional sense code field.  Support of the additional sense
  2969. codes not explicitly required by this standard is optional.  A list of
  2970. additional sense codes is in Table 7-41.  If the target does not have further
  2971. information related to the error or exception condition, the additional sense
  2972. code is set to NO ADDITIONAL SENSE INFORMATION.
  2973.  
  2974. The additional sense code qualifier indicates detailed information related to
  2975. the additional sense code.  The additional sense code qualifier is optional.
  2976. If the error or exception condition is reportable by the device the value
  2977. returned shall be as specified in Table 7-41.  If the target does not have
  2978. detailed information related to the error or exception condition, the
  2979. additional sense code qualifier is set to zero.
  2980.  
  2981. Non-zero values in the field replaceable unit code field are used to define a
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988. SCSI-2 draft proposed American National Standard        7-49      Revision 10c49
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996. All Device Types                                                        3/9/90
  2997.  
  2998. device-specific mechanism or unit that has failed.  A value of zero in this
  2999. field shall indicate that no specific mechanism or unit has been identified to
  3000. have failed or that the data is not available.  The field replaceable unit
  3001. code field is optional. The format of this information is not specified by
  3002. this standard.  Additional information about the field replaceable unit may be
  3003. available in the ASCII information page (see 7.3.4.2), if supported by the
  3004. target.
  3005.  
  3006. The sense-key specific bytes are described in 7.2.14.1, below.
  3007.  
  3008. The additional sense bytes field may contain command specific data, peripheral
  3009. device specific data, or vendor-specific data that further defines the nature
  3010. of the CHECK CONDITION status.
  3011.  
  3012. 7.2.14.1. Sense-Key Specific
  3013. The sense-key specific field is defined by this standard when the value of the
  3014. sense-key specific valid (SKSV) bit is one.  The sense-key specific valid bit
  3015. and sense-key specific field are optional.  The definition of this field is
  3016. determined by the value of the sense key field.  This field is reserved for
  3017. sense keys not described below.  An SKSV value of zero indicates that this
  3018. field is not defined by this standard.
  3019.  
  3020. If the sense key field is set to ILLEGAL REQUEST and the SKSV bit is set to
  3021. one, the sense-key specific field shall be defined as shown in Table 7-36.
  3022. These Field Pointer field indicates which illegal parameters in command
  3023. descriptor blocks or data parameters are in error.
  3024.  
  3025.                        Table 7-36: Field Pointer Bytes
  3026.  
  3027. ==============================================================================
  3028.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3029. Byte |        |        |        |        |        |        |        |        |
  3030. ==============================================================================
  3031.  15  |  SKSV  |  C/D   |Reserved|Reserved|  BPV   |    Bit Pointer           |
  3032. -----|-----------------------------------------------------------------------|
  3033.  16  | (MSB)                                                                 |
  3034. -----|---                        Field Pointer                            ---|
  3035.  17  |                                                                 (LSB) |
  3036. ==============================================================================
  3037.  
  3038.  
  3039. A command data (C/D) bit of one indicates that the illegal parameter is in the
  3040. command descriptor block.  A C/D bit of zero indicates that the illegal
  3041. parameter is in the data parameters sent by the initiator during the DATA OUT
  3042. phase.
  3043.  
  3044. A bit pointer valid (BPV) bit of zero indicates that the value in the bit
  3045. pointer field is not valid.  A BPV bit of one indicates that the bit pointer
  3046. field specifies which bit of the byte designated by the field pointer field is
  3047. in error.  When a multiple-bit field is in error, the bit pointer field shall
  3048.  
  3049. SCSI-2 draft proposed American National Standard        7-50      Revision 10c50
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057. All Device Types                                                        3/9/90
  3058.  
  3059. point to the most-significant (left-most) bit of the field.
  3060.  
  3061. The field pointer field indicates which byte of the command descriptor block
  3062. or of the parameter data was in error.  Bytes are numbered starting from zero,
  3063. as shown in the tables describing the commands and parameters.  When a
  3064. multiple-byte field is in error, the pointer shall point to the most-
  3065. significant (left-most) byte of the field.
  3066.  
  3067. IMPLEMENTORS NOTE:  Bytes identified as being in error are not necessarily the
  3068. place that has to be changed to correct the problem.
  3069.  
  3070. If the sense key is RECOVERED ERROR, HARDWARE ERROR or MEDIUM ERROR and if the
  3071. SKSV bit is one, the sense-key specific field shall be defined as shown in
  3072. Table 7-37.
  3073.  
  3074.                      Table 7-37: Actual Retry Count Bytes
  3075.  
  3076. ==============================================================================
  3077.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3078. Byte |        |        |        |        |        |        |        |        |
  3079. ==============================================================================
  3080.  15  |  SKSV  |                  Reserved                                    |
  3081. -----|-----------------------------------------------------------------------|
  3082.  16  | (MSB)                                                                 |
  3083. -----|---                        Actual Retry Count                       ---|
  3084.  17  |                                                                 (LSB) |
  3085. ==============================================================================
  3086.  
  3087.  
  3088. The actual retry count field returns implementation-specific information on
  3089. the actual number of retries of the recovery algorithm used in attempting to
  3090. recover an error or exception condition.
  3091.  
  3092. IMPLEMENTORS NOTE: It is recommended that this field relate to the retry count
  3093. fields within the error recovery page of the MODE SELECT command.
  3094.  
  3095. If the sense key is NOT READY and the SKSV bit is one, the sense-key specific
  3096. field shall be defined as shown in Table 7-38.  These fields are only defined
  3097. for the FORMAT UNIT command with the Immed bit set to one.
  3098.  
  3099.                  Table 7-38: Format Progress Indication Bytes
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110. SCSI-2 draft proposed American National Standard        7-51      Revision 10c51
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118. All Device Types                                                        3/9/90
  3119.  
  3120.  
  3121. ==============================================================================
  3122.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3123. Byte |        |        |        |        |        |        |        |        |
  3124. ==============================================================================
  3125.  15  |  SKSV  |                  Reserved                                    |
  3126. -----|-----------------------------------------------------------------------|
  3127.  16  | (MSB)                                                                 |
  3128. -----|---                        Progress Indication                      ---|
  3129.  17  |                                                                 (LSB) |
  3130. ==============================================================================
  3131.  
  3132.  
  3133. The progress indication field is a percent complete indication in which the
  3134. returned value is the numerator that has 65536 (10000h) as its denominator.
  3135. The progress indication shall be an based upon the total format operation
  3136. including any certification or initialization operations.
  3137.  
  3138. IMPLEMENTORS NOTE: It is intended that the progress indication be time
  3139. related.  However, since format time varies with the number of defects
  3140. encountered, etc., it is reasonable for the target to assign values to various
  3141. steps within the process.  The granularity of these steps should be small
  3142. enough to provide reasonable assurances to the initiator that progress is
  3143. being made.
  3144.  
  3145. 7.2.14.2. Deferred Errors
  3146. Error code 70h indicates that the CHECK CONDITION or COMMAND TERMINATED status
  3147. returned is the result of an error or exception condition on the command that
  3148. returned the CHECK CONDITION or COMMAND TERMINATED status or an unexpected bus
  3149. free condition.  This includes errors generated during execution of the
  3150. command by the actual execution process.  It also includes errors not related
  3151. to any command that are first observed during execution of a command.
  3152. Examples of this latter type of error include disk servo-mechanism off-track
  3153. errors and power-up test errors.
  3154.  
  3155. Error Code 71h (deferred error) indicates that the CHECK CONDITION status
  3156. returned is the result of an error or exception condition that occurred during
  3157. execution of a previous command for which GOOD status has already been
  3158. returned.  Such commands are associated with use of the immediate bit, with
  3159. some forms of caching, and with multiple command buffering.  Targets that
  3160. implement these features are required to implement deferred error reporting.
  3161.  
  3162. The deferred error indication may be sent at a time selected by the target
  3163. through the asynchronous event notification process (see 6.5.5) if AEN is
  3164. supported by both the initiator and target.
  3165.  
  3166. If AEN is not supported, the deferred error may be indicated by returning
  3167. CHECK CONDITION status to the the appropriate initiator as described below.
  3168. The subsequent execution of a REQUEST SENSE command shall return the deferred
  3169. error sense information.
  3170.  
  3171. SCSI-2 draft proposed American National Standard        7-52      Revision 10c52
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179. All Device Types                                                        3/9/90
  3180.  
  3181.  
  3182. If CHECK CONDITION status for a deferred error is returned, the current
  3183. command has not performed any storage operations or output operations to the
  3184. media.  After the target detects a deferred error condition on a logical unit,
  3185. it shall return a deferred error according to the rules described below:
  3186. (1) If a deferred error can be recovered with no external system intervention,
  3187. a deferred error indication shall not be posted unless required by the error
  3188. handling parameters of the MODE SELECT command.  The occurrence of the error
  3189. may be logged if statistical or error logging is supported.
  3190. (2) If a deferred error can be associated with a causing initiator and with a
  3191. particular function or a particular subset of data, and the error is either
  3192. unrecovered or required to be reported by the mode parameters, a deferred
  3193. error indication shall be returned to the causing initiator.  If an initiator
  3194. other than the causing initiator attempts access to the particular function or
  3195. subset of data associated with the deferred error, a BUSY status shall be
  3196. returned to that initiator in response to the command attempting the access.
  3197.  
  3198. NOTE:  Not all devices may be sufficiently sophisticated to identify the
  3199. function or data that has failed.  Those that cannot should treat the error in
  3200. the following manner.
  3201.  
  3202. (3) If a deferred error cannot be associated with a causing initiator or with
  3203. a particular subset of data, a deferred error indication shall be returned on
  3204. behalf of the failing logical unit to each initiator.  If multiple deferred
  3205. errors have accumulated for some initiators, only the last error shall be
  3206. returned.
  3207. (4) If a deferred error cannot be associated with a particular logical unit,
  3208. it shall be returned to the appropriate initiator for all logical units
  3209. supported by the target.
  3210. (5) If a current command has not yet started executing, and a deferred error
  3211. occurs, the command shall be terminated with CHECK CONDITION status and
  3212. deferred error information posted in the sense data.  By convention, the
  3213. current command is considered to have started execution if the target has
  3214. changed phase from the COMMAND phase to the next normal phase of the command
  3215. sequence.  If a deferred error occurs while a current command is executing and
  3216. the current command has been affected by the error, the command shall be
  3217. terminated by CHECK CONDITION status and current error information shall be
  3218. returned in the sense data.  In this case, if the current error information
  3219. does not adequately define the deferred error condition, a deferred error may
  3220. be returned after the current error information has been recovered.  If a
  3221. deferred error occurs while a current command is executing and the current
  3222. command completes successfully, the target may choose to return the deferred
  3223. error information after the completion of the current command.
  3224.  
  3225. IMPLEMENTORS NOTE:  Deferred errors may indicate that an operation was
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232. SCSI-2 draft proposed American National Standard        7-53      Revision 10c53
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240. All Device Types                                                        3/9/90
  3241.  
  3242. unsuccessful long after the command performing the data transfer returned GOOD
  3243. status.  If data that cannot be replicated or recovered from other sources is
  3244. being stored using such buffered write operations, synchronization commands
  3245. should be performed before the critical data is destroyed in the host
  3246. initiator.  This is necessary to be sure that recovery actions can be taken if
  3247. deferred errors do occur in the storing of the data. If AEN is not
  3248. implemented, the synchronizing process should provide the necessary commands
  3249. to allow returning CHECK CONDITION status and subsequent returning of deferred
  3250. error sense information after all buffered operations are guaranteed to be
  3251. complete.
  3252.  
  3253.                   Table 7-39: Sense Key (0h-7h) Descriptions
  3254.  
  3255.  
  3256.  
  3257.  
  3258.  
  3259.  
  3260.  
  3261.  
  3262.  
  3263.  
  3264.  
  3265.  
  3266.  
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293. SCSI-2 draft proposed American National Standard        7-54      Revision 10c54
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301. All Device Types                                                        3/9/90
  3302.  
  3303.  
  3304. ==============================================================================
  3305. Sense Key  Description
  3306. ---------  -------------------------------------------------------------------
  3307. 0h      NO SENSE.  Indicates that there is no specific sense key information
  3308. to be reported for the designated logical unit.  This would be the case for a
  3309. successful command or a command that received CHECK CONDITION or COMMAND
  3310. TERMINATED status because one of the filemark, EOM, or ILI bits is set to one.
  3311.  
  3312. 1h      RECOVERED ERROR.  Indicates that the last command completed
  3313. successfully with some recovery action performed by the target. Details may be
  3314. determinable by examining the additional sense bytes and the information
  3315. field.  When multiple recovered errors occur during one command, the choice of
  3316. which error to report (first, last, most severe, etc.) is device specific.
  3317.  
  3318. 2h      NOT READY.  Indicates that the logical unit addressed cannot be
  3319. accessed.  Operator intervention may be required to correct this condition.
  3320.  
  3321. 3h      MEDIUM ERROR.  Indicates that the command terminated with a non-
  3322. recovered error condition that was probably caused by a flaw in the medium or
  3323. an error in the recorded data.  This sense key may also be returned if the
  3324. target is unable to distinguish between a flaw in the medium and a specific
  3325. hardware failure (sense key 4h).
  3326.  
  3327. 4h      HARDWARE ERROR.  Indicates that the target detected a non- recoverable
  3328. hardware failure (for example, controller failure, device failure, parity
  3329. error, etc.) while performing the command or during a self test.
  3330.  
  3331. 5h      ILLEGAL REQUEST.  Indicates that there was an illegal parameter in the
  3332. command descriptor block or in the additional parameters supplied as data for
  3333. some commands (FORMAT UNIT, SEARCH DATA, etc.).  If the target detects an
  3334. invalid parameter in the command descriptor block, then it shall terminate the
  3335. command without altering the medium.  If the target detects an invalid
  3336. parameter in the additional parameters supplied as data, then the target may
  3337. have already altered the medium.  This sense key may also indicate that an
  3338. invalid IDENTIFY message was received (5.6.7).
  3339.  
  3340. 6h      UNIT ATTENTION.  Indicates that the removable medium may have been
  3341. changed or the target has been reset.  See 6.9 for more detailed information
  3342. about the unit attention condition.
  3343.  
  3344. 7h      DATA PROTECT.  Indicates that a command that reads or writes the
  3345. medium was attempted on a block that is protected from this operation.  The
  3346. read or write operation is not performed.
  3347. ==============================================================================
  3348.  
  3349.                   Table 7-40: Sense Key (8h-Fh) Descriptions
  3350.  
  3351.  
  3352.  
  3353.  
  3354. SCSI-2 draft proposed American National Standard        7-55      Revision 10c55
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362. All Device Types                                                        3/9/90
  3363.  
  3364.  
  3365. ==============================================================================
  3366. Sense Key  Description
  3367. ---------  -------------------------------------------------------------------
  3368. 8h      BLANK CHECK.  Indicates that a write-once device or a sequential-
  3369. access device encountered blank medium or format-defined end-of- data
  3370. indication while reading or a write-once device encountered a non-blank medium
  3371. while writing.
  3372.  
  3373. 9h      Vendor Specific.  This sense key is available for reporting vendor
  3374. specific conditions.
  3375.  
  3376. Ah      COPY ABORTED.  Indicates a COPY, COMPARE, or COPY AND VERIFY command
  3377. was aborted due to an error condition on the source device, the destination
  3378. device, or both.  (See 7.2.3.2 for additional information about this sense
  3379. key.)
  3380.  
  3381. Bh      ABORTED COMMAND.  Indicates that the target aborted the command. The
  3382. initiator may be able to recover by trying the command again.
  3383.  
  3384. Ch      EQUAL.  Indicates a SEARCH DATA command has satisfied an equal
  3385. comparison.
  3386.  
  3387. Dh      VOLUME OVERFLOW.  Indicates that a buffered peripheral device has
  3388. reached the end-of-partition and data may remain in the buffer that has not
  3389. been written to the medium.  A RECOVER BUFFERED DATA command(s) may be issued
  3390. to read the unwritten data from the buffer.
  3391.  
  3392. Eh      MISCOMPARE.  Indicates that the source data did not match the data
  3393. read from the medium.
  3394.  
  3395. Fh      RESERVED.
  3396.  
  3397. ==============================================================================
  3398.  
  3399.  
  3400.                      Table 7-41: ASC and ASCQ Assignments
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415. SCSI-2 draft proposed American National Standard        7-56      Revision 10c56
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423. All Device Types                                                        3/9/90
  3424.  
  3425.  
  3426. ==============================================================================
  3427.                  ASC AND ASCQ ASSIGNMENTS
  3428.  
  3429.       D          = DIRECT ACCESS DEVICE
  3430.        T         = SEQUENTIAL ACCESS DEVICE
  3431.         L        = PRINTER DEVICE
  3432.          P       = PROCESSOR DEVICE
  3433.           W      = WRITE ONCE READ MULTIPLE DEVICE
  3434.            R     = READ ONLY (CD-ROM) DEVICE
  3435.             S    = SCANNER DEVICE
  3436.              O   = OPTICAL MEMORY DEVICE
  3437.               M  = MEDIA CHANGER DEVICE
  3438.                C = COMMUNICATION DEVICE
  3439. BYTE
  3440. 12 13 DTLPWRSOMC DESCRIPTION
  3441. -- --            ------------------------------------------------------------
  3442. 13 00 D   W  O   ADDRESS MARK NOT FOUND FOR DATA FIELD
  3443. 12 00 D   W  O   ADDRESS MARK NOT FOUND FOR ID FIELD
  3444. 00 11      R     AUDIO PLAY OPERATION IN PROGRESS
  3445. 00 12      R     AUDIO PLAY OPERATION PAUSED
  3446. 00 14      R     AUDIO PLAY OPERATION STOPPED DUE TO ERROR
  3447. 00 13      R     AUDIO PLAY OPERATION SUCCESSFULLY COMPLETED
  3448. 00 04  T    S    BEGINNING-OF-PARTITION/MEDIUM DETECTED
  3449. 14 04  T         BLOCK SEQUENCE ERROR
  3450. 30 02 DT  WR O   CANNOT READ MEDIUM - INCOMPATIBLE FORMAT
  3451. 30 01 DT  WR O   CANNOT READ MEDIUM - UNKNOWN FORMAT
  3452. 52 00  T         CARTRIDGE FAULT
  3453. 3F 02 DTLPWRSOMC CHANGED OPERATING DEFINITION
  3454. 11 06     WR O   CIRC UNRECOVERED ERROR
  3455. 30 03 DT         CLEANING CARTRIDGE INSTALLED
  3456. 4A 00 DTLPWRSOMC COMMAND PHASE ERROR
  3457. 2C 00 DTLPWRSOMC COMMAND SEQUENCE ERROR
  3458. 2F 00 DTLPWRSOMC COMMANDS CLEARED BY ANOTHER INITIATOR
  3459. 2B 00 DTLPWRSO C COPY CANNOT EXECUTE SINCE HOST CANNOT DISCONNECT
  3460. 41 00 D          DATA PATH FAILURE (SHOULD USE 40 NN)
  3461. 4B 00 DTLPWRSOMC DATA PHASE ERROR
  3462. 11 07     W  O   DATA RESYCHRONIZATION ERROR
  3463. 16 00 D   W  O   DATA SYNCHRONIZATION MARK ERROR
  3464. 19 00 D      O   DEFECT LIST ERROR
  3465. 19 03 D      O   DEFECT LIST ERROR IN GROWN LIST
  3466. 19 02 D      O   DEFECT LIST ERROR IN PRIMARY LIST
  3467. 19 01 D      O   DEFECT LIST NOT AVAILABLE
  3468. 1C 00 D      O   DEFECT LIST NOT FOUND
  3469. 32 01 D   W  O   DEFECT LIST UPDATE FAILURE
  3470. 40 NN DTLPWRSOMC DIAGNOSTIC FAILURE ON COMPONENT NN (80H-FFH)
  3471. 63 00      R     END OF USER AREA ENCOUNTERED ON THIS TRACK
  3472. 00 05  T    S    END-OF-DATA DETECTED
  3473. 14 03  T         END-OF-DATA NOT FOUND
  3474. 00 02  T    S    END-OF-PARTITION/MEDIUM DETECTED
  3475.  
  3476. SCSI-2 draft proposed American National Standard        7-57      Revision 10c57
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484. All Device Types                                                        3/9/90
  3485.  
  3486. 51 00  T     O   ERASE FAILURE
  3487. 0A 00 DTLPWRSOMC ERROR LOG OVERFLOW
  3488. 11 02 DT  W SO   ERROR TOO LONG TO CORRECT
  3489. ==============================================================================
  3490.                Table 7-41: ASC and ASCQ Assignments (continued)
  3491.  
  3492. ==============================================================================
  3493. BYTE
  3494. 12 13 DTLPWRSOMC DESCRIPTION
  3495. -- --            ------------------------------------------------------------
  3496. 03 02  T         EXCESSIVE WRITE ERRORS
  3497. 3B 07   L        FAILED TO SENSE BOTTOM-OF-FORM
  3498. 3B 06   L        FAILED TO SENSE TOP-OF-FORM
  3499. 00 01  T         FILEMARK DETECTED
  3500. 14 02  T         FILEMARK OR SETMARK NOT FOUND
  3501. 09 02     WR O   FOCUS SERVO FAILURE
  3502. 31 01 D L    O   FORMAT COMMAND FAILED
  3503. 58 00        O   GENERATION DOES NOT EXIST
  3504. 1C 02 D      O   GROWN DEFECT LIST NOT FOUND
  3505. 00 06 DTLPWRSOMC I/O PROCESS TERMINATED
  3506. 10 00 D   W  O   ID CRC OR ECC ERROR
  3507. 22 00 D          ILLEGAL FUNCTION (SHOULD USE 20 00, 24 00, OR 26 00)
  3508. 64 00      R     ILLEGAL MODE FOR THIS TRACK
  3509. 28 01         M  IMPORT OR EXPORT ELEMENT ACCESSED
  3510. 30 00 DT  WR OM  INCOMPATIBLE MEDIUM INSTALLED
  3511. 11 08  T         INCOMPLETE BLOCK READ
  3512. 48 00 DTLPWRSOMC INITIATOR DETECTED ERROR MESSAGE RECEIVED
  3513. 3F 03 DTLPWRSOMC INQUIRY DATA HAS CHANGED
  3514. 44 00 DTLPWRSOMC INTERNAL TARGET FAILURE
  3515. 3D 00 DTLPWRSOMC INVALID BITS IN IDENTIFY MESSAGE
  3516. 2C 02       S    INVALID COMBINATION OF WINDOWS SPECIFIED
  3517. 20 00 DTLPWRSOMC INVALID COMMAND OPERATION CODE
  3518. 21 01         M  INVALID ELEMENT ADDRESS
  3519. 24 00 DTLPWRSOMC INVALID FIELD IN CDB
  3520. 26 00 DTLPWRSOMC INVALID FIELD IN PARAMETER LIST
  3521. 49 00 DTLPWRSOMC INVALID MESSAGE ERROR
  3522. 11 05     WR O   L-EC UNCORRECTABLE ERROR
  3523. 60 00       S    LAMP FAILURE
  3524. 5B 02 DTLPWRSOM  LOG COUNTER AT MAXIMUM
  3525. 5B 00 DTLPWRSOM  LOG EXCEPTION
  3526. 5B 03 DTLPWRSOM  LOG LIST CODES EXHAUSTED
  3527. 2A 02 DTL WRSOMC LOG PARAMETERS CHANGED
  3528. 21 00 DT  WR OM  LOGICAL BLOCK ADDRESS OUT OF RANGE
  3529. 08 00 DTL WRSOMC LOGICAL UNIT COMMUNICATION FAILURE
  3530. 08 02 DTL WRSOMC LOGICAL UNIT COMMUNICATION PARITY ERROR
  3531. 08 01 DTL WRSOMC LOGICAL UNIT COMMUNICATION TIME-OUT
  3532. 05 00 DTL WRSOMC LOGICAL UNIT DOES NOT RESPOND TO SELECTION
  3533. 4C 00 DTLPWRSOMC LOGICAL UNIT FAILED SELF-CONFIGURATION
  3534. 3E 00 DTLPWRSOMC LOGICAL UNIT HAS NOT SELF-CONFIGURED YET
  3535. 04 01 DTLPWRSOMC LOGICAL UNIT IS IN PROCESS OF BECOMING READY
  3536.  
  3537. SCSI-2 draft proposed American National Standard        7-58      Revision 10c58
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545. All Device Types                                                        3/9/90
  3546.  
  3547. 04 00 DTLPWRSOMC LOGICAL UNIT NOT READY, CAUSE NOT REPORTABLE
  3548. 04 04 DTL    O   LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
  3549. 04 02 DTLPWRSOMC LOGICAL UNIT NOT READY, INITIALIZING COMMAND REQUIRED
  3550. 04 03 DTLPWRSOMC LOGICAL UNIT NOT READY, MANUAL INTERVENTION REQUIRED
  3551. 25 00 DTLPWRSOMC LOGICAL UNIT NOT SUPPORTED
  3552. 15 01 DTL WRSOM  MECHANICAL POSITIONING ERROR
  3553. 53 00 DTL WRSOM  MEDIA LOAD OR EJECT FAILED
  3554. ==============================================================================
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598. SCSI-2 draft proposed American National Standard        7-59      Revision 10c59
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606. All Device Types                                                        3/9/90
  3607.  
  3608.                Table 7-41: ASC and ASCQ Assignments (continued)
  3609.  
  3610. ==============================================================================
  3611. BYTE
  3612. 12 13 DTLPWRSOMC DESCRIPTION
  3613. -- --            ------------------------------------------------------------
  3614. 3B 0D         M  MEDIUM DESTINATION ELEMENT FULL
  3615. 31 00 DT  W  O   MEDIUM FORMAT CORRUPTED
  3616. 3A 00 DTL WRSOM  MEDIUM NOT PRESENT
  3617. 53 02 DT  WR OM  MEDIUM REMOVAL PREVENTED
  3618. 3B 0E         M  MEDIUM SOURCE ELEMENT EMPTY
  3619. 43 00 DTLPWRSOMC MESSAGE ERROR
  3620. 3F 01 DTLPWRSOMC MICROCODE HAS BEEN CHANGED
  3621. 1D 00 D   W  O   MISCOMPARE DURING VERIFY OPERATION
  3622. 11 0A DT     O   MISCORRECTED ERROR
  3623. 2A 01 DTL WRSOMC MODE PARAMETERS CHANGED
  3624. 07 00 DTL WRSOM  MULTIPLE PERIPHERAL DEVICES SELECTED
  3625. 11 03 DT  W SO   MULTIPLE READ ERRORS
  3626. 00 00 DTLPWRSOMC NO ADDITIONAL SENSE INFORMATION
  3627. 00 15      R     NO CURRENT AUDIO STATUS TO RETURN
  3628. 32 00 D   W  O   NO DEFECT SPARE LOCATION AVAILABLE
  3629. 11 09  T         NO GAP FOUND
  3630. 01 00 D   W  O   NO INDEX/SECTOR SIGNAL
  3631. 06 00 D   WR OM  NO REFERENCE POSITION FOUND
  3632. 02 00 D   WR OM  NO SEEK COMPLETE
  3633. 03 01  T         NO WRITE CURRENT
  3634. 28 00 DTLPWRSOMC NOT READY TO READY TRANSITION (MEDIUM MAY HAVE CHANGED)
  3635. 5A 01 DT  WR OM  OPERATOR MEDIUM REMOVAL REQUEST
  3636. 5A 00 DTLPWRSOM  OPERATOR REQUEST OR STATE CHANGE INPUT (UNSPECIFIED)
  3637. 5A 03 DT  W  O   OPERATOR SELECTED WRITE PERMIT
  3638. 5A 02 DT  W  O   OPERATOR SELECTED WRITE PROTECT
  3639. 61 02       S    OUT OF FOCUS
  3640. 4E 00 DTLPWRSOMC OVERLAPPED COMMANDS ATTEMPTED
  3641. 2D 00  T         OVERWRITE ERROR ON UPDATE IN PLACE
  3642. 3B 05   L        PAPER JAM
  3643. 1A 00 DTLPWRSOMC PARAMETER LIST LENGTH ERROR
  3644. 26 01 DTLPWRSOMC PARAMETER NOT SUPPORTED
  3645. 26 02 DTLPWRSOMC PARAMETER VALUE INVALID
  3646. 2A 00 DTL WRSOMC PARAMETERS CHANGED
  3647. 03 00 DTL W SO   PERIPHERAL DEVICE WRITE FAULT
  3648. 50 02  T         POSITION ERROR RELATED TO TIMING
  3649. 3B 0C       S    POSITION PAST BEGINNING OF MEDIUM
  3650. 3B 0B       S    POSITION PAST END OF MEDIUM
  3651. 15 02 DT  WR O   POSITIONING ERROR DETECTED BY READ OF MEDIUM
  3652. 29 00 DTLPWRSOMC POWER ON, RESET, OR BUS DEVICE RESET OCCURRED
  3653. 42 00 D          POWER-ON OR SELF-TEST FAILURE (SHOULD USE 40 NN)
  3654. 1C 01 D      O   PRIMARY DEFECT LIST NOT FOUND
  3655. 40 00 D          RAM FAILURE (SHOULD USE 40 NN)
  3656. 15 00 DTL WRSOM  RANDOM POSITIONING ERROR
  3657. 3B 0A       S    READ PAST BEGINNING OF MEDIUM
  3658.  
  3659. SCSI-2 draft proposed American National Standard        7-60      Revision 10c60
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667. All Device Types                                                        3/9/90
  3668.  
  3669. 3B 09       S    READ PAST END OF MEDIUM
  3670. 11 01 DT  W SO   READ RETRIES EXHAUSTED
  3671. 14 01 DT  WR O   RECORD NOT FOUND
  3672. 14 00 DTL WRSO   RECORDED ENTITY NOT FOUND
  3673. ==============================================================================
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720. SCSI-2 draft proposed American National Standard        7-61      Revision 10c61
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728. All Device Types                                                        3/9/90
  3729.  
  3730.                Table 7-41: ASC and ASCQ Assignments (continued)
  3731.  
  3732. ==============================================================================
  3733. BYTE
  3734. 12 13 DTLPWRSOMC DESCRIPTION
  3735. -- --            ------------------------------------------------------------
  3736. 18 02 D   WR O   RECOVERED DATA - DATA AUTO-REALLOCATED
  3737. 18 05 D   WR O   RECOVERED DATA - RECOMMEND REASSIGNMENT
  3738. 17 05 D   WR O   RECOVERED DATA USING PREVIOUS SECTOR ID
  3739. 18 03      R     RECOVERED DATA WITH CIRC
  3740. 18 01 D   WR O   RECOVERED DATA WITH ERROR CORRECTION AND RETRIES APPLIED
  3741. 18 00 DT  WR O   RECOVERED DATA WITH ERROR CORRECTION APPLIED
  3742. 18 04      R     RECOVERED DATA WITH LEC
  3743. 17 03 DT  WR O   RECOVERED DATA WITH NEGATIVE HEAD OFFSET
  3744. 17 00 DT  WRSO   RECOVERED DATA WITH NO ERROR CORRECTION APPLIED
  3745. 17 02 DT  WR O   RECOVERED DATA WITH POSITIVE HEAD OFFSET
  3746. 17 01 DT  WRSO   RECOVERED DATA WITH RETRIES
  3747. 17 04     WR O   RECOVERED DATA WITH RETRIES AND/OR CIRC APPLIED
  3748. 17 06 D   W  O   RECOVERED DATA WITHOUT ECC - DATA AUTO-REALLOCATED
  3749. 17 07 D   W  O   RECOVERED DATA WITHOUT ECC - RECOMMEND REASSIGNMENT
  3750. 1E 00 D   W  O   RECOVERED ID WITH ECC CORRECTION
  3751. 3B 08  T         REPOSITION ERROR
  3752. 36 00   L        RIBBON, INK, OR TONER FAILURE
  3753. 37 00 DTL WRSOMC ROUNDED PARAMETER
  3754. 5C 00 D      O   RPL STATUS CHANGE
  3755. 39 00 DTL WRSOMC SAVING PARAMETERS NOT SUPPORTED
  3756. 62 00       S    SCAN HEAD POSITIONING ERROR
  3757. 47 00 DTLPWRSOMC SCSI PARITY ERROR
  3758. 54 00    P       SCSI TO HOST SYSTEM INTERFACE FAILURE
  3759. 45 00 DTLPWRSOMC SELECT OR RESELECT FAILURE
  3760. 3B 00  TL        SEQUENTIAL POSITIONING ERROR
  3761. 00 03  T         SETMARK DETECTED
  3762. 3B 04   L        SLEW FAILURE
  3763. 09 03     WR O   SPINDLE SERVO FAILURE
  3764. 5C 02 D      O   SPINDLES NOT SYNCHRONIZED
  3765. 5C 01 D      O   SPINDLES SYNCHRONIZED
  3766. 1B 00 DTLPWRSOMC SYNCHRONOUS DATA TRANSFER ERROR
  3767. 55 00    P       SYSTEM RESOURCE FAILURE
  3768. 33 00  T         TAPE LENGTH ERROR
  3769. 3B 03   L        TAPE OR ELECTRONIC VERTICAL FORMS UNIT NOT READY
  3770. 3B 01  T         TAPE POSITION ERROR AT BEGINNING-OF-MEDIUM
  3771. 3B 02  T         TAPE POSITION ERROR AT END-OF-MEDIUM
  3772. 3F 00 DTLPWRSOMC TARGET OPERATING CONDITIONS HAVE CHANGED
  3773. 5B 01 DTLPWRSOM  THRESHOLD CONDITION MET
  3774. 26 03 DTLPWRSOMC THRESHOLD PARAMETERS NOT SUPPORTED
  3775. 2C 01       S    TOO MANY WINDOWS SPECIFIED
  3776. 09 00 DT  WR O   TRACK FOLLOWING ERROR
  3777. 09 01     WR O   TRACKING SERVO FAILURE
  3778. 61 01       S    UNABLE TO ACQUIRE VIDEO
  3779. 57 00      R     UNABLE TO RECOVER TABLE-OF-CONTENTS
  3780.  
  3781. SCSI-2 draft proposed American National Standard        7-62      Revision 10c62
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789. All Device Types                                                        3/9/90
  3790.  
  3791. 53 01  T         UNLOAD TAPE FAILURE
  3792. 11 00 DT  WRSO   UNRECOVERED READ ERROR
  3793. 11 04 D   W  O   UNRECOVERED READ ERROR - AUTO REALLOCATE FAILED
  3794. ==============================================================================
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.  
  3836.  
  3837.  
  3838.  
  3839.  
  3840.  
  3841.  
  3842. SCSI-2 draft proposed American National Standard        7-63      Revision 10c63
  3843.  
  3844.  
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850. All Device Types                                                        3/9/90
  3851.  
  3852.                Table 7-41: ASC and ASCQ Assignments (continued)
  3853.  
  3854. ==============================================================================
  3855. BYTE
  3856. 12 13 DTLPWRSOMC DESCRIPTION
  3857. -- --            ------------------------------------------------------------
  3858. 11 0B D   W  O   UNRECOVERED READ ERROR - RECOMMEND REASSIGNMENT
  3859. 11 0C D   W  O   UNRECOVERED READ ERROR - RECOMMEND REWRITE THE DATA
  3860. 46 00 DTLPWRSOMC UNSUCCESSFUL SOFT RESET
  3861. 59 00        O   UPDATED BLOCK READ
  3862. 61 00       S    VIDEO ACQUISITION ERROR
  3863. 50 00  T         WRITE APPEND ERROR
  3864. 50 01  T         WRITE APPEND POSITION ERROR
  3865. 0C 00  T    S    WRITE ERROR
  3866. 0C 02 D   W  O   WRITE ERROR - AUTO REALLOCATION FAILED
  3867. 0C 01 D   W  O   WRITE ERROR RECOVERED WITH AUTO REALLOCATION
  3868. 27 00 DT  W  O   WRITE PROTECTED
  3869.                  ------------------------------------------
  3870. 80 XX     \
  3871. THROUGH    >     VENDOR SPECIFIC.
  3872. FF XX     /
  3873.  
  3874. XX 80     \
  3875. THROUGH    >     VENDOR SPECIFIC QUALIFICATION OF STANDARD ASC.
  3876. XX FF     /
  3877.                  ALL CODES NOT SHOWN ARE RESERVED.
  3878. ==============================================================================
  3879.  
  3880. NOTE:  Appendix I contains the ASC and ASCQ assignments in numeric order.
  3881.  
  3882. 7.2.15. SEND DIAGNOSTIC Command
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.  
  3903. SCSI-2 draft proposed American National Standard        7-64      Revision 10c64
  3904.  
  3905.  
  3906.  
  3907.  
  3908.  
  3909.  
  3910.  
  3911. All Device Types                                                        3/9/90
  3912.  
  3913.  
  3914.  
  3915.                      Table 7-42: SEND DIAGNOSTIC Command
  3916.  
  3917. ==============================================================================
  3918.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3919. Byte |        |        |        |        |        |        |        |        |
  3920. ==============================================================================
  3921.  0   |                           Operation Code (1Dh)                        |
  3922. -----|-----------------------------------------------------------------------|
  3923.  1   | Logical Unit Number      |   PF   |Reserved|SelfTest| DevOfL | UnitOfL|
  3924. -----|-----------------------------------------------------------------------|
  3925.  2   |                           Reserved                                    |
  3926. -----|-----------------------------------------------------------------------|
  3927.  3   | (MSB)                                                                 |
  3928. -----|---                        Parameter List Length                    ---|
  3929.  4   |                                                                 (LSB) |
  3930. -----|-----------------------------------------------------------------------|
  3931.  5   |                           Control                                     |
  3932. ==============================================================================
  3933.  
  3934.  
  3935. The SEND DIAGNOSTIC command (Table 7-42) requests the target to perform
  3936. diagnostic operations on itself, on the logical unit, or on both.  The only
  3937. mandatory implementation of this command is the self-test feature with the
  3938. parameter list length of zero.  Except when the self-test bit is one, this
  3939. command is usually followed by a RECEIVE DIAGNOSTIC RESULTS command.
  3940.  
  3941. A page format (PF) bit of one specifies that the SEND DIAGNOSTIC parameters
  3942. conform to the page structure as specified in this standard.  The
  3943. implementation of the PF bit is optional.  See 7.3.1 for the definition of
  3944. diagnostic pages.  A PF bit of zero indicates that the SEND DIAGNOSTIC
  3945. parameters are as specified in SCSI-1 (i.e., all parameters are vendor
  3946. specific).
  3947.  
  3948. A self-test (SelfTest) bit of one directs the target to complete its default
  3949. self-test.  If the self-test successfully passes, the command shall be
  3950. terminated with GOOD status; otherwise, the command shall be terminated with
  3951. CHECK CONDITION status and the sense key shall be set to HARDWARE ERROR.
  3952.  
  3953. A self-test bit of zero requests that the target perform the diagnostic
  3954.  
  3955.  
  3956.  
  3957.  
  3958.  
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964. SCSI-2 draft proposed American National Standard        7-65      Revision 10c65
  3965.  
  3966.  
  3967.  
  3968.  
  3969.  
  3970.  
  3971.  
  3972. All Device Types                                                        3/9/90
  3973.  
  3974. operation specified in the parameter list.  The diagnostic operation might or
  3975. might not require a target to return data which contains diagnostic results.
  3976. If the return of data is not required, the return of GOOD status indicates
  3977. successful completion of the diagnostic operation.  If the return of data is
  3978. required the target shall either:
  3979. (1) perform the requested diagnostic operation, prepare the data to be
  3980. returned and indicate completion by returning GOOD status.  The initiator
  3981. issues a RECEIVE DIAGNOSTIC RESULTS command to recover the data.
  3982. (2) accept the parameter list and if no errors are detected in the parameter
  3983. list return GOOD status.  The requested diagnostic operation and the
  3984. preparation of the data to be returned is performed upon receipt of a RECEIVE
  3985. DIAGNOSTIC RESULTS command.
  3986.  
  3987. IMPLEMENTORS NOTE:  To insure that the diagnostic command information is not
  3988. destroyed by a command sent from another initiator, the SEND DIAGNOSTIC
  3989. command should either be linked to the RECEIVE DIAGNOSTIC RESULTS command or
  3990. the logical unit should be reserved.
  3991.  
  3992. The device off-line (DevOfL) and unit off-line (UnitOfL) bits are generally
  3993. set by operating system software, while the parameter list is prepared by
  3994. diagnostic application software.  These bits grant permission to perform
  3995. vendor-specific diagnostic operations on the target which may be visible to
  3996. attached initiators.  Thus, by preventing operations that are not enabled by
  3997. these bits, the target assists the operating system in protecting its
  3998. resources.
  3999.  
  4000. A UnitOfL bit of one grants permission to the target to perform diagnostic
  4001. operations that may affect the user accessible medium on the logical unit,
  4002. e.g., write operations to the user accessible medium, or repositioning of the
  4003. medium on sequential access devices.  The implementation of the UnitOfl bit is
  4004. optional.  A UnitOfL bit of zero prohibits any diagnostic operations that may
  4005. be detected by subsequent I/O processes.
  4006.  
  4007. A DevOfl bit of one grants permission to the target to perform diagnostic
  4008. operations that may affect all the logical units on a target, e.g., alteration
  4009. of reservations, log parameters, or sense data. The implementation of the
  4010. DevOfl bit is optional.  A DevOfL bit of zero prohibits diagnostic operations
  4011. that may be detected by subsequent I/O processes.
  4012.  
  4013. The parameter list length field specifies the length in bytes of the parameter
  4014. list that shall be transferred from the initiator to the target.  A parameter
  4015. list length of zero indicates that no data shall be transferred. This
  4016. condition shall not be considered as an error.  If the specified parameter
  4017. list length results in the truncation of one or more pages (PF bit set to one)
  4018. the target shall return CHECK CONDITION status with a sense key of ILLEGAL
  4019. REQUEST and an additional sense code of INVALID FIELD IN CDB.
  4020.  
  4021. See the implementors note under the RECEIVE DIAGNOSTIC RESULTS command in
  4022. 7.2.13.
  4023.  
  4024.  
  4025. SCSI-2 draft proposed American National Standard        7-66      Revision 10c66
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033. All Device Types                                                        3/9/90
  4034.  
  4035.  
  4036. 7.2.16. TEST UNIT READY Command
  4037.  
  4038.  
  4039.                      Table 7-43: TEST UNIT READY Command
  4040.  
  4041. ==============================================================================
  4042.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  4043. Byte |        |        |        |        |        |        |        |        |
  4044. ==============================================================================
  4045.  0   |                           Operation Code (00h)                        |
  4046. -----|-----------------------------------------------------------------------|
  4047.  1   | Logical Unit Number      |                  Reserved                  |
  4048. -----|-----------------------------------------------------------------------|
  4049.  2   |                           Reserved                                    |
  4050. -----|-----------------------------------------------------------------------|
  4051.  3   |                           Reserved                                    |
  4052. -----|-----------------------------------------------------------------------|
  4053.  4   |                           Reserved                                    |
  4054. -----|-----------------------------------------------------------------------|
  4055.  5   |                           Control                                     |
  4056. ==============================================================================
  4057.  
  4058.  
  4059. The TEST UNIT READY command (Table 7-43) provides a means to check if the
  4060. logical unit is ready.  This is not a request for a self-test.  If the logical
  4061. unit would accept an appropriate medium-access command without returning CHECK
  4062. CONDITION status, this command shall return a GOOD status.  If the logical
  4063. unit cannot become operational or is in a state such that an initiator action
  4064. (e.g., START UNIT command) is required to make the unit ready the target shall
  4065. return CHECK CONDITION status with a sense key of NOT READY.
  4066.  
  4067. Table 7-44 defines the preferred responses to the TEST UNIT READY command.
  4068. Higher-priority responses (e.g., BUSY or RESERVATION CONFLICT) are also
  4069. permitted.
  4070.  
  4071.                Table 7-44: Preferred TEST UNIT READY Responses
  4072.  
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.  
  4080.  
  4081.  
  4082.  
  4083.  
  4084.  
  4085.  
  4086. SCSI-2 draft proposed American National Standard        7-67      Revision 10c67
  4087.  
  4088.  
  4089.  
  4090.  
  4091.  
  4092.  
  4093.  
  4094. All Device Types                                                        3/9/90
  4095.  
  4096.  
  4097. ==============================================================================
  4098. Status           Sense Key        Additional Sense Code and
  4099.                                   Additional Sense Code Qualifier
  4100. ---------------  ---------------  --------------------------------------------
  4101. GOOD             NO SENSE         NO ADDITIONAL SENSE INFORMATION or other
  4102.                                   valid additional sense code.
  4103. CHECK CONDITION  ILLEGAL REQUEST  LOGICAL UNIT NOT SUPPORTED
  4104. CHECK CONDITION  NOT READY        LOGICAL UNIT DOES NOT RESPOND TO SELECTION
  4105. CHECK CONDITION  NOT READY        MEDIUM NOT PRESENT
  4106. CHECK CONDITION  NOT READY        LOGICAL UNIT NOT READY, CAUSE NOT REPORTABLE
  4107. CHECK CONDITION  NOT READY        LOGICAL UNIT IS IN PROCESS OF BECOMING READY
  4108. CHECK CONDITION  NOT READY        LOGICAL UNIT NOT READY, INITIALIZING COMMAND
  4109.                                   REQUIRED
  4110. CHECK CONDITION  NOT READY        LOGICAL UNIT NOT READY, MANUAL INTERVENTION
  4111.                                   REQUIRED
  4112. CHECK CONDITION  NOT READY        LOGICAL UNIT NOT READY, FORMAT IN PROGRESS
  4113. ==============================================================================
  4114.  
  4115.  
  4116. 7.2.17. WRITE BUFFER Command
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.  
  4128.  
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.  
  4135.  
  4136.  
  4137.  
  4138.  
  4139.  
  4140.  
  4141.  
  4142.  
  4143.  
  4144.  
  4145.  
  4146.  
  4147. SCSI-2 draft proposed American National Standard        7-68      Revision 10c68
  4148.  
  4149.  
  4150.  
  4151.  
  4152.  
  4153.  
  4154.  
  4155. All Device Types                                                        3/9/90
  4156.  
  4157.  
  4158.  
  4159.                        Table 7-45: WRITE BUFFER Command
  4160.  
  4161. ==============================================================================
  4162.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  4163. Byte |        |        |        |        |        |        |        |        |
  4164. ==============================================================================
  4165.  0   |                           Operation Code (3Bh)                        |
  4166. -----|-----------------------------------------------------------------------|
  4167.  1   | Logical Unit Number      |     Reserved    |          Mode            |
  4168. -----|-----------------------------------------------------------------------|
  4169.  2   |                           Buffer ID                                   |
  4170. -----|-----------------------------------------------------------------------|
  4171.  3   | (MSB)                                                                 |
  4172. - - -|- -                        Buffer Offset                            - -|
  4173.  5   |                                                                 (LSB) |
  4174. -----|-----------------------------------------------------------------------|
  4175.  6   | (MSB)                                                                 |
  4176. - - -|- -                        Parameter List Length                    - -|
  4177.  8   |                                                                 (LSB) |
  4178. -----|-----------------------------------------------------------------------|
  4179.  9   |                           Control                                     |
  4180. ==============================================================================
  4181.  
  4182.  
  4183. The WRITE BUFFER command (Table 7-45) is used in conjunction with the READ
  4184. BUFFER command as a diagnostic for testing target memory and the SCSI bus
  4185. integrity.  Additional modes are provided for downloading microcode and for
  4186. downloading and saving microcode.
  4187.  
  4188. This command shall not alter any medium of the target when the data mode or
  4189. the combined header and data mode is specified.
  4190.  
  4191. The function of this command and the meaning of fields within the command
  4192. descriptor block depend on the contents of the mode field.  The mode field is
  4193. defined in Table 7-46.
  4194.  
  4195.                      Table 7-46: WRITE BUFFER Mode Field
  4196.  
  4197.            =======================================================
  4198.                                                    Implementation
  4199.            Mode   Description                      Requirements
  4200.            ----   ------------------------------   ---------------
  4201.            000b   Write combined header and data   Optional
  4202.            001b   Vendor specific                  Vendor specific
  4203.            010b   Write data                       Optional
  4204.            011b   Reserved                         Reserved
  4205.            100b   Download Microcode               Optional
  4206.            101b   Download Microcode and Save      Optional
  4207.  
  4208. SCSI-2 draft proposed American National Standard        7-69      Revision 10c69
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216. All Device Types                                                        3/9/90
  4217.  
  4218.            110b   Reserved                         Reserved
  4219.            111b   Reserved                         Reserved
  4220.            =======================================================
  4221.  
  4222.  
  4223. IMPLEMENTORS NOTE: Modes 000b and 001b are included for compatibility with CCS
  4224. products that were designed prior to the generation of this standard. These
  4225. products restrict the maximum transfer length to 65535 bytes.
  4226.  
  4227. 7.2.17.1. Combined Header and Data Mode (000b)
  4228. In this mode, data to be transferred is preceded by a four-byte header.  The
  4229. four-byte header consists of all reserved bytes.  The buffer ID and the buffer
  4230. offset fields shall be zero.  The parameter list length field specifies the
  4231. maximum number of bytes that shall be transferred during the DATA OUT phase.
  4232. This number includes four bytes of header, so the data length to be stored in
  4233. the target's buffer is parameter list length minus four.  The initiator should
  4234. attempt to ensure that the parameter list length is not greater than four plus
  4235. the available length that is returned in the header of the READ BUFFER command
  4236. (mode 00b).  If the parameter list length exceeds the available length plus
  4237. four, the target shall return CHECK CONDITION status and shall set the sense
  4238. key to ILLEGAL REQUEST.
  4239.  
  4240. 7.2.17.2. Vendor-Specific Mode (001b)
  4241. In this mode, the meaning of the buffer ID, buffer offset, and parameter list
  4242. length fields are not specified by this standard.
  4243.  
  4244. 7.2.17.3. Data Mode (010b)
  4245. In this mode, the DATA OUT phase contains buffer data.  The buffer ID field
  4246. identifies a specific buffer within the target.  The vendor assigns buffer ID
  4247. codes to buffers within the target.  Buffer ID zero shall be supported.  If
  4248. more than one buffer is supported, additional buffer ID codes shall be
  4249. assigned contiguously, beginning with one.  If an unsupported buffer ID code
  4250. is selected, the target shall return CHECK CONDITION status and shall set the
  4251. sense key to ILLEGAL REQUEST with an additional sense code of INVALID FIELD IN
  4252. CDB.
  4253.  
  4254. Data is written to the target buffer starting at the location specified by the
  4255. buffer offset.  The initiator should conform to the offset boundary
  4256. requirements returned in the READ BUFFER descriptor.  If the target is unable
  4257. to accept the specified buffer offset, it shall return CHECK CONDITION status
  4258. and it shall set the sense key to ILLEGAL REQUEST with an additional sense
  4259. code of INVALID FIELD IN CDB.
  4260.  
  4261. The parameter list length specifies the maximum number of bytes that shall be
  4262.  
  4263.  
  4264.  
  4265.  
  4266.  
  4267.  
  4268.  
  4269. SCSI-2 draft proposed American National Standard        7-70      Revision 10c70
  4270.  
  4271.  
  4272.  
  4273.  
  4274.  
  4275.  
  4276.  
  4277. All Device Types                                                        3/9/90
  4278.  
  4279. transferred during the DATA OUT phase to be stored in the specified buffer
  4280. beginning at the buffer offset.  The initiator should attempt to ensure that
  4281. the parameter list length plus the buffer offset does not exceed the capacity
  4282. of the specified buffer.  (The capacity of the buffer can be determined by the
  4283. buffer capacity field in the READ BUFFER descriptor.)  If the buffer offset
  4284. and parameter list length fields specify a transfer that would exceed the
  4285. buffer capacity, the target shall return CHECK CONDITION status and shall set
  4286. the sense key to ILLEGAL REQUEST with an additional sense code of INVALID
  4287. FIELD IN CDB.
  4288.  
  4289. 7.2.17.4. Download Microcode Mode (100b)
  4290. In this mode, vendor-specific microcode or control information shall be
  4291. transferred to the control memory space of the target.  After a power-cycle or
  4292. reset, the device operation shall revert to a vendor-specific condition.  The
  4293. meanings of the buffer ID, buffer offset, and parameter list length fields are
  4294. not specified by this standard and are not required to be zero-filled.  When
  4295. the microcode download has completed successfully the target shall generate a
  4296. unit attention condition for all initiators except the one that issued the
  4297. WRITE BUFFER command (see 6.9).  The additional sense code shall be set to
  4298. MICROCODE HAS BEEN CHANGED.
  4299.  
  4300. 7.2.17.5. Download Microcode and Save Mode (101b)
  4301. In this mode, vendor-specific microcode or control information shall be
  4302. transferred to the target and, if the WRITE BUFFER command is completed
  4303. successfully, also shall be saved in a non-volatile memory space
  4304. (semiconductor, disk, or other).  The downloaded code shall then be effective
  4305. after each power-cycle and reset until it is supplanted in another download
  4306. microcode and save operation.  The meanings of the buffer ID, buffer offset,
  4307. and parameter list length fields are not specified by this standard and are
  4308. not required to be zero-filled.  When the download microcode and save command
  4309. has completed successfully the target shall generate a unit attention
  4310. condition for all initiators except the one that issued the WRITE BUFFER
  4311. command.  When reporting the unit attention condition, the target shall set
  4312. the additional sense code to MICROCODE HAS BEEN CHANGED.
  4313.  
  4314.  
  4315. 7.3. Parameters for All Device Types
  4316.  
  4317. 7.3.1. Diagnostic Parameters
  4318.  
  4319. This section describes the diagnostic page structure and the diagnostic pages
  4320. that are applicable to all SCSI devices.  Pages specific to each device type
  4321. are described in the third subsection of each device-type section (i.e., 8.3,
  4322. 9.3, etc.).
  4323.  
  4324. A SEND DIAGNOSTIC command with a PF bit of one specifies that the SEND
  4325. DIAGNOSTIC parameter list consists of zero or more diagnostic pages and that
  4326. the data returned by the subsequent RECEIVE DIAGNOSTIC RESULTS command shall
  4327. use the diagnostic page format (Table 7-47) described in this standard.
  4328.  
  4329.  
  4330. SCSI-2 draft proposed American National Standard        7-71      Revision 10c71
  4331.  
  4332.  
  4333.  
  4334.  
  4335.  
  4336.  
  4337.  
  4338. All Device Types                                                        3/9/90
  4339.  
  4340. Each diagnostic page defines a function or operation that the target shall
  4341. perform.  The page contains a page header followed by the analysis data which
  4342. is formatted according to the page code specified in the previous SEND
  4343. DIAGNOSTIC command.
  4344.  
  4345. Targets that implement diagnostic pages are only required to accept a single
  4346. diagnostic page per command.
  4347.  
  4348.                       Table 7-47: Diagnostic Page Format
  4349.  
  4350. ==============================================================================
  4351.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  4352. Byte |        |        |        |        |        |        |        |        |
  4353. ==============================================================================
  4354.  0   |                           Page Code                                   |
  4355. -----|-----------------------------------------------------------------------|
  4356.  1   |                           Reserved                                    |
  4357. -----|-----------------------------------------------------------------------|
  4358.  2   | (MSB)                                                                 |
  4359. -----|---                        Page Length (n-3)                        ---|
  4360.  3   |                                                                 (LSB) |
  4361. -----|-----------------------------------------------------------------------|
  4362.  4   |                                                                       |
  4363. - - -|- -                        Diagnostic Parameters                    - -|
  4364.  n   |                                                                       |
  4365. ==============================================================================
  4366.  
  4367. The page code field identifies which diagnostic page is being sent or
  4368. returned.  The page codes are defined in Table 7-48.
  4369.  
  4370. The page length field specifies the length in bytes of the diagnostic
  4371. parameters which follow this field.  If the initiator sends a page length that
  4372. results in the truncation of any parameter, the target shall terminate the
  4373. command with CHECK CONDITION status.  The sense key shall be set to ILLEGAL
  4374. REQUEST with the additional sense code set to INVALID FIELD IN PARAMETER LIST.
  4375.  
  4376. The diagnostic parameters are defined for each page code.  The diagnostic
  4377. parameters within a page may be defined differently in a SEND DIAGNOSTIC
  4378. command than in a RECEIVE DIAGNOSTIC RESULTS command.
  4379.  
  4380.                       Table 7-48: Diagnostic Page Codes
  4381.  
  4382.  
  4383.  
  4384.  
  4385.  
  4386.  
  4387.  
  4388.  
  4389.  
  4390.  
  4391. SCSI-2 draft proposed American National Standard        7-72      Revision 10c72
  4392.  
  4393.  
  4394.  
  4395.  
  4396.  
  4397.  
  4398.  
  4399. All Device Types                                                        3/9/90
  4400.  
  4401.  
  4402. ==============================================================================
  4403.   Page Code    Description                                          Section
  4404. ------------------------------------------------------------------------------
  4405.      00h       Supported Diagnostics Pages                          7.3.1.1
  4406.   01h - 3Fh    Reserved (for all device type pages)
  4407.   40h - 7Fh    See specific device type for definition
  4408.   80h - FFh    Vendor specific pages
  4409. ==============================================================================
  4410.  
  4411. 7.3.1.1. Supported Diagnostic Pages
  4412. The supported diagnostics page (Table 7-49) returns the list of diagnostic
  4413. pages implemented by the target.  This page shall be implemented if the target
  4414. implements the page format option of the SEND DIAGNOSTIC and RECEIVE
  4415. DIAGNOSTIC RESULTS commands.
  4416.  
  4417.                     Table 7-49: Supported Diagnostic Pages
  4418.  
  4419. ==============================================================================
  4420.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  4421. Byte |        |        |        |        |        |        |        |        |
  4422. ==============================================================================
  4423.  0   |                           Page Code (00h)                             |
  4424. -----|-----------------------------------------------------------------------|
  4425.  1   |                           Reserved                                    |
  4426. -----|-----------------------------------------------------------------------|
  4427.  2   | (MSB)                                                                 |
  4428. -----|---                        Page Length (n-3)                        ---|
  4429.  3   |                                                                 (LSB) |
  4430. -----|-----------------------------------------------------------------------|
  4431.  4   |                                                                       |
  4432. - - -|- -                        Supported Page List                      - -|
  4433.  n   |                                                                       |
  4434. ==============================================================================
  4435.  
  4436. The definition of this page for the SEND DIAGNOSTIC command includes only the
  4437. first four bytes.  If the page length field is not zero, the target shall
  4438. terminate the SEND DIAGNOSTIC command with CHECK CONDITION status.  The sense
  4439. key shall be set to ILLEGAL REQUEST with an additional sense code of INVALID
  4440. FIELD IN PARAMETER LIST.  This page instructs the target to make available the
  4441. list of all supported diagnostic pages to be returned by a subsequent RECEIVE
  4442. DIAGNOSTIC RESULTS command.
  4443.  
  4444. The definition of this page for the RECEIVE DIAGNOSTIC RESULTS command
  4445. includes the list of diagnostic pages supported by the target.
  4446.  
  4447. The page length field specifies the length in bytes of the following supported
  4448. page list.
  4449.  
  4450. The supported page list field shall contain a list of all diagnostic page
  4451.  
  4452. SCSI-2 draft proposed American National Standard        7-73      Revision 10c73
  4453.  
  4454.  
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460. All Device Types                                                        3/9/90
  4461.  
  4462. codes implemented by the target in ascending order beginning with page code
  4463. 00h.
  4464.  
  4465. 7.3.2. Log Parameters
  4466.  
  4467. This section describes the log page structure and the log pages that are
  4468. applicable to all SCSI devices.  Pages specific to each device type are
  4469. described in the third subsection of each device-type section (i.e., 8.3.2,
  4470. 9.3.2, etc.).  The LOG SELECT command supports the ability to send zero or
  4471. more log pages.  The LOG SENSE command returns a single log page specified in
  4472. the page code field of the command descriptor block (see Table 7-21).
  4473.  
  4474. Each log page begins with a four-byte page header followed by zero or more
  4475. variable-length log parameters defined for that page.  The log page format is
  4476. defined in Table 7-50.
  4477.  
  4478.                          Table 7-50: Log Page Format
  4479.  
  4480. ==============================================================================
  4481.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  4482. Byte |        |        |        |        |        |        |        |        |
  4483. ==============================================================================
  4484.  0   |    Reserved     |            Page Code                                |
  4485. -----|-----------------------------------------------------------------------|
  4486.  1   |                              Reserved                                 |
  4487. -----|-----------------------------------------------------------------------|
  4488.  2   | (MSB)                                                                 |
  4489. -----|---                           Page Length (n-3)                     ---|
  4490.  3   |                                                                 (LSB) |
  4491. ==============================================================================
  4492.      |                         Log Parameters(s)                             |
  4493. ==============================================================================
  4494.  4 - |                              Log Parameter (First)                    |
  4495.  x+3 |                              (Length x)                               |
  4496. -----|-----------------------------------------------------------------------|
  4497.      |                                 .                                     |
  4498.      |                                 .                                     |
  4499.      |                                 .                                     |
  4500. -----|-----------------------------------------------------------------------|
  4501.  n-y |                              Log Parameter (Last)                     |
  4502.  n   |                              (Length y)                               |
  4503. ==============================================================================
  4504.  
  4505.  
  4506. The page code field identifies which log page is being transferred.
  4507.  
  4508.  
  4509.  
  4510.  
  4511.  
  4512.  
  4513. SCSI-2 draft proposed American National Standard        7-74      Revision 10c74
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521. All Device Types                                                        3/9/90
  4522.  
  4523.  
  4524. The page length field specifies the length in bytes of the following log
  4525. parameters.  If the initiator sends a page length that results in the
  4526. truncation of any parameter, the target shall terminate the command with CHECK
  4527. CONDITION status.  The sense key shall be set to ILLEGAL REQUEST with the
  4528. additional sense code set to INVALID FIELD IN PARAMETER LIST.
  4529.  
  4530. Most log pages contain one or more special data structures called log
  4531. parameters (see Table 7-51).  Log parameters may be data counters which record
  4532. a count of a particular event (or events) or log parameters may be list
  4533. parameters (strings) which contain a description of a particular event.
  4534.  
  4535.                           Table 7-51: Log Parameter
  4536.  
  4537. ==============================================================================
  4538.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  4539. Byte |        |        |        |        |        |        |        |        |
  4540. ==============================================================================
  4541.  0   | (MSB)                                                                 |
  4542. -----|---                        Parameter Code                           ---|
  4543.  1   |                                                                 (LSB) |
  4544. -----|-----------------------------------------------------------------------|
  4545.  2   |   DU   |   DS   |  TSD   |   ETC  |       TMC       |Reserved|  LP    |
  4546. -----|-----------------------------------------------------------------------|
  4547.  3   |                           Parameter Length (n-3)                      |
  4548. -----|-----------------------------------------------------------------------|
  4549.  4   |                                                                       |
  4550. - - -|- -                        Parameter Value                          - -|
  4551.  n   |                                                                       |
  4552. ==============================================================================
  4553.  
  4554.  
  4555. Each log parameter (Table 7-51) begins with a four-byte parameter header
  4556. followed by one or more bytes of parameter value data.
  4557.  
  4558. The parameter code field identifies which log parameter is being transferred
  4559. for that log page.
  4560.  
  4561. The DU, DS, TSD, ETC, TMC, and LP fields are collectively referred to as the
  4562. parameter control byte.  These fields are described below.
  4563.  
  4564. For cumulative log parameter values (indicated by the PC field of the LOG
  4565. SELECT and LOG SENSE command descriptor block), the disable update (DU) bit is
  4566. defined as follows:
  4567. (1) A zero value indicates that the target shall update the log parameter
  4568. value to reflect all events that should be noted by that parameter.
  4569. (2) A one value indicates that the target shall not update the log parameter
  4570. value except in response to a LOG SELECT command that specifies a new value
  4571. for the parameter.
  4572.  
  4573.  
  4574. SCSI-2 draft proposed American National Standard        7-75      Revision 10c75
  4575.  
  4576.  
  4577.  
  4578.  
  4579.  
  4580.  
  4581.  
  4582. All Device Types                                                        3/9/90
  4583.  
  4584. IMPLEMENTORS NOTE:  When updating cumulative log parameter values, a target
  4585. may use volatile memory to hold these values until a LOG SELECT or LOG SENSE
  4586. command is received with an SP bit of one (or a target-defined event occurs).
  4587. Thus the updated cumulative log parameter values may be lost if a power cycle
  4588. occurs.
  4589.  
  4590. The DU bit is not defined for threshold values (indicated by the PC field of
  4591. the LOG SENSE command descriptor block) nor for list parameters (indicated by
  4592. the LP bit).  The target shall ignore the value of any DU bits in a LOG SELECT
  4593. command.
  4594.  
  4595. A disable save (DS) bit of zero indicates that the target supports saving for
  4596. that log parameter.  The target shall save the current cumulative or the
  4597. current threshold parameter value (depending on the value in the PC field of
  4598. the command descriptor block) in response to a LOG SELECT or LOG SENSE command
  4599. with a SP bit of one.  A DS bit of one indicates that the target does not
  4600. support saving that log parameter in response to a LOG SELECT or LOG SENSE
  4601. command with a SP bit of one.
  4602.  
  4603. A target save disable (TSD) bit of zero indicates that the target provides a
  4604. target-defined method for saving log parameters.  This implicit saving
  4605. operation shall be done frequently enough to insure that the cumulative
  4606. parameter values retain statistical significance (i.e., across power cycles).
  4607. A TSD bit of one indicates that either the target does not provide a target-
  4608. defined method for saving log parameters or the target-defined method has been
  4609. disabled by the initiator.  If the initiator sets both the DS and the TSD bits
  4610. set to one, the target shall terminate the command with CHECK CONDITION
  4611. status.  The sense key shall be set to ILLEGAL REQUEST with the additional
  4612. sense code set to INVALID FIELD IN PARAMETER LIST.
  4613.  
  4614. An enable threshold comparison (ETC) bit of one indicates that a comparison to
  4615. the threshold value is performed whenever the cumulative value is updated.  An
  4616. ETC bit of zero indicates that a comparison is not performed.  The value of
  4617. the ETC bit is the same for cumulative and threshold parameters.
  4618.  
  4619. The threshold met criteria (TMC) field (Table 7-52) defines the basis for
  4620. comparison of the cumulative and threshold values.  The TMC field is valid
  4621. only if the ETC bit is one.  The value of the TMC field is the same for
  4622. cumulative and threshold parameters.
  4623.  
  4624. If the ETC bit is one and the result of the comparison is true, a unit
  4625. attention condition shall be generated for all initiators.  When reporting the
  4626. unit attention condition, the target shall set The sense key shall be set to
  4627. UNIT ATTENTION; the additional sense code shall be set to LOG EXCEPTION; and
  4628. the additional sense code qualifier set to THRESHOLD CONDITION MET.
  4629.  
  4630.  
  4631.  
  4632.  
  4633.  
  4634.  
  4635. SCSI-2 draft proposed American National Standard        7-76      Revision 10c76
  4636.  
  4637.  
  4638.  
  4639.  
  4640.  
  4641.  
  4642.  
  4643. All Device Types                                                        3/9/90
  4644.  
  4645.                       Table 7-52: Threshold Met Criteria
  4646.  
  4647.              ===================================================
  4648.              Code  Basis For Comparison
  4649.              ---   ---------------------------------------------
  4650.              00b   Every update of the cumulative value
  4651.              01b   Cumulative value     equal    threshold value
  4652.              10b   Cumulative value   not equal  threshold value
  4653.              11b   Cumulative value greater than threshold value
  4654.              ===================================================
  4655.  
  4656.  
  4657. The list parameter (LP) bit indicates the format of the log parameter.  If an
  4658. initiator attempts to set the value of the LP bit to a value other than the
  4659. one returned for the same parameter in the LOG SENSE command, the target shall
  4660. terminate the command with CHECK CONDITION status.  The sense key shall be set
  4661. to ILLEGAL REQUEST with the additional sense code set to INVALID FIELD IN
  4662. PARAMETER LIST.
  4663.  
  4664. An LP bit of zero indicates that the parameter is a data counter.  Data
  4665. counters are associated with one of more events.  The data counter is updated
  4666. whenever one of these events occurs by incrementing of the counter value
  4667. provided the DU bit is zero.  Each data counter has associated with it a
  4668. target-defined maximum value.  Upon reaching this maximum value, the data
  4669. counter shall not be incremented (i.e., it does not wrap).  When a data
  4670. counter reaches its maximum value, the target shall set the associated DU bit
  4671. to one.  If the data counter is at or reaches its maximum value during the
  4672. execution of a command, the target shall complete the command.  If the command
  4673. completes correctly (except for the data counter being at its maximum value)
  4674. and if the RLEC bit of the control mode page (7.3.3.1) is set to one, then the
  4675. target shall terminate the command with CHECK CONDITION status and set the
  4676. sense key to RECOVERED ERROR with the additional sense code set to LOG COUNTER
  4677. AT MAXIMUM.
  4678.  
  4679. An LP bit of one indicates that the parameter is a list parameter.  List
  4680. parameters are not counters and thus the ET and TMC fields shall be set to
  4681. zero.  A list parameter is a string of ASCII graphic codes (i.e., code values
  4682. 20h through 7Eh).
  4683.  
  4684. If more than one list parameter is defined in a single log page, the following
  4685. rules apply to assigning parameter codes:
  4686. (1) The parameter updated last shall have a higher parameter code than the
  4687. previous parameter, except as defined in rule (2).
  4688. (2) When the maximum parameter code value supported by the target is reached,
  4689. the target shall assign the lowest parameter code value to the next log
  4690. parameter (i.e., wrap-around parameter codes).  If the associated command
  4691. completes correctly (except for the parameter code being at its maximum value)
  4692. and if the RLEC bit of the control mode page (7.3.3.1) is set to one, then the
  4693. target shall terminate the command with CHECK CONDITION status and set the
  4694. sense key to RECOVERED ERROR with the additional sense code set to LOG LIST
  4695.  
  4696. SCSI-2 draft proposed American National Standard        7-77      Revision 10c77
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702.  
  4703.  
  4704. All Device Types                                                        3/9/90
  4705.  
  4706. CODES EXHAUSTED.
  4707.  
  4708. IMPLEMENTORS NOTE:  List parameters can be used to store the locations of
  4709. defective blocks in the following manner.  When a defective block is
  4710. identified, a list parameter is updated to reflect the location and cause of
  4711. the defect.  When the next defect is encountered, the list parameter with the
  4712. next higher parameter code is updated to record this defect.  The size of the
  4713. page can be made target specific to accommodate memory limitations.  It is
  4714. recommended that one or more data counter parameters be defined for the page
  4715. to keep track of the number of valid list parameters and the parameter code of
  4716. the parameter with the oldest recorded defect.  This technique can be adapted
  4717. to record other types of information.
  4718.  
  4719. The parameter length field specifies the length in bytes of the following
  4720. parameter value.  If the initiator sends a parameter length value that results
  4721. in the truncation of the parameter value, the target shall terminate the
  4722. command with CHECK CONDITION status.  The sense key shall be set to ILLEGAL
  4723. REQUEST with the additional sense code set to INVALID FIELD IN PARAMETER LIST.
  4724.  
  4725. If the initiator sends a log parameter value that is outside the range
  4726. supported by the target and rounding is implemented for that parameter, the
  4727. target may either:
  4728. (1) round to an acceptable value and terminate the command as described in
  4729. 6.5.4.
  4730. (2) terminate the command with CHECK CONDITION status, set the sense key to
  4731. ILLEGAL REQUEST with the additional sense code set to INVALID FIELD IN
  4732. PARAMETER LIST.
  4733.  
  4734. When any counter in a log page reaches its maximum value, incrementing of all
  4735. counters in that log page shall cease until re-initialized by the initiator
  4736. via a LOG SELECT command.  If the RLEC bit of the control mode page is one,
  4737. then the target shall report the exception condition as described in 7.3.3.1.
  4738.  
  4739. The page code assignments for the log pages are listed in Table 7-53.
  4740.  
  4741.                           Table 7-53: Log Page Codes
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757. SCSI-2 draft proposed American National Standard        7-78      Revision 10c78
  4758.  
  4759.  
  4760.  
  4761.  
  4762.  
  4763.  
  4764.  
  4765. All Device Types                                                        3/9/90
  4766.  
  4767.  
  4768. ==============================================================================
  4769.   Page Code    Description                                          Section
  4770. ------------------------------------------------------------------------------
  4771.      01h       Buffer Over-Run/Under-Run Page                       7.3.2.1
  4772.      03h       Error Counter Page (Read) Page                       7.3.2.2
  4773.      04h       Error Counter Page (Read Reverse) Page               7.3.2.2
  4774.      05h       Error Counter Page (Verify) Page                     7.3.2.2
  4775.      02h       Error Counter Page (Write) Page                      7.3.2.2
  4776.      07h       Last n Error Events Page                             7.3.2.3
  4777.      06h       Non-Medium Error Page                                7.3.2.4
  4778.      00h       Supported Log Pages                                  7.3.2.5
  4779.   08h - 2Fh    Reserved
  4780.      3Fh       Reserved
  4781.   30h - 3Eh    Vendor Specific
  4782. ==============================================================================
  4783.  
  4784.  
  4785. 7.3.2.1. Buffer Over-Run/Under-Run Page
  4786. The buffer over-run/under-run page (page code 01h) defines 24 data counters
  4787. that may be used to record the number of buffer over-runs or under-runs for
  4788. the logical unit.  A target that implements this page may implement one or
  4789. more of the defined data counters.
  4790.  
  4791. A buffer over-run or under-run can occur when an initiator does not transmit
  4792. data to or from the target's buffer fast enough to keep up with reading or
  4793. writing the media.  This can be caused by a slow transfer rate across the SCSI
  4794. bus or by a high SCSI bus utilization that prevents reconnection by the
  4795. target.  A buffer over-run condition can occur during a read operation when a
  4796. buffer full condition prevents continued transfer of data from the media to
  4797. the buffer.  A buffer under-run condition can occur during a write operation
  4798. when a buffer empty condition prevents continued transfer of data to the media
  4799. from the buffer.  Most devices incur a delay at this point while the media is
  4800. repositioned.
  4801.  
  4802. Table 7-54 defines the parameter code field for the buffer over-run/under- run
  4803. counters.
  4804.  
  4805.    Table 7-54: Parameter Code Field for Buffer Over-Run/Under-Run Counters
  4806.  
  4807.  
  4808.  
  4809.  
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816.  
  4817.  
  4818. SCSI-2 draft proposed American National Standard        7-79      Revision 10c79
  4819.  
  4820.  
  4821.  
  4822.  
  4823.  
  4824.  
  4825.  
  4826. All Device Types                                                        3/9/90
  4827.  
  4828.  
  4829. ==============================================================================
  4830.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  4831. Byte |        |        |        |        |        |        |        |        |
  4832. ==============================================================================
  4833.  0   |                          Reserved                                     |
  4834. -----|-----------------------------------------------------------------------|
  4835.  1   |      Count Basis         |               Cause               |  Type  |
  4836. ==============================================================================
  4837.  
  4838.  
  4839. The parameter code field for buffer over-run/under-run counters is a 16-bit
  4840. value comprised of eight reserved bits, a three-bit count basis field (Table
  4841. 7-55), a four-bit cause field (Table 7-56), and a one-bit type field.  These
  4842. are concatenated to determine the value of the parameter code for that log
  4843. parameter.  For example, a parameter code value of 0023h specifies a count
  4844. basis of 001b, a cause of 0001b, and a type of 1b which is a counter that is
  4845. incremented once per command that experiences an over-run due to the SCSI bus
  4846. being busy.
  4847.  
  4848. The count basis field defines the criteria for incrementing the counter.  The
  4849. following criteria are defined:
  4850.  
  4851.                       Table 7-55: Count Basis Definition
  4852.  
  4853.                     ================================================
  4854.                     Count Basis  Description
  4855.                     -----------  -----------------------------------
  4856.                        000b      Undefined
  4857.                        001b      Per Command
  4858.                        010b      Per Failed Reconnect
  4859.                        011b      Per Unit of Time
  4860.                     100b-111b    Reserved
  4861.                     ================================================
  4862.  
  4863. IMPLEMENTORS NOTE:  The per unit of time count basis is device type specific.
  4864. Direct-access devices typically use a latency period (i.e., one revolution of
  4865. the medium) as the unit of time.
  4866.  
  4867. The cause field indicates the reason that the over-run or under-run occurred.
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879. SCSI-2 draft proposed American National Standard        7-80      Revision 10c80
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887. All Device Types                                                        3/9/90
  4888.  
  4889. The following causes are defined:
  4890.  
  4891.                       Table 7-56: Cause Field Definition
  4892.  
  4893.                     =================================
  4894.                      Cause     Description
  4895.                     -------    ----------------------
  4896.                        0h      Undefined
  4897.                        1h      SCSI Bus Busy
  4898.                        2h      Transfer Rate Too Slow
  4899.                      3h-Fh     Reserved
  4900.                     =================================
  4901.  
  4902.  
  4903. The type field indicates whether the counter records under-runs or over- runs.
  4904. A value of zero specifies a buffer under-run condition and a value of one
  4905. specifies a buffer over-run condition.
  4906.  
  4907. The counters contain the total number of times buffer over-run or under- run
  4908. conditions have occurred since the last time the counter was cleared.  The
  4909. counter shall be incremented for each occurrence of an under-run or over-run
  4910. condition and can be incremented more than once for multiple occurrences
  4911. during the execution of a single command.
  4912.  
  4913. 7.3.2.2. Error Counter Pages
  4914. This section defines the optional error counter pages for write errors (page
  4915. code 02h), read errors (page code 03h), read reverse errors (page code 04h)
  4916. and verify errors (page code 05h).  Table 7-50 defines the page format for
  4917. these pages.  A page can return one or more log parameters which record events
  4918. defined by the parameter codes (Table 7-57).
  4919.  
  4920. Table 7-57 defines the parameter codes for the error counter pages.  Support
  4921.  
  4922.  
  4923.  
  4924.  
  4925.  
  4926.  
  4927.  
  4928.  
  4929.  
  4930.  
  4931.  
  4932.  
  4933.  
  4934.  
  4935.  
  4936.  
  4937.  
  4938.  
  4939.  
  4940. SCSI-2 draft proposed American National Standard        7-81      Revision 10c81
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948. All Device Types                                                        3/9/90
  4949.  
  4950. of each log parameter is optional.
  4951.  
  4952.              Table 7-57: Parameter Codes for Error Counter Pages
  4953.  
  4954.             ======================================================
  4955.             Parameter
  4956.               Code      Description
  4957.             ----------  ------------------------------------------
  4958.               0000h     Errors corrected without substantial delay
  4959.               0001h     Errors corrected with possible delays
  4960.               0002h     Total (e.g., re-writes or re-reads)
  4961.               0003h     Total errors corrected
  4962.               0004h     Total times correction algorithm processed
  4963.               0005h     Total bytes processed
  4964.               0006h     Total uncorrected errors
  4965.             0007-7FFFh  Reserved
  4966.             8000-FFFFh  Vendor specific
  4967.             ======================================================
  4968.  
  4969.  
  4970. IMPLEMENTORS NOTE:  The exact definition of the error counters is not part of
  4971. this standard.  These counters should not be used to compare products because
  4972. the products may define errors differently.
  4973.  
  4974. 7.3.2.3. Last n Error Events Page
  4975. Log page (07h) provides for a number of error-event records using the list
  4976. parameter format of the log page.  The number of these error-event records
  4977. supported, n, is device-specific.  Each error-event record contains device-
  4978. specific diagnostic information for a single error encountered by the device.
  4979. The parameter code associated with error-event record indicates the relative
  4980. time at which the error occurred.  A higher parameter code indicates that the
  4981. error event occurred later in time.
  4982.  
  4983. The content of the parameter value field of each log parameter is an ASCII
  4984. character string which may describe the error event.  The exact contents of
  4985. the character string is not defined by this standard.
  4986.  
  4987. When the last supported parameter code is used by an error-event record, the
  4988. recording on this page of all subsequent error information shall cease until
  4989. one or more of the list parameters with the highest parameter codes have been
  4990. re-initialized.  If the RLEC bit of the common mode (7.3.3.1) is set to one,
  4991. the target shall return CHECK CONDITION status with the sense key set to
  4992. RECOVERED ERROR and the additional sense code set to LOG LIST CODES EXHAUSTED.
  4993. Alternatively, the target may report this condition via asynchronous event
  4994. notification (see 6.5.5).
  4995.  
  4996. 7.3.2.4. Non-Medium Error Page
  4997.  
  4998.  
  4999.  
  5000.  
  5001. SCSI-2 draft proposed American National Standard        7-82      Revision 10c82
  5002.  
  5003.  
  5004.  
  5005.  
  5006.  
  5007.  
  5008.  
  5009. All Device Types                                                        3/9/90
  5010.  
  5011. This page (page code 06h) provides for summing the occurrences of recoverable
  5012. error events other than write, read, or verify failures.  No discrimination
  5013. among the various types of events is provided by parameter code (Table 7-58).
  5014. Vendor-specific discrimination may be provided through the vendor-specific
  5015. parameter codes.
  5016.  
  5017.               Table 7-58: Non-Medium Error Event Parameter Codes
  5018.  
  5019.                 ==============================================
  5020.                 Parameter Code  Description
  5021.                 --------------  ------------------------------
  5022.                     0000h       Non-Medium Error Count
  5023.                 0001h - 7FFFh   Reserved
  5024.                 8000h - FFFFh   Vendor-Specific Error Counts
  5025.                 ==============================================
  5026.  
  5027.  
  5028. 7.3.2.5. Supported Log Pages
  5029. The supported log page (Table 7-59) returns the list of log pages implemented
  5030. by the target.  Targets that implement the LOG SENSE command shall implement
  5031. this log page.
  5032.  
  5033.                        Table 7-59: Supported Log Pages
  5034.  
  5035. ==============================================================================
  5036.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5037. Byte |        |        |        |        |        |        |        |        |
  5038. ==============================================================================
  5039.  0   |    Reserved     |        Page Code (00h)                              |
  5040. -----|-----------------------------------------------------------------------|
  5041.  1   |                          Reserved                                     |
  5042. -----|-----------------------------------------------------------------------|
  5043.  2   | (MSB)                                                                 |
  5044. -----|---                       Page Length (n-3)                         ---|
  5045.  3   |                                                                 (LSB) |
  5046. -----|-----------------------------------------------------------------------|
  5047.  4   |                                                                       |
  5048. - - -|- -                       Supported Page List                       - -|
  5049.  n   |                                                                       |
  5050. ==============================================================================
  5051.  
  5052.  
  5053. This page is not defined for the LOG SELECT command.  This log page returns
  5054. the list of supported log pages for the specified logical unit.
  5055.  
  5056. The page length field specifies the length in bytes of the following supported
  5057. page list.
  5058.  
  5059. The supported page list field shall contain a list of all log page codes
  5060. implemented by the target in ascending order beginning with page code 00h.
  5061.  
  5062. SCSI-2 draft proposed American National Standard        7-83      Revision 10c83
  5063.  
  5064.  
  5065.  
  5066.  
  5067.  
  5068.  
  5069.  
  5070. All Device Types                                                        3/9/90
  5071.  
  5072.  
  5073. 7.3.3. Mode Parameters
  5074.  
  5075. This section describes the block descriptors and the pages used with MODE
  5076. SELECT and MODE SENSE commands that are applicable to all SCSI devices.  Pages
  5077. specific to each device type are described in the third subsection of each
  5078. device-type section (i.e., 8.3, 9.3, etc.).
  5079.  
  5080. The mode parameter list shown in Table 7-60 contains a header, followed by
  5081. zero or more block descriptors, followed by zero or more variable-length
  5082. pages.  Parameter lists are defined for each device type.
  5083.  
  5084.                        Table 7-60: Mode Parameter List
  5085.  
  5086. ==============================================================================
  5087.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5088. Byte |        |        |        |        |        |        |        |        |
  5089. ==============================================================================
  5090. 0 - n|                        Mode Parameter Header                          |
  5091. ==============================================================================
  5092. 0 - n|                        Block Descriptor(s)                            |
  5093. ==============================================================================
  5094. 0 - n|                        Page(s)                                        |
  5095. ==============================================================================
  5096.  
  5097.  
  5098. The six-byte command descriptor block parameter header is defined in Table
  5099. 7-61.  The ten-byte command descriptor block parameter header is defined in
  5100. Table 7-62.
  5101.  
  5102.                      Table 7-61: Mode Parameter Header(6)
  5103.  
  5104. ==============================================================================
  5105.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5106. Byte |        |        |        |        |        |        |        |        |
  5107. ==============================================================================
  5108.  0   |                           Mode Data Length                            |
  5109. -----|-----------------------------------------------------------------------|
  5110.  1   |                           Medium Type                                 |
  5111. -----|-----------------------------------------------------------------------|
  5112.  2   |                           Device-Specific Parameter                   |
  5113. -----|-----------------------------------------------------------------------|
  5114.  3   |                           Block Descriptor Length                     |
  5115. ==============================================================================
  5116.  
  5117.                     Table 7-62: Mode Parameter Header(10)
  5118.  
  5119.  
  5120.  
  5121.  
  5122.  
  5123. SCSI-2 draft proposed American National Standard        7-84      Revision 10c84
  5124.  
  5125.  
  5126.  
  5127.  
  5128.  
  5129.  
  5130.  
  5131. All Device Types                                                        3/9/90
  5132.  
  5133.  
  5134. ==============================================================================
  5135.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5136. Byte |        |        |        |        |        |        |        |        |
  5137. ==============================================================================
  5138.  0   | (MSB)                                                                 |
  5139. -----|---                        Mode Data Length                         ---|
  5140.  1   |                                                                 (LSB) |
  5141. -----|-----------------------------------------------------------------------|
  5142.  2   |                           Medium Type                                 |
  5143. -----|-----------------------------------------------------------------------|
  5144.  3   |                           Device-Specific Parameter                   |
  5145. -----|-----------------------------------------------------------------------|
  5146.  4   |                           Reserved                                    |
  5147. -----|-----------------------------------------------------------------------|
  5148.  5   |                           Reserved                                    |
  5149. -----|-----------------------------------------------------------------------|
  5150.  6   | (MSB)                                                                 |
  5151. -----|---                        Block Descriptor Length                  ---|
  5152.  7   |                                                                 (LSB) |
  5153. ==============================================================================
  5154.  
  5155.  
  5156. When using the MODE SENSE command, the mode data length field specifies the
  5157. length in bytes of the following data that is available to be transferred.
  5158. The mode data length does not include itself.  When using the MODE SELECT
  5159. command, this field is reserved.
  5160.  
  5161. IMPLEMENTORS NOTE:  Targets that support more than 256 bytes of block
  5162. descriptors and pages may need to implement ten-byte mode commands.  The mode
  5163. data length field in the six-byte command descriptor block header limits the
  5164. returned data to 256 bytes.
  5165.  
  5166. Medium types are unique for each device type.  Refer to the mode parameters
  5167. section of the specific device type for definition of these values.  Some
  5168. device types reserve this field.
  5169.  
  5170. The device specific parameter is unique for each device type.  Refer to the
  5171. mode parameters section of the specific device type for definition of this
  5172. field.  Some device types reserve all or part of this field.
  5173.  
  5174. The block descriptor length specifies the length in bytes of all the block
  5175. descriptors.  It is equal to the number of block descriptors times eight and
  5176. does not include pages or vendor-specific parameters, if any, that may follow
  5177. the last block descriptor.  A block descriptor length of zero indicates that
  5178. no block descriptors are included in the mode parameter list.  This condition
  5179. shall not be considered an error.
  5180.  
  5181. The mode parameter block descriptor is shown in Table 7-63.
  5182.  
  5183.  
  5184. SCSI-2 draft proposed American National Standard        7-85      Revision 10c85
  5185.  
  5186.  
  5187.  
  5188.  
  5189.  
  5190.  
  5191.  
  5192. All Device Types                                                        3/9/90
  5193.  
  5194.                  Table 7-63: Mode Parameter Block Descriptor
  5195.  
  5196. ==============================================================================
  5197.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5198. Byte |        |        |        |        |        |        |        |        |
  5199. ==============================================================================
  5200.  0   |                           Density Code                                |
  5201. -----|-----------------------------------------------------------------------|
  5202.  1   | (MSB)                                                                 |
  5203. -----|---                                                                 ---|
  5204.  2   |                           Number of Blocks                            |
  5205. -----|---                                                                 ---|
  5206.  3   |                                                                 (LSB) |
  5207. -----|-----------------------------------------------------------------------|
  5208.  4   |                           Reserved                                    |
  5209. -----|-----------------------------------------------------------------------|
  5210.  5   | (MSB)                                                                 |
  5211. -----|---                                                                 ---|
  5212.  6   |                           Block Length                                |
  5213. -----|---                                                                 ---|
  5214.  7   |                                                                 (LSB) |
  5215. ==============================================================================
  5216.  
  5217.  
  5218. Block descriptors specify some of the medium characteristics for all or part
  5219. of a logical unit.  Support for block descriptors is optional.  Each block
  5220. descriptor contains a density code field, a number of blocks field, and a
  5221. block length field.  Block descriptor values are always current (i.e., saving
  5222. is not supported).  A unit attention condition (see 6.9) shall be generated
  5223. when any block descriptor values are changed.
  5224.  
  5225. The density code field is unique for each device type. Refer to the mode
  5226. parameters section of the specific device type for definition of this field.
  5227. Some device types reserve all or part of this field.
  5228.  
  5229. The number of blocks field specifies the number of logical blocks on the
  5230. medium to which the density code and block length fields apply.  A value of
  5231. zero indicates that all of the remaining logical blocks of the logical unit
  5232. shall have the medium characteristics specified.
  5233.  
  5234. IMPLEMENTORS NOTES:
  5235.  
  5236.  
  5237.  
  5238.  
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245. SCSI-2 draft proposed American National Standard        7-86      Revision 10c86
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253. All Device Types                                                        3/9/90
  5254.  
  5255. (1) There may be implicit association between parameters defined in the pages
  5256. and block descriptors.  For direct-access devices, the block length affects
  5257. the optimum values (the values that achieve best performance) for the sectors
  5258. per track, bytes per physical sector, track skew factor, and cylinder skew
  5259. factor fields in the format parameters page.  In this case, the target may
  5260. change parameters not explicitly sent with the MODE SELECT command.  A
  5261. subsequent MODE SENSE command would reflect these changes.
  5262. (2) The number of remaining logical blocks may be unknown for some device
  5263. types.
  5264.  
  5265. The block length specifies the length in bytes of each logical block described
  5266. by the block descriptor.  For sequential-access devices, a block length of
  5267. zero indicates that the logical block size written to the medium is specified
  5268. by the transfer length field in the command descriptor block (see 9.2.5 and
  5269. 9.2.15)
  5270.  
  5271. The mode page format is defined in Table 7-64.
  5272.  
  5273.                          Table 7-64: Mode Page Format
  5274.  
  5275. ==============================================================================
  5276.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5277. Byte |        |        |        |        |        |        |        |        |
  5278. ==============================================================================
  5279.  0   |   PS   |Reserved|         Page Code                                   |
  5280. -----|-----------------------------------------------------------------------|
  5281.  1   |                           Page Length                                 |
  5282. -----|-----------------------------------------------------------------------|
  5283. 2 - n|                           Mode Parameters                             |
  5284. ==============================================================================
  5285.  
  5286.  
  5287. Each mode page contains a page code, a page length, and a set of mode
  5288. parameters.  The page codes are defined in Table 7-65 and in the mode
  5289. parameter sub-sections of the specific device type.
  5290.  
  5291. When using the MODE SENSE command, a parameters savable (PS) bit of one
  5292. indicates that the mode page can be saved by the target in a non-volatile,
  5293. vendor-specific location.  A PS bit of zero indicates that the supported
  5294. parameters cannot be saved.  When using the MODE SELECT command, the PS bit is
  5295. reserved.
  5296.  
  5297. The page code field identifies the format and parameters defined for that mode
  5298. page.  Some page codes are defined as applying to all device types (Table
  5299. 7-65) and other page codes are defined for the specific device type.
  5300.  
  5301. When using the MODE SENSE command, if page code 00h (vendor-specific page) is
  5302. implemented, the target shall return that page last in response to a request
  5303. to return all pages (page code 3Fh).  When using the MODE SELECT command, this
  5304. page should be sent last.
  5305.  
  5306. SCSI-2 draft proposed American National Standard        7-87      Revision 10c87
  5307.  
  5308.  
  5309.  
  5310.  
  5311.  
  5312.  
  5313.  
  5314. All Device Types                                                        3/9/90
  5315.  
  5316.  
  5317. The page length field specifies the length in bytes of the mode parameters
  5318. that follow.  If the initiator does not set this value to the value that is
  5319. returned for the page by the MODE SENSE command, the target shall terminate
  5320. the command with CHECK CONDITION status.  The sense key shall be set to to
  5321. ILLEGAL REQUEST with the additional sense code set to INVALID FIELD IN
  5322. PARAMETER LIST.  The target is permitted to implement a mode page that is less
  5323. than the full page length defined by this standard, provided no field is
  5324. truncated and the page length field correctly specifies the actual length
  5325. implemented.
  5326.  
  5327. The mode parameters for each page are defined in the following sub-sections or
  5328. in the mode parameters sub-section for the specific device type.  Mode
  5329. parameters not implemented by the target shall be set to zero.
  5330.  
  5331. Table 7-65 defines the mode pages that are applicable to all device types that
  5332. include the MODE SELECT and MODE SENSE commands.
  5333.  
  5334.                          Table 7-65: Mode Page Codes
  5335.  
  5336. ==============================================================================
  5337.   Page Code   Description                                           Section
  5338. ------------------------------------------------------------------------------
  5339.      0Ah      Control Mode Page                                     7.3.3.1
  5340.      02h      Disconnect-Reconnect Page                             7.3.3.2
  5341.      09h      Peripheral Device Page                                7.3.3.3
  5342.      01h      (See specific device type)
  5343.   03h - 08h   (See specific device type)
  5344.   0Bh - 1Fh   (See specific device type)
  5345.      00h      Vendor specific (does not require page format)
  5346.   20h - 3Eh   Vendor specific (page format required)
  5347.      3Fh      Return all pages (valid only for the MODE SENSE command)
  5348. ==============================================================================
  5349.  
  5350.  
  5351. 7.3.3.1. Control Mode Page
  5352.  
  5353.  
  5354.  
  5355.  
  5356.  
  5357.  
  5358.  
  5359.  
  5360.  
  5361.  
  5362.  
  5363.  
  5364.  
  5365.  
  5366.  
  5367. SCSI-2 draft proposed American National Standard        7-88      Revision 10c88
  5368.  
  5369.  
  5370.  
  5371.  
  5372.  
  5373.  
  5374.  
  5375. All Device Types                                                        3/9/90
  5376.  
  5377.  
  5378.                         Table 7-66: Control Mode Page
  5379.  
  5380. ==============================================================================
  5381.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5382. Byte |        |        |        |        |        |        |        |        |
  5383. ==============================================================================
  5384.  0   |   PS   |Reserved|         Page Code (0Ah)                             |
  5385. -----|-----------------------------------------------------------------------|
  5386.  1   |                           Page Length (06h)                           |
  5387. -----|-----------------------------------------------------------------------|
  5388.  2   |                           Reserved                           |  RLEC  |
  5389. -----|-----------------------------------------------------------------------|
  5390.  3   |     Queue Algorithm Modifier      |    Reserved     |  QErr  |  DQue  |
  5391. -----|-----------------------------------------------------------------------|
  5392.  4   |  EECA  |              Reserved             | RAENP  | UAAENP | EAENP  |
  5393. -----|-----------------------------------------------------------------------|
  5394.  5   |                           Reserved                                    |
  5395. -----|-----------------------------------------------------------------------|
  5396.  6   |                                                                       |
  5397. -----|---                        Ready AEN Holdoff Period                 ---|
  5398.  7   |                                                                       |
  5399. ==============================================================================
  5400.  
  5401.  
  5402. The control mode page (Table 7-66) provides controls over several SCSI-2
  5403. features which are applicable to all device types such as tagged queuing,
  5404. extended contingent allegiance, asynchronous event notification, and error
  5405. logging.
  5406.  
  5407. A report log exception condition (RLEC) bit of one specifies that the target
  5408. shall report log exception conditions as described in 7.3.2.  A RLEC bit of
  5409. zero specifies that the target shall not report log exception conditions.
  5410.  
  5411. The queue algorithm modifier field (Table 7-67) specifies restrictions on the
  5412. algorithm used for re-ordering commands that are tagged with the SIMPLE QUEUE
  5413. TAG message.
  5414.  
  5415.                      Table 7-67: Queue Algorithm Modifier
  5416.  
  5417.  
  5418.  
  5419.  
  5420.  
  5421.  
  5422.  
  5423.  
  5424.  
  5425.  
  5426.  
  5427.  
  5428. SCSI-2 draft proposed American National Standard        7-89      Revision 10c89
  5429.  
  5430.  
  5431.  
  5432.  
  5433.  
  5434.  
  5435.  
  5436. All Device Types                                                        3/9/90
  5437.  
  5438.  
  5439.                ===============================================
  5440.                Value          Definition
  5441.                -------        --------------------------------
  5442.                  0h           Restricted re-ordering
  5443.                  1h           Unrestricted re-ordering allowed
  5444.                2h - 7h        Reserved
  5445.                8h - Fh        Vendor specific
  5446.                ===============================================
  5447.  
  5448. A value of zero in this field specifies that the target shall order the actual
  5449. execution sequence of the queued commands from each initiator such that data
  5450. integrity is maintained for that initiator.  This means that, if the
  5451. transmission of new commands was halted at any time, the final value of all
  5452. data observable on the medium shall have exactly the same value as it would
  5453. have if the commands had been executed in the same received sequence without
  5454. tagged queuing.  The restricted reordering value shall be the default value.
  5455.  
  5456. A value of one in this field specifies that the target may re-order the actual
  5457. execution sequence of the queued commands in any manner it selects.  Any data
  5458. integrity exposures related to command sequence order are explicitly handled
  5459. by the initiator through the selection of appropriate commands and queue tag
  5460. messages.
  5461.  
  5462. A queue error management (QErr) bit of zero specifies that those commands
  5463. still queued after the target has entered the contingent allegiance or
  5464. extended contingent allegiance conditions shall continue execution in a normal
  5465. manner when that condition has terminated (see 6.8).  A QErr bit of one
  5466. specifies that those commands still queued after the target has entered the
  5467. contingent allegiance or extended contingent allegiance conditions shall be
  5468. aborted when that condition has terminated.  A unit attention condition shall
  5469. be generated for each initiator which had commands in the queue except the
  5470. initiator that received the original INITIATE RECOVERY message.  When
  5471. reporting the unit attention condition, the target shall set the additional
  5472. sense code to TAGGED COMMANDS CLEARED BY ANOTHER INITIATOR.
  5473.  
  5474. A disable queuing (DQue) bit of zero specifies that tagged queuing shall be
  5475. enabled if the target supports tagged queuing.  A DQue bit of one specifies
  5476. that tagged queuing shall be disabled.  Any queued commands for that I_T_x
  5477. nexus shall be aborted.  Any subsequent queue tag message received shall be
  5478. rejected with a MESSAGE REJECT message and the I/O process shall be executed
  5479. as an untagged command (see 6.8.1).
  5480.  
  5481. An enable extended contingent allegiance (EECA) bit of one specifies that
  5482. extended contingent allegiance is enabled (see 6.7).  An EECA bit of zero
  5483. specifies that extended contingent allegiance is disabled.
  5484.  
  5485. The RAENP, UAAENP, and EAENP bits enable specific events to be reported via
  5486.  
  5487.  
  5488.  
  5489. SCSI-2 draft proposed American National Standard        7-90      Revision 10c90
  5490.  
  5491.  
  5492.  
  5493.  
  5494.  
  5495.  
  5496.  
  5497. All Device Types                                                        3/9/90
  5498.  
  5499. the asynchronous event notification protocol.  When all three bits are zero,
  5500. the target shall not create asynchronous event notifications.
  5501.  
  5502. A ready AEN permission (RAENP) bit of one specifies that the target may issue
  5503. an asynchronous event notification upon completing its initialization sequence
  5504. instead of generating a unit attention condition.  A RAENP bit of zero
  5505. specifies that the target shall not issue an asynchronous event notification
  5506. upon completing its initialization sequence.
  5507.  
  5508. IMPLEMENTORS NOTE:  If the target's default value for the RAENP bit is one and
  5509. it does not implement saved parameters or include a hardware switch, then it
  5510. may not be possible to disable the initialization sequence asynchronous event
  5511. notification.
  5512.  
  5513. A unit attention AEN permission (UAAENP) bit of one specifies that the target
  5514. may issue an asynchronous event notification instead of creating a unit
  5515. attention condition upon detecting an event which would cause a unit attention
  5516. condition (other than upon completing an initialization sequence).  A UAAENP
  5517. bit of zero specifies that the target shall not issue an asynchronous event
  5518. notification instead of creating a unit attention condition.
  5519.  
  5520. An error AEN permission (EAENP) bit of one specifies that the target may issue
  5521. an asynchronous event notification upon detecting a deferred error condition
  5522. instead of waiting to report the deferred error on the next command.  An EAENP
  5523. bit of zero specifies that the target shall not report deferred error
  5524. conditions via an asynchronous event notification.
  5525.  
  5526. The ready AEN holdoff period field specifies the minimum time in milliseconds
  5527. after the target starts its initialization sequence that it shall delay before
  5528. attempting to issue an asynchronous event notification.  This value may be
  5529. rounded up as defined in 6.5.4.
  5530.  
  5531. 7.3.3.2. Disconnect-Reconnect Page
  5532.  
  5533.  
  5534.  
  5535.  
  5536.  
  5537.  
  5538.  
  5539.  
  5540.  
  5541.  
  5542.  
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  
  5549.  
  5550. SCSI-2 draft proposed American National Standard        7-91      Revision 10c91
  5551.  
  5552.  
  5553.  
  5554.  
  5555.  
  5556.  
  5557.  
  5558. All Device Types                                                        3/9/90
  5559.  
  5560.  
  5561.                     Table 7-68: Disconnect-Reconnect Page
  5562.  
  5563. ==============================================================================
  5564.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5565. Byte |        |        |        |        |        |        |        |        |
  5566. ==============================================================================
  5567.  0   |   PS   |Reserved|         Page Code (02h)                             |
  5568. -----|-----------------------------------------------------------------------|
  5569.  1   |                           Page Length (0Eh)                           |
  5570. -----|-----------------------------------------------------------------------|
  5571.  2   |                           Buffer Full Ratio                           |
  5572. -----|-----------------------------------------------------------------------|
  5573.  3   |                           Buffer Empty Ratio                          |
  5574. -----|-+---------------------------------------------------------------------|
  5575.  4   | (MSB)                                                                 |
  5576. -----|---                        Bus Inactivity Limit                     ---|
  5577.  5   |                                                                 (LSB) |
  5578. -----|-----------------------------------------------------------------------|
  5579.  6   | (MSB)                                                                 |
  5580. -----|---                        Disconnect Time Limit                    ---|
  5581.  7   |                                                                 (LSB) |
  5582. -----|-+---------------------------------------------------------------------|
  5583.  8   | (MSB)                                                                 |
  5584. -----|---                        Connect Time Limit                       ---|
  5585.  9   |                                                                 (LSB) |
  5586. -----|-----------------------------------------------------------------------|
  5587.  10  | (MSB)                                                                 |
  5588. -----|---                        Maximum Burst Size                       ---|
  5589.  11  |                                                                 (LSB) |
  5590. -----|-----------------------------------------------------------------------|
  5591.  12  |                           Reserved                  |      DTDC       |
  5592. -----|-----------------------------------------------------------------------|
  5593.  13  |                           Reserved                                    |
  5594. -----|-----------------------------------------------------------------------|
  5595.  14  |                           Reserved                                    |
  5596. -----|-----------------------------------------------------------------------|
  5597.  15  |                           Reserved                                    |
  5598. ==============================================================================
  5599.  
  5600.  
  5601. The disconnect-reconnect page (Table 7-68) provides the initiator the means to
  5602. tune the performance of the SCSI bus.
  5603.  
  5604. The buffer full ratio field indicates to the target, on read operations, how
  5605.  
  5606.  
  5607.  
  5608.  
  5609.  
  5610.  
  5611. SCSI-2 draft proposed American National Standard        7-92      Revision 10c92
  5612.  
  5613.  
  5614.  
  5615.  
  5616.  
  5617.  
  5618.  
  5619. All Device Types                                                        3/9/90
  5620.  
  5621. full the buffer should be prior to attempting a reselection.  Targets that do
  5622. not implement the requested ratio should round down to the nearest implemented
  5623. ratio as defined in 6.5.4.
  5624.  
  5625. The buffer empty ratio field indicates to the target, on write operations, how
  5626. empty the buffer should be prior to attempting a reselection.  Targets that do
  5627. not implement the requested ratio should round down to the nearest implemented
  5628. ratio as defined in 6.5.4.
  5629.  
  5630. The buffer full and buffer empty ratios are numerators of a fractional
  5631. multiplier that has 256 as its denominator.  A value of zero indicates that
  5632. the target determines when to initiate reselection consistent with the
  5633. disconnect time limit parameter.  These parameters are advisory to the target.
  5634.  
  5635. IMPLEMENTORS NOTE:  As an example, consider a target with ten 512-byte buffers
  5636. and a specified buffer full ratio of 3Fh.  The formula is:
  5637. INTEGER((ratio/256)*number of buffers).  Thus INTEGER((3Fh/256)*10) = 2.  The
  5638. target should attempt to reselect the initiator on read operations whenever
  5639. two or more buffers are full.
  5640.  
  5641. The bus inactivity limit field indicates the maximum time in 100 microsecond
  5642. increments that the target is permitted to assert the BSY signal without a
  5643. REQ/ACK handshake.  If the bus inactivity limit is exceeded the target shall
  5644. attempt to disconnect if the initiator has granted the disconnect privilege
  5645. (see 5.6.7) and it is not restricted by DTDC.  This value may be rounded as
  5646. defined in 6.5.4.  A value of zero indicates that there is no bus inactivity
  5647. limit.
  5648.  
  5649. The disconnect time limit field indicates the minimum time in 100 microsecond
  5650. increments that the target shall wait after releasing the SCSI bus before
  5651. attempting reselection.  This value may be rounded as defined in 6.5.4.  A
  5652. value of zero indicates that there is no disconnect time limit.
  5653.  
  5654. The connect time limit field indicates the maximum time in 100 microsecond
  5655. increments that the target is allowed to use the SCSI bus before disconnecting
  5656. if the initiator has granted the disconnect privilege (see 5.6.7) and it is
  5657. not restricted by DTDC.  This value may be rounded as defined in 6.5.4.  A
  5658. value of zero indicates that there is no connect time limit.
  5659.  
  5660. The maximum burst size field indicates the maximum amount of data that the
  5661. target shall transfer during a data phase before disconnecting if the
  5662. initiator has granted the disconnect privilege.  This value is expressed in
  5663. increments of 512 bytes (e.g., a value of one means 512 bytes, two means 1024
  5664. bytes, etc.).  A value of zero indicates there is no limit on the amount of
  5665. data transferred per connection.
  5666.  
  5667. The data transfer disconnect control (DTDC) field (Table 7-69) defines further
  5668. restrictions on when a disconnect is permitted.
  5669.  
  5670.                  Table 7-69: Data Transfer Disconnect Control
  5671.  
  5672. SCSI-2 draft proposed American National Standard        7-93      Revision 10c93
  5673.  
  5674.  
  5675.  
  5676.  
  5677.  
  5678.  
  5679.  
  5680. All Device Types                                                        3/9/90
  5681.  
  5682.  
  5683. ==============================================================================
  5684.  DTDC   Description
  5685. ------  ----------------------------------------------------------------------
  5686. 00b   Data transfer disconnect control is not used.  Disconnect is controlled
  5687. by the other fields in this page.
  5688. 01b   A target shall not attempt to disconnect once the data transfer of a
  5689. command has started until all data the command is to transfer has been
  5690. transferred.  The connect time limit and bus inactivity limit are ignored
  5691. during the data transfer.
  5692. 10b   Reserved
  5693. 11b   A target shall not attempt to disconnect once the data transfer of a
  5694. command has started until the command is complete.  The connect time limit and
  5695. bus inactivity limit are ignored once data transfer has started.
  5696. ==============================================================================
  5697.  
  5698. If DTDC is nonzero and the maximum burst size is nonzero the target shall
  5699. return CHECK CONDITION status.  The sense key shall be set to ILLEGAL REQUEST
  5700. and the additional sense code set to ILLEGAL FIELD IN PARAMETER LIST.
  5701.  
  5702. 7.3.3.3. Peripheral Device Page
  5703.  
  5704.  
  5705.  
  5706.  
  5707.  
  5708.  
  5709.  
  5710.  
  5711.  
  5712.  
  5713.  
  5714.  
  5715.  
  5716.  
  5717.  
  5718.  
  5719.  
  5720.  
  5721.  
  5722.  
  5723.  
  5724.  
  5725.  
  5726.  
  5727.  
  5728.  
  5729.  
  5730.  
  5731.  
  5732.  
  5733. SCSI-2 draft proposed American National Standard        7-94      Revision 10c94
  5734.  
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  
  5740.  
  5741. All Device Types                                                        3/9/90
  5742.  
  5743.  
  5744.                       Table 7-70: Peripheral Device Page
  5745.  
  5746. ==============================================================================
  5747.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5748. Byte |        |        |        |        |        |        |        |        |
  5749. ==============================================================================
  5750.  0   |   PS   |Reserved|         Page Code (09h)                             |
  5751. -----|-----------------------------------------------------------------------|
  5752.  1   |                           Page Length (n-1)                           |
  5753. -----|-----------------------------------------------------------------------|
  5754.  2   | (MSB)                                                                 |
  5755. -----|---                        Interface Identifier                     ---|
  5756.  3   |                                                                 (LSB) |
  5757. -----|-+---------------------------------------------------------------------|
  5758.  4   |                           Reserved                                    |
  5759. -----|-----------------------------------------------------------------------|
  5760.  5   |                           Reserved                                    |
  5761. -----|-----------------------------------------------------------------------|
  5762.  6   |                           Reserved                                    |
  5763. -----|-----------------------------------------------------------------------|
  5764.  7   |                           Reserved                                    |
  5765. -----|-+---------------------------------------------------------------------|
  5766.  8   |                                                                       |
  5767. -----|- -                        Vendor Specific                          - -|
  5768.  n   |                                                                       |
  5769. ==============================================================================
  5770.  
  5771.  
  5772. The peripheral device page (Table 7-70) is used to pass vendor-specific
  5773. information between an initiator and a peripheral interface below the target
  5774. (i.e., between the target and the peripheral device).  This standard does not
  5775. define the format of this data, except to provide a standard header.
  5776.  
  5777. Interface identifier codes are defined in the Table 7-71.
  5778.  
  5779.  
  5780.  
  5781.  
  5782.  
  5783.  
  5784.  
  5785.  
  5786.  
  5787.  
  5788.  
  5789.  
  5790.  
  5791.  
  5792.  
  5793.  
  5794. SCSI-2 draft proposed American National Standard        7-95      Revision 10c95
  5795.  
  5796.  
  5797.  
  5798.  
  5799.  
  5800.  
  5801.  
  5802. All Device Types                                                        3/9/90
  5803.  
  5804.  
  5805.                     Table 7-71: Interface Identifier Codes
  5806.  
  5807. ==============================================================================
  5808.                                                 Reference
  5809. Code Value   Interface                          Standard
  5810. -----------  ---------------------------------  --------------------------
  5811.   0000h      Small Computer System Interface    X3.131
  5812.   0001h      Storage Module Interface           X3.91M-1987
  5813.   0002h      Enhanced Small Device Interface    X3.170
  5814.   0003h      IPI-2                              X3.130-1986; X3T9.3/87-002
  5815.   0004h      IPI-3                              X3.132-1987; X3.147-1988
  5816. 0005h-7FFFh  Reserved
  5817. 8000h-FFFFh  Vendor Specific
  5818. ==============================================================================
  5819.  
  5820.  
  5821. 7.3.4. Vital Product Data Parameters
  5822.  
  5823. This section describes the optional vital product data page structure and the
  5824. vital product data pages (Table 7-72) that are applicable to all SCSI devices.
  5825. These pages are optionally returned by the INQUIRY command (7.2.5) and contain
  5826. vendor-specific product information about a target or logical unit.  The vital
  5827. product data may include vendor identification, product identification, unit
  5828. serial numbers, device operating definitions, manufacturing data, field
  5829. replaceable unit information, and other vendor- specific information.  This
  5830. standard defines the structure of the vital product data, but not the
  5831. contents.
  5832.  
  5833.                   Table 7-72: Vital Product Data Page Codes
  5834.  
  5835. ==============================================================================
  5836.  Page Code     Description                                          Section
  5837. ------------------------------------------------------------------------------
  5838.     82h        ASCII Implemented Operating Definition Page          7.3.4.1
  5839.  01h - 7Fh     ASCII Information Page                               7.3.4.2
  5840.     81h        Implemented Operating Definitions Page               7.3.4.3
  5841.     00h        Supported Vital Product Data Pages                   7.3.4.4
  5842.     80h        Unit Serial Number Page                              7.3.4.5
  5843.  83h - BFh     Reserved
  5844.  C0h - FFh     Vendor Specific
  5845. ==============================================================================
  5846.  
  5847.  
  5848. 7.3.4.1. ASCII Implemented Operating Definition Page
  5849.  
  5850.  
  5851.  
  5852.  
  5853.  
  5854.  
  5855. SCSI-2 draft proposed American National Standard        7-96      Revision 10c96
  5856.  
  5857.  
  5858.  
  5859.  
  5860.  
  5861.  
  5862.  
  5863. All Device Types                                                        3/9/90
  5864.  
  5865.  
  5866.               Table 7-73: ASCII Implemented Operating Definition
  5867.  
  5868. ==============================================================================
  5869.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5870. Byte |        |        |        |        |        |        |        |        |
  5871. ==============================================================================
  5872.  0   | Peripheral Qualifier     |           Peripheral Device Type           |
  5873. -----|-----------------------------------------------------------------------|
  5874.  1   |                           Page Code (82h)                             |
  5875. -----|-----------------------------------------------------------------------|
  5876.  2   |                           Reserved                                    |
  5877. -----|-----------------------------------------------------------------------|
  5878.  3   |                           Page Length (n-3)                           |
  5879. -----|-----------------------------------------------------------------------|
  5880.  4   |              ASCII Operating Definition Description Length (m-4)      |
  5881. -----|-----------------------------------------------------------------------|
  5882.  5   |                                                                       |
  5883. - - -|- -           ASCII Operating Definition Description Data           - -|
  5884.  m   |                                                                       |
  5885. -----|-----------------------------------------------------------------------|
  5886.  m+1 |                                                                       |
  5887. - - -|- -           Vendor-Specific Description Data                      - -|
  5888.  n   |                                                                       |
  5889. ==============================================================================
  5890.  
  5891.  
  5892. This page (Table 7-73) contains operating definition description data for all
  5893. operating definitions implemented by the target.  The contents of this data is
  5894. not defined by this standard.
  5895.  
  5896. The peripheral qualifier field is defined in Table 7-16 and the peripheral
  5897. device type field is defined in Table 7-17.
  5898.  
  5899. The page length field specifies the length of the following page data.  If the
  5900. allocation length is less than the length of the data to be returned the page
  5901. length shall not be adjusted to reflect the truncation.
  5902.  
  5903. The ASCII operating definition description length field specifies the length
  5904. in bytes of the ASCII operating definition description data that follows.  If
  5905. the allocation length is less than the length of data to be returned, the
  5906. ASCII operating definition description length shall not be adjusted to reflect
  5907. the truncation.  A value of zero in this field indicates that no ASCII
  5908. operating definition description data is available.
  5909.  
  5910. The ASCII operating definition description data field contains the ASCII
  5911.  
  5912.  
  5913.  
  5914.  
  5915.  
  5916. SCSI-2 draft proposed American National Standard        7-97      Revision 10c97
  5917.  
  5918.  
  5919.  
  5920.  
  5921.  
  5922.  
  5923.  
  5924. All Device Types                                                        3/9/90
  5925.  
  5926. operating definition description data for the target or logical unit.  The
  5927. data in this field shall be formatted in lines (or character strings).  Each
  5928. line shall contain only graphic codes (i.e., code values 20h through 7Eh) and
  5929. shall be terminated with a NULL (00h) character.
  5930.  
  5931. 7.3.4.2. ASCII Information Page
  5932.  
  5933.                       Table 7-74: ASCII Information Page
  5934.  
  5935. ==============================================================================
  5936.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5937. Byte |        |        |        |        |        |        |        |        |
  5938. ==============================================================================
  5939.  0   | Peripheral Qualifier     |           Peripheral Device Type           |
  5940. -----|-----------------------------------------------------------------------|
  5941.  1   |                           Page Code (01h - 7Fh)                       |
  5942. -----|-----------------------------------------------------------------------|
  5943.  2   |                           Reserved                                    |
  5944. -----|-----------------------------------------------------------------------|
  5945.  3   |                           Page Length (n-3)                           |
  5946. -----|-----------------------------------------------------------------------|
  5947.  4   |                           ASCII Length (m-4)                          |
  5948. -----|-----------------------------------------------------------------------|
  5949.  5   |                                                                       |
  5950. - - -|- -                        ASCII Information                        - -|
  5951.  m   |                                                                       |
  5952. -----|-----------------------------------------------------------------------|
  5953.  m+1 |                                                                       |
  5954. - - -|- -                        Vendor-Specific Information              - -|
  5955.  n   |                                                                       |
  5956. ==============================================================================
  5957.  
  5958.  
  5959. The ASCII information page (Table 7-74) returns information for the field
  5960. replaceable unit code returned in the REQUEST SENSE sense data (see 7.2.14).
  5961.  
  5962. The peripheral qualifier field is defined in Table 7-16 and the peripheral
  5963. device type field is defined in Table 7-17.
  5964.  
  5965. The page code field contains the same value as in the page code field of the
  5966. INQUIRY command descriptor block (see 7.2.5) and is associated with the field
  5967. replaceable unit code returned by the REQUEST SENSE command.
  5968.  
  5969. IMPLEMENTORS NOTE:  The field replaceable unit field in the sense data
  5970. provides for 255 possible codes, while the page code field provides for only
  5971. 127 possible codes.  Thus it is not possible to return ASCII information pages
  5972. for the upper code values.
  5973.  
  5974. The page length field specifies the length of the following page data.  If the
  5975.  
  5976.  
  5977. SCSI-2 draft proposed American National Standard        7-98      Revision 10c98
  5978.  
  5979.  
  5980.  
  5981.  
  5982.  
  5983.  
  5984.  
  5985. All Device Types                                                        3/9/90
  5986.  
  5987. allocation length of the command descriptor block is too small to transfer all
  5988. of the page, the page length shall not be adjusted to reflect the truncation.
  5989.  
  5990. The ASCII length field specifies the length in bytes of the ASCII information
  5991. that follows.  If the allocation length is less than the length of the data to
  5992. be returned the ASCII length shall not be adjusted to reflect the truncation.
  5993. A value of zero in this field indicates that no ASCII information is available
  5994. for the specified page code.
  5995.  
  5996. The ASCII information field contains ASCII information concerning the field
  5997. replaceable unit identified by the page code.  The data in this field shall be
  5998. formatted in one or more lines (or character strings).  Each line shall
  5999. contain only graphic codes (i.e., code values 20h through 7Eh) and shall be
  6000. terminated with a NULL (00h) character.
  6001.  
  6002. The contents of the vendor-specific information field is not defined in this
  6003. standard.
  6004.  
  6005. 7.3.4.3. Implemented Operating Definition Page
  6006.  
  6007.               Table 7-75: Implemented Operating Definition Page
  6008.  
  6009. ==============================================================================
  6010.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  6011. Byte |        |        |        |        |        |        |        |        |
  6012. ==============================================================================
  6013.  0   | Peripheral Qualifier     |           Peripheral Device Type           |
  6014. -----|-----------------------------------------------------------------------|
  6015.  1   |                           Page Code (81h)                             |
  6016. -----|-----------------------------------------------------------------------|
  6017.  2   |                           Reserved                                    |
  6018. -----|-----------------------------------------------------------------------|
  6019.  3   |                           Page Length (n-3)                           |
  6020. -----|-----------------------------------------------------------------------|
  6021.  4   |Reserved|         Current Operating Definition                         |
  6022. -----|-----------------------------------------------------------------------|
  6023.  5   | SavImp |         Default Operating Definition                         |
  6024. -----|-----------------------------------------------------------------------|
  6025.  6   | SavImp |                                                              |
  6026. -----|- -               Supported Operating Definition List               - -|
  6027.  n   | SavImp |                                                              |
  6028. ==============================================================================
  6029.  
  6030.  
  6031. The implemented operating definition page (Table 7-75) defines the current
  6032. operating definition, the default operating definition, and which operating
  6033. definitions are implemented by the target.  These operating definition values
  6034. are specified in the CHANGE DEFINITION command (see 7.2.1).
  6035.  
  6036. The peripheral qualifier field is defined in Table 7-16 and the peripheral
  6037.  
  6038. SCSI-2 draft proposed American National Standard        7-99      Revision 10c99
  6039.  
  6040.  
  6041.  
  6042.  
  6043.  
  6044.  
  6045.  
  6046. All Device Types                                                        3/9/90
  6047.  
  6048. device type field is defined in Table 7-17.
  6049.  
  6050. The page length field specifies the length of the following operating
  6051. definitions.  If the allocation length of the command descriptor block is too
  6052. small to transfer all of the page, the page length shall not be adjusted to
  6053. reflect the truncation.
  6054.  
  6055. For each operating definition there is an associated save implemented (SavImp)
  6056. bit.  A SavImp bit of zero indicates that the corresponding operating
  6057. definition parameter cannot be saved.  A SavImp bit of one indicates that the
  6058. corresponding operating definition parameter can be saved.
  6059.  
  6060. All returned operating definitions use the codes defined in Table 7-3.  The
  6061. current operating definition field returns the value of the present operating
  6062. definition.  The default operating definition field returns the value of the
  6063. operating definition the target uses when power is applied if no operating
  6064. definition is saved.  The supported operating definition list returns one or
  6065. more operating definitions implemented by the target.
  6066.  
  6067. 7.3.4.4. Supported Vital Product Data Pages
  6068.  
  6069.                 Table 7-76: Supported Vital Product Data Pages
  6070.  
  6071. ==============================================================================
  6072.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  6073. Byte |        |        |        |        |        |        |        |        |
  6074. ==============================================================================
  6075.  0   | Peripheral Qualifier     |           Peripheral Device Type           |
  6076. -----|-----------------------------------------------------------------------|
  6077.  1   |                           Page Code (00h)                             |
  6078. -----|-----------------------------------------------------------------------|
  6079.  2   |                           Reserved                                    |
  6080. -----|-----------------------------------------------------------------------|
  6081.  3   |                           Page Length (n-3)                           |
  6082. -----|-----------------------------------------------------------------------|
  6083.  4   |                                                                       |
  6084. -----|- -                        Supported Page List                      - -|
  6085.  n   |                                                                       |
  6086. ==============================================================================
  6087.  
  6088.  
  6089. The supported vital product data pages are shown in Table 7-76.
  6090.  
  6091. The peripheral qualifier field is defined in Table 7-16 and the peripheral
  6092. device type field is defined in Table 7-17.
  6093.  
  6094. The page code field shall be set to the value of the page code field in the
  6095.  
  6096.  
  6097.  
  6098.  
  6099. SCSI-2 draft proposed American National Standard       7-100      Revision 10c100
  6100.  
  6101.  
  6102.  
  6103.  
  6104.  
  6105.  
  6106.  
  6107. All Device Types                                                        3/9/90
  6108.  
  6109. INQUIRY command descriptor block (see 7.2.5).
  6110.  
  6111. The page length field specifies the length of the supported page list.  If the
  6112. allocation length is too small to transfer all of the page, the page length
  6113. shall not be adjusted to reflect the truncation.
  6114.  
  6115. The supported page list field shall contain a list of all vital product data
  6116. page codes implemented for the target or logical unit in ascending order
  6117. beginning with page code 00h.
  6118.  
  6119. 7.3.4.5. Unit Serial Number Page
  6120.  
  6121.                      Table 7-77: Unit Serial Number Page
  6122.  
  6123. ==============================================================================
  6124.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  6125. Byte |        |        |        |        |        |        |        |        |
  6126. ==============================================================================
  6127.  0   | Peripheral Qualifier     |           Peripheral Device Type           |
  6128. -----|-----------------------------------------------------------------------|
  6129.  1   |                           Page Code (80h)                             |
  6130. -----|-----------------------------------------------------------------------|
  6131.  2   |                           Reserved                                    |
  6132. -----|-----------------------------------------------------------------------|
  6133.  3   |                           Page Length (n-3)                           |
  6134. -----|-----------------------------------------------------------------------|
  6135.  8   |                                                                       |
  6136. - - -|- -                        Product Serial Number                    - -|
  6137.  n   |                                                                       |
  6138. ==============================================================================
  6139.  
  6140.  
  6141. This page (Table 7-77) provides a product serial number for the target or
  6142. logical unit.
  6143.  
  6144. The peripheral qualifier field is defined in Table 7-16 and the peripheral
  6145. device type field is defined in Table 7-17.
  6146.  
  6147. The page length field specifies the length of the product serial number.  If
  6148. the allocation length is too small to transfer all of the page, the page
  6149. length shall not be adjusted to reflect the truncation.
  6150.  
  6151. The product serial number field contains ASCII data that is vendor specific.
  6152. The least significant ASCII character of the serial number shall appear as the
  6153. last byte of a successful data transfer.  If the product serial number is not
  6154. available, the target shall return ASCII spaces (20h) in this field.
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160. SCSI-2 draft proposed American National Standard       7-101      Revision 10c101
  6161.  
  6162.  
  6163.  
  6164.  
  6165.  
  6166.  
  6167.  
  6168. All Device Types                                                        3/9/90
  6169.  
  6170.  
  6171.  
  6172.  
  6173.  
  6174.  
  6175.  
  6176.  
  6177.  
  6178.  
  6179.  
  6180.  
  6181.  
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.  
  6188.  
  6189.  
  6190.  
  6191.                      (This page is intentionally blank.)
  6192.  
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208.  
  6209.  
  6210.  
  6211.  
  6212.  
  6213.  
  6214.  
  6215.  
  6216.  
  6217.  
  6218.  
  6219.  
  6220.  
  6221. SCSI-2 draft proposed American National Standard       7-102      Revision 10c102
  6222.  
  6223.