Date: October 30, 1990 X3T9.2/90-048R7 To: X3T9.2 Committee (SCSI) From: George Penokie (IBM) Subject: 16/32 bit P/Q and L cable stand alone document Section 3 Issues -Redefine SCSI address and SCSI ID terms Section 4 Issues -Termination of the cable -The maximum number of devices should be made to be 16 if the P cable is used. -The maximum number of devices should be made to be 32 if the P/Q cable is used. -The maximum number of devices should be made to be 32 if the L cable is used. -Disallow B connector devices from connecting to P, P/Q, or L type devices. -Add in the Q cable changes. -Make the Q cable have the same pin positions for data lines as the P cable. This is to make dual porting easier. -Add in the L cable changes. -Make the L cable have the same pin positions for data and control lines as the P cable. This is to make dual porting easier. -Show examples of A cable to P cable, A cable to L cable, and P cable to L cable convertors. Section 5 Issues -Some wording changes in section 5.1.2 ARBITRATION Phase are required to indicate there are now 32 devices allowed on the bus. -Add into section 5.1.3 SELECTION phase and 5.1.4 RESELECTION phase wording to describe how to handle parity detection on devices with more than 8 SCSI ID's. -Some changes in section 5.1.5.3 Wide Data Transfer are required to indicate there is another cabling option. -Add in the Q cable changes -Add in the L cable changes -Added a table to show the legal combination of ACKQREQQ, Addr32, Addr16, Wbus32, and Wbus16 bits from the Inquiry Data Format table. Section 7 Issues -The copy commands segment Descriptor does not have room for a 5 bit source address and a 5 bit destination address. -Make a new set of Descriptors to handle a larger number of addresses. -Make a new ASC and ASCQ to handle unsupported SCSI addresses -Remove the new ASC and ASCQ. Unsupported SCSI addresses should be handled like any other parameter type error. -Add into the Inquiry data the 16/32 bit addressing information and the ACKB/REQB information. Section 8, 9, 10, 12, 13, 14, 15, and 16 Issues -The Release command and Reserve command do not have room for a 5 bit third party device ID -Make 10 byte commands for both the Release and Reserve commands Section 3 changes recommended to implement a single 68 pin connector Current Cables A Cable - 50 conductors. The SCSI-1/SCSI-2 8-bit cable. B Cable - 68 conductors. A second cable to expand the data path to 16 or 32 bits. Proposed Cables P Cable - 68 conductors. A 16-bit single-cable with the signals from the A cable on the center 50 pins. It is expected that one can mix A and P devices with an appropriate adapter. Q Cable - 68 conductors. This cable extends the P cable to 32 bits. The pin assignments are the same as for the P cable, but the control signals, except REQ and ACK, are not used. L Cable - 110 conductors. A 32-bit single-cable with the signals from the P cable on the center 68 pins. It is expected that one can mix A, P, and L devices with appropriate adapters. 3.1. Glossary SCSI address. The Hexadecimal Representation of the unique address (0-31) assigned to an SCSI device. This address would normally be assigned and set in the SCSI device during system installation. SCSI ID. The bit-significant representation of the SCSI address referring to one of the signal lines DB(31-0). 4. Physical Characteristics This section contains the physical definition of alternative cabling methods for 16 bit and 32 bit data paths on SCSI-2 devices. The connectors, cables, signals, terminators, and bus timing values needed to implement the interface are covered. 4.1. Physical Description SCSI devices are daisy-chained together using a common 110-conductor L cable or a common 68-conductor P cable and, optionally, a 68-conductor Q cable. Both ends of each cable are terminated. All signals are common between all SCSI devices on the P cable and the L cable. Various width SCSI devices may be mixed. Physical devices with L cable connectors shall connect the low data byte (DB0-DB7,P) to the L connector. The three high data bytes (DB8-DB15,P1,DB16-DB24,P2,DB25-DB32) may be connected to the L connector. Physical devices with P cable connectors shall connect the low data byte (DB0-DB7,P) to the P connector. The high data byte (DB8-DB15,P1) may be connected to the P connector. Two driver/receiver alternatives are specified: (1) Single-ended drivers and receivers, which allow a maximum cable length of six meters (primarily for connection within a cabinet). (2) Differential drivers and receivers, which allow a maximum cable length of 25 meters (primarily for connection outside of a cabinet). The A/B cable, P/Q, and L cable alternatives are mutually exclusive within a system. Physical devices with A cable connectors may be attached to P cables or L cables. IMPLEMENTORS NOTE: Two of the RESERVED lines (A cable contact numbers 23 and 24) and the OPEN line (A cable contact number 25) on the A cable have been converted to TERM POWER lines on the P cable (P cable contact numbers 33, 34, and 35) and on the L cable (L cable contact numbers 53, 54, and 55). The other two RESERVED lines (A cable contact numbers 27 and 28) have been converted to TERM POWER lines on the L cable (L cable contact numbers 57 and 58). Example of a A cable to P cable adapter: A Cable P Cable 23| |33 Reserved----------|-- |----|-----------Term Power 24| | |34 Reserved----------|-- |----|-----------Term Power 25| | |35 Open--------------|-- |----|-----------Term Power 26| | |36 Term Power--------|----|----|-----------Term Power 27| |37 Reserved----------|---------|-----------Reserved 28| |38 Reserved----------|---------|-----------Reserved | | Example of a A cable to L cable adapter: A Cable L Cable 23| |53 Reserved----------|-- |----|-----------Term Power 24| | |54 Reserved----------|-- |----|-----------Term Power 25| | |55 Open--------------|-- |----|-----------Term Power 26| | |56 Term Power--------|----|----|-----------Term Power 27| | |57 Reserved----------|-- |----|-----------Term Power 28| | |58 Reserved----------|-- |----|-----------Term Power | | Example of a P cable to L cable adapter: P Cable L Cable 33| |53 Term Power--------|---------|-----------Term Power 34| |54 Term Power--------|---------|-----------Term Power 35| |55 Term Power--------|---------|-----------Term Power 36| |56 Term Power--------|----|----|-----------Term Power 37| | |57 Reserved----------|-- |----|-----------Term Power 38| | |58 Reserved----------|-- |----|-----------Term Power | | Physical devices with B cable connectors shall not be attached to P, P/Q, or L cables. Physical devices with P, P/Q or L cable connectors shall not be attached to A or A/B cables. The single-ended and differential alternatives are mutually exclusive within a system. IMPLEMENTORS NOTE: Use of single-ended drivers and receivers with the fast synchronous data transfer option is not recommended. 4.2. Cable Requirements An ideal impedance match with cable terminators implies a cable characteristic impedance of 132 ohms (singled-ended option) or 122 ohms (differential option). The cable characteristic impedance shall be no less than 90 ohms and no greater than 140 ohms. It is recommended that the cable characteristic impedance be greater than 100 ohms for all cable types. See 4.2.3 for cable requirements when implementing the fast synchronous data transfer option. A minimum conductor size of 0.08042 square mm (28 AWG) should be used to minimize noise effects and ensure proper distribution of terminator power. IMPLEMENTORS NOTES: (1) To minimize discontinuities and signal reflections, cables of different impedances should not be used in the same bus. Implementations may require trade-offs in shielding effectiveness, cable length, the number of loads, transfer rates, and cost to achieve satisfactory system operation. (2) To minimize discontinuities due to local impedance variation, a flat cable should be spaced at least 1.27 mm (0.050 in) from other cables, any other conductor, or the cable itself when the cable is folded. (3) Regulatory agencies may require use of larger wire size. 4.2.1. Single-Ended Cable A 68-conductor flat cable or 34-signal twisted-pair cable shall be used for the P cable and the Q cable if the wide SCSI option is implemented. A 110-conductor flat cable or 55-signal twisted-pair cable shall be used for the L cable. The maximum cumulative cable length shall be 6.0 meters. If twisted-pair cables are used, then twisted pairs in the cable shall be wired to physically opposing contacts in the connector. A stub length of no more than 0.1 meters is allowed off the mainline interconnection within any connected equipment or from any connected point. IMPLEMENTORS NOTE: Stub clustering should be avoided. Stubs should be spaced at least 0.3 meters apart. SCSI bus termination shall be at each end of the cable and may be internal to the SCSI devices that are at the ends of the cable. 4.2.2. Differential Cable A 68-conductor flat cable or 34-signal twisted-pair cable shall be used for the P cable and the Q cable if the wide SCSI option is implemented. A 110-conductor flat cable or 55-signal twisted-pair cable shall be used for the L cable. The maximum cumulative cable length shall be 25 meters. If twisted-pair cables are used, then twisted pairs in the cable shall be wired to physically opposing contacts in the connector. A stub length of no more than 0.2 meters is allowed off the mainline interconnection within any connected equipment or from any connected point. SCSI bus termination shall be at each end of the cable and may be internal to the SCSI devices that are at the ends of the cable. IMPLEMENTORS NOTE: The use of twisted pair cable (either twisted-flat or discrete wire twisted pairs) is strongly recommended. Without twisted pairs, even at slow data rates and very short distances, crosstalk between adjacent signals causes spurious pulses with differential signals. 4.2.3. Cable Requirements for Fast Synchronous Data Transfer In systems which use the fast synchronous data transfer option (see 4.8), the P, Q and L cables should meet the conductor size recommendation in 4.2. The cable should have an overall shield suitable for termination in a shielded connector. In such systems, the cables shall have the following electrical characteristics: Characteristic Impedance: 90 to 132 ohms Signal Attenuation: 0.095 dB maximum per meter at 5 MHz Pair-to-Pair Propagation Delay Delta: 0.20 ns maximum per meter DC Resistance: 0.230 ohms maximum per meter at 20 degrees C 4.3. Connector Requirements Two types of connectors are defined: nonshielded and shielded. The nonshielded connectors are typically used for in-cabinet applications. Shielded connectors are typically used for external applications where electromagnetic compatibility (EMC) and electrostatic discharge (ESD) protection may be required. Either type of connector may be used with the single-ended or differential drivers. 4.3.1. Nonshielded Connector Requirements One nonshielded connector is specified for the P and Q cables. One nonshielded connector is specified for the L cable. 4.3.1.1. Nonshielded Connector - P Cable, Q Cable, and L Cable The nonshielded high-density SCSI device connector for the P and Q cables (Figure 4-1) shall be a 68-conductor connector consisting of two rows of 34 female contacts with adjacent contacts 1.27 mm (0.05 in) apart. The nonshielded high-density SCSI device connector for the L (Figure 4-1) shall be a 110-conductor connector consisting of two rows of 55 female contacts with adjacent contacts 1.27 mm (0.05 in) apart. The nonmating portion of the connector is shown for reference reference only. The nonshielded high-density cable connector for the P and Q cables (Figure 4-2) shall be a 68-conductor connector consisting of two rows of 34 male contacts with adjacent contacts 1.27 mm (0.05 in) apart. The nonshielded high-density cable connector for the L (Figure 4-2) shall be a 110-conductor connector consisting of two rows of 55 male contacts with adjacent contacts 1.27 mm (0.05 in) apart. The nonmating portion of the connector is shown for reference only. 4.3.2. Shielded Connector Requirements One shielded connector is specified for the P and Q cables. One shielded connector is specified of the L cable. The connector shielding system should provide a dc resistance of less than 10 milliohms from the cable shield at its termination point to the SCSI device enclosure. In order to support daisy-chain connections, SCSI devices that use shielded connectors should provide two shielded device connectors on the device enclosure. These two connectors may be wired "one-to-one" with a stub to the SCSI device's drivers and receivers provided the maximum stub length is not violated. Alternatively, two cables may be run from the two shielded connectors to the drivers and receivers so that the maximum stub length is not violated. The length of the cable within the device enclosure is included when calculating the total cable length of the SCSI bus. 4.3.2.1. Shielded Connector - P Cable, Q Cable, and L Cable The shielded high-density SCSI device connector for the P and Q cables (Figure 4-3) is a 68-conductor connector consisting of two rows of 34 female contacts with adjacent contacts 1.27 mm (0.05 in) apart. adjacent contacts 1.27 mm (0.05 in) apart. The shielded high-density SCSI device connector for the L (Figure 4-3) is a 110-conductor connector consisting of two rows of 55 female contacts with adjacent contacts 1.27 mm (0.05 in) apart. The nonmating portion of the connector is shown for reference only. The shielded high-density cable connector for the P and Q cables (Figure 4-4) is a 68-conductor connector consisting of two rows of 34 male contacts with adjacent contacts 1.27 mm (0.05 in) apart. The shielded high-density cable connector for the L (Figure 4-4) is a 110-conductor connector consisting of two rows of 55 male contacts with adjacent contacts 1.27 mm (0.05 in) apart. The nonmating portion of the connector is shown for reference only. Figure 4-1: 68/110-Contact Nonshielded High-Density SCSI Device Connector (P Cable/Q Cable/L Cable) Figure 4-2: 68/110-Contact Nonshielded High-Density Cable Connector (P Cable/Q Cable/L Cable) Figure 4-3: 68/110-Contact Shielded High-density SCSI Device Connector (P Cable/Q Cable/L Cable) Figure 4-4: 68/110-Contact Shielded High-density Cable Connector (P Cable/Q Cable/L Cable) 4.3.3. Connector Contact Assignments The connector contact assignments are defined in Tables 4-1 through 4-5. Table 4-1 defines which of the other four tables to use and which set of contact assignments to use. Table 4-1: Cross-Reference to Connector Contact Assignments ============================================================================== Driver/ Contact Receiver Connector Assignment Contact Connector Type Type Cable Figure Table Set ------------------------------------------------------------------------------ Nonshielded Alternative 1 Single-Ended P 4-1 & 4-2 4-2 Nonshielded Alternative 1 Single-Ended Q 4-1 & 4-2 4-3 Nonshielded Alternative 1 Single-Ended L 4-1 & 4-2 4-4 Nonshielded Alternative 1 Differential P 4-1 & 4-2 4-5 Nonshielded Alternative 1 Differential Q 4-1 & 4-2 4-6 Nonshielded Alternative 1 Differential L 4-1 & 4-2 4-7 Shielded Alternative 1 Single-Ended P 4-3 & 4-4 4-2 Shielded Alternative 1 Single-Ended Q 4-3 & 4-4 4-3 Shielded Alternative 1 Single-Ended L 4-3 & 4-4 4-4 Shielded Alternative 1 Differential P 4-3 & 4-4 4-5 Shielded Alternative 1 Differential Q 4-3 & 4-4 4-6 Shielded Alternative 1 Differential L 4-3 & 4-4 4-7 ============================================================================== Table 4-2: Single-Ended Contact Assignments - P cable ============================================================================== Connector Cable Connector Signal Contact Conductor Contact Signal Name Number Number Number Name ------------------------------------------------------------------------------ GROUND 1 1 | 2 35 -DB(12) GROUND 2 3 | 4 36 -DB(13) GROUND 3 5 | 6 37 -DB(14) GROUND 4 7 | 8 38 -DB(15) GROUND 5 9 | 10 39 -DB(P1) GROUND 6 11 | 12 40 -DB(0) GROUND 7 13 | 14 41 -DB(1) GROUND 8 15 | 16 42 -DB(2) GROUND 9 17 | 18 43 -DB(3) GROUND 10 19 | 20 44 -DB(4) GROUND 11 21 | 22 45 -DB(5) GROUND 12 23 | 24 46 -DB(6) GROUND 13 25 | 26 47 -DB(7) GROUND 14 27 | 28 48 -DB(P) GROUND 15 29 | 30 49 GROUND GROUND 16 31 | 32 50 GROUND TERMPWR 17 33 | 34 51 TERMPWR TERMPWR 18 35 | 36 52 TERMPWR RESERVED 19 37 | 38 53 RESERVED GROUND 20 39 | 40 54 GROUND GROUND 21 41 | 42 55 -ATN GROUND 22 43 | 44 56 GROUND GROUND 23 45 | 46 57 -BSY GROUND 24 47 | 48 58 -ACK GROUND 25 49 | 50 59 -RST GROUND 26 51 | 52 60 -MSG GROUND 27 53 | 54 61 -SEL GROUND 28 55 | 56 62 -C/D GROUND 29 57 | 58 63 -REQ GROUND 30 59 | 60 64 -I/O GROUND 31 61 | 62 65 -DB(8) GROUND 32 63 | 64 66 -DB(9) GROUND 33 65 | 66 67 -DB(10) GROUND 34 67 | 68 68 -DB(11) ============================================================================== NOTES: (1) The minus sign next to a signal indicates active low. (2) The conductor number refers to the conductor position when using 0.025- inch centerline flat ribbon cable. Other cable types may be used to implement equivalent contact assignments. (3) 8 bit devices which connected to the P-cable shall leave the following signals open: -DB(12) -DB(13) -DB(14) -DB(15) -DB(P1) -DB(8) -DB(9) -DB(10) -DB(11) All other signals shall be connected as defined. Table 4-3: Single-Ended Contact Assignments - Q cable ============================================================================== Connector Cable Connector Signal Contact Conductor Contact Signal Name Number Number Number Name ------------------------------------------------------------------------------ GROUND 1 1 | 2 35 -DB(28) GROUND 2 3 | 4 36 -DB(29) GROUND 3 5 | 6 37 -DB(30) GROUND 4 7 | 8 38 -DB(31) GROUND 5 9 | 10 39 -DB(P3) GROUND 6 11 | 12 40 -DB(16) GROUND 7 13 | 14 41 -DB(17) GROUND 8 15 | 16 42 -DB(18) GROUND 9 17 | 18 43 -DB(19) GROUND 10 19 | 20 44 -DB(20) GROUND 11 21 | 22 45 -DB(21) GROUND 12 23 | 24 46 -DB(22) GROUND 13 25 | 26 47 -DB(23) GROUND 14 27 | 28 48 -DB(P2) GROUND 15 29 | 30 49 GROUND GROUND 16 31 | 32 50 GROUND TERMPWRQ 17 33 | 34 51 TERMPWRQ TERMPWRQ 18 35 | 36 52 TERMPWRQ RESERVED 19 37 | 38 53 RESERVED GROUND 20 39 | 40 54 GROUND GROUND 21 41 | 42 55 TERMINATED GROUND 22 43 | 44 56 GROUND GROUND 23 45 | 46 57 TERMINATED GROUND 24 47 | 48 58 -ACKQ GROUND 25 49 | 50 59 TERMINATED GROUND 26 51 | 52 60 TERMINATED GROUND 27 53 | 54 61 TERMINATED GROUND 28 55 | 56 62 TERMINATED GROUND 29 57 | 58 63 -REQQ GROUND 30 59 | 60 64 TERMINATED GROUND 31 61 | 62 65 -DB(24) GROUND 32 63 | 64 66 -DB(25) GROUND 33 65 | 66 67 -DB(26) GROUND 34 67 | 68 68 -DB(27) ============================================================================== NOTES: (1) The minus sign next to a signal indicates active low. (2) The conductor number refers to the conductor position when using 0.025- inch centerline flat ribbon cable. Other cable types may be used to implement equivalent contact assignments. Table 4-4: Single-Ended Contact Assignments - L cable ============================================================================== Connector Cable Connector Signal Contact Conductor Contact Signal Name Number Number Number Name ------------------------------------------------------------------------------ TERMPWR 1 1 | 2 56 TERMPWR GROUND 2 3 | 4 57 -DB(24) GROUND 3 5 | 6 58 -DB(25) GROUND 4 7 | 8 59 -DB(26) GROUND 5 9 | 10 60 -DB(27) GROUND 6 11 | 12 61 -DB(28) GROUND 7 13 | 14 62 -DB(29) GROUND 8 15 | 16 63 -DB(30) GROUND 9 17 | 18 64 -DB(31) GROUND 10 19 | 20 65 -DB(P3) GROUND 11 21 | 22 66 -DB(12) GROUND 12 23 | 24 67 -DB(13) GROUND 13 25 | 26 68 -DB(14) GROUND 14 27 | 28 69 -DB(15) GROUND 15 29 | 30 70 -DB(P1) GROUND 16 31 | 32 71 -DB(0) GROUND 17 33 | 34 72 -DB(1) GROUND 18 35 | 36 73 -DB(2) GROUND 19 37 | 38 74 -DB(3) GROUND 20 39 | 40 75 -DB(4) GROUND 21 41 | 42 76 -DB(5) GROUND 22 43 | 44 77 -DB(6) GROUND 23 45 | 46 78 -DB(7) GROUND 24 47 | 48 79 -DB(P) GROUND 25 49 | 50 80 GROUND GROUND 26 51 | 52 81 GROUND TERMPWR 27 53 | 54 82 TERMPWR TERMPWR 28 55 | 56 83 TERMPWR TERMPWR 29 57 | 58 84 TERMPWR GROUND 30 59 | 60 85 GROUND GROUND 31 61 | 62 86 -ATN GROUND 32 63 | 64 87 GROUND GROUND 33 65 | 66 88 -BSY GROUND 34 67 | 68 89 -ACK GROUND 35 69 | 70 90 -RST GROUND 36 71 | 72 91 -MSG GROUND 37 73 | 74 92 -SEL GROUND 38 75 | 76 93 -C/D GROUND 39 77 | 78 94 -REQ GROUND 40 79 | 70 95 -I/O GROUND 41 81 | 82 96 -DB(8) GROUND 42 83 | 84 97 -DB(9) GROUND 43 85 | 86 98 -DB(10) GROUND 44 87 | 88 99 -DB(11) GROUND 45 89 | 90 100 GROUND GROUND 46 91 | 92 101 -DB(16) GROUND 47 93 | 94 102 -DB(17) GROUND 48 95 | 96 103 -DB(18) GROUND 49 97 | 98 104 -DB(19) GROUND 50 99 | 100 105 -DB(20) GROUND 51 101 | 102 106 -DB(21) GROUND 52 103 | 104 107 -DB(22) GROUND 53 105 | 106 108 -DB(23) GROUND 54 107 | 108 109 -DB(P2) TERMPWR 55 109 | 110 110 TERMPWR ============================================================================== NOTES: (1) The minus sign next to a signal indicates active low. (2) The conductor number refers to the conductor position when using 0.025- inch centerline flat ribbon cable. Other cable types may be used to implement equivalent contact assignments. (3) 8 bit devices which connect to the L-cable shall leave the following signals open: -DB(12) -DB(13) -DB(14) -DB(15) -DB(P1) -DB(8) -DB(9) -DB(10) -DB(11) -DB(20) -DB(21) -DB(22) -DB(23) -DB(P2) -DB(16) -DB(17) -DB(18) -DB(19) -DB(28) -DB(29) -DB(30) -DB(31) -DB(P3) -DB(24) -DB(25) -DB(26) -DB(27) All other signals shall be connected as defined. (4) 16 bit devices which connect to the L-cable shall leave the following signals open: -DB(20) -DB(21) -DB(22) -DB(23) -DB(P2) -DB(16) -DB(17) -DB(18) -DB(19) -DB(28) -DB(29) -DB(30) -DB(31) -DB(P3) -DB(24) -DB(25) -DB(26) -DB(27) All other signals shall be connected as defined. Table 4-5: Differential Contact Assignments - P cable ============================================================================== Connector Cable Connector Signal Contact Conductor Contact Signal Name Number Number Number Name ------------------------------------------------------------------------------ +DB(12) 1 1 | 2 35 -DB(12) +DB(13) 2 3 | 4 36 -DB(13) +DB(14) 3 5 | 6 37 -DB(14) +DB(15) 4 7 | 8 38 -DB(15) +DB(P1) 5 9 | 10 39 -DB(P1) GROUND 6 11 | 12 40 GROUND +DB(0) 7 13 | 14 41 -DB(0) +DB(1) 8 15 | 16 42 -DB(1) +DB(2) 9 17 | 18 43 -DB(2) +DB(3) 10 19 | 20 44 -DB(3) +DB(4) 11 21 | 22 45 -DB(4) +DB(5) 12 23 | 24 46 -DB(5) +DB(6) 13 25 | 26 47 -DB(6) +DB(7) 14 27 | 28 48 -DB(7) +DB(P) 15 29 | 30 49 -DB(P) DIFFSENS 16 31 | 32 50 GROUND TERMPWR 17 33 | 34 51 TERMPWR TERMPWR 18 35 | 36 52 TERMPWR RESERVED 19 37 | 38 53 RESERVED +ATN 20 39 | 40 54 -ATN GROUND 21 41 | 42 55 GROUND +BSY 22 43 | 44 56 -BSY +ACK 23 45 | 46 57 -ACK +RST 24 47 | 48 58 -RST +MSG 25 49 | 50 59 -MSG +SEL 26 51 | 52 60 -SEL +C/D 27 53 | 54 61 -C/D +REQ 28 55 | 56 62 -REQ +I/O 29 57 | 58 63 -I/O GROUND 30 59 | 60 64 GROUND +DB(8) 31 61 | 62 65 -DB(8) +DB(9) 32 63 | 64 66 -DB(9) +DB(10) 33 65 | 66 67 -DB(10) +DB(11) 34 67 | 68 68 -DB(11) ============================================================================== NOTES: (1) The conductor number refers to the conductor position when using 0.025- inch centerline flat ribbon cable. Other cable types may be used to implement equivalent contact assignments. (2) 8 bit devices which connected to the P-cable shall leave the following signals open: -DB(12) -DB(13) -DB(14) -DB(15) -DB(P1) -DB(8) -DB(9) -DB(10) -DB(11) +DB(12) +DB(13) +DB(14) +DB(15) +DB(P1) +DB(8) +DB(9) +DB(10) +DB(11) All other signals shall be connected as defined. Table 4-6: Differential Contact Assignments - Q cable ============================================================================== Connector Cable Connector Signal Contact Conductor Contact Signal Name Number Number Number Name ------------------------------------------------------------------------------ +DB(28) 1 1 | 2 35 -DB(28) +DB(29) 2 3 | 4 36 -DB(29) +DB(30) 3 5 | 6 37 -DB(30) +DB(31) 4 7 | 8 38 -DB(31) +DB(P3) 5 9 | 10 39 -DB(P3) GROUND 6 11 | 12 40 GROUND +DB(16) 7 13 | 14 41 -DB(16) +DB(17) 8 15 | 16 42 -DB(17) +DB(18) 9 17 | 18 43 -DB(18) +DB(19) 10 19 | 20 44 -DB(19) +DB(20) 11 21 | 22 45 -DB(20) +DB(21) 12 23 | 24 46 -DB(21) +DB(22) 13 25 | 26 47 -DB(22) +DB(23) 14 27 | 28 48 -DB(23) +DB(P2) 15 29 | 30 49 -DB(P2) DIFFSENS 16 31 | 32 50 GROUND TERMPWRQ 17 33 | 34 51 TERMPWRQ TERMPWRQ 18 35 | 36 52 TERMPWRQ RESERVED 19 37 | 38 53 RESERVED TERMINATED 20 39 | 40 54 TERMINATED GROUND 21 41 | 42 55 GROUND TERMINATED 22 43 | 44 56 TERMINATED +ACKQ 23 45 | 46 57 -ACKQ TERMINATED 24 47 | 48 58 TERMINATED TERMINATED 25 49 | 50 59 TERMINATED TERMINATED 26 51 | 52 60 TERMINATED TERMINATED 27 53 | 54 61 TERMINATED +REQQ 28 55 | 56 62 -REQQ TERMINATED 29 57 | 58 63 TERMINATED GROUND 30 59 | 60 64 GROUND +DB(24) 31 61 | 62 65 -DB(24) +DB(25) 32 63 | 64 66 -DB(25) +DB(26) 33 65 | 66 67 -DB(26) +DB(27) 34 67 | 68 68 -DB(27) ============================================================================== NOTES: (1) The minus sign next to a signal indicates active low. (2) The conductor number refers to the conductor position when using 0.025- inch centerline flat ribbon cable. Other cable types may be used to implement equivalent contact assignments. Table 4-7: Differential Contact Assignments - L cable ============================================================================== Connector Cable Connector Signal Contact Conductor Contact Signal Name Number Number Number Name ------------------------------------------------------------------------------ TERMPWR 1 1 | 2 56 TERMPWR +DB(24) 2 3 | 4 57 -DB(24) +DB(25) 3 5 | 6 58 -DB(25) +DB(26) 4 7 | 8 59 -DB(26) +DB(27) 5 9 | 10 60 -DB(27) +DB(28) 6 11 | 12 61 -DB(28) +DB(29) 7 13 | 14 62 -DB(29) +DB(30) 8 15 | 16 63 -DB(30) +DB(31) 9 17 | 18 64 -DB(31) +DB(P3) 10 19 | 20 65 -DB(P3) +DB(12) 11 21 | 22 66 -DB(12) +DB(13) 12 23 | 24 67 -DB(13) +DB(14) 13 25 | 26 68 -DB(14) +DB(15) 14 27 | 28 69 -DB(15) +DB(P1) 15 29 | 30 70 -DB(P1) GROUND 16 31 | 32 71 GROUND +DB(0) 17 33 | 34 72 -DB(0) +DB(1) 18 35 | 36 73 -DB(1) +DB(2) 19 37 | 38 74 -DB(2) +DB(3) 20 39 | 40 75 -DB(3) +DB(4) 21 41 | 42 76 -DB(4) +DB(5) 22 43 | 44 77 -DB(5) +DB(6) 23 45 | 46 78 -DB(6) +DB(7) 24 47 | 48 79 -DB(7) +DB(P) 25 49 | 50 80 -DB(P) DIFFSENS 26 51 | 52 81 GROUND TERMPWR 27 53 | 54 82 TERMPWR TERMPWR 28 55 | 56 83 TERMPWR TERMPWR 29 57 | 58 84 TERMPWR +ATN 30 59 | 60 85 -ATN GROUND 31 61 | 62 86 GROUND +BSY 32 63 | 64 87 -BSY +ACK 33 65 | 66 88 -ACK +RST 34 67 | 68 89 -RST +MSG 35 69 | 70 90 -MSG +SEL 36 71 | 72 91 -SEL +C/D 37 73 | 74 92 -C/D +REQ 38 75 | 76 93 -REQ +I/O 39 77 | 78 94 -I/O GROUND 40 79 | 70 95 GROUND +DB(8) 41 81 | 82 96 -DB(8) +DB(9) 42 83 | 84 97 -DB(9) +DB(10) 43 85 | 86 98 -DB(10) +DB(11) 44 87 | 88 99 -DB(11) GROUND 45 89 | 90 100 GROUND +DB(16) 46 91 | 92 101 -DB(16) +DB(17) 47 93 | 94 102 -DB(17) +DB(18) 48 95 | 96 103 -DB(18) +DB(19) 49 97 | 98 104 -DB(19) +DB(20) 50 99 | 100 105 -DB(20) +DB(21) 51 101 | 102 106 -DB(21) +DB(22) 52 103 | 104 107 -DB(22) +DB(23) 53 105 | 106 108 -DB(23) +DB(P2) 54 107 | 108 109 -DB(P2) TERMPWR 55 109 | 110 110 TERMPWR ============================================================================== NOTES: (1) The minus sign next to a signal indicates active low. (2) The conductor number refers to the conductor position when using 0.025- inch centerline flat ribbon cable. Other cable types may be used to implement equivalent contact assignments. (3) 8 bit devices which connect to the L-cable shall leave the following signals open: -DB(12) -DB(13) -DB(14) -DB(15) -DB(P1) -DB(8) -DB(9) -DB(10) -DB(11) +DB(12) +DB(13) +DB(14) +DB(15) +DB(P1) +DB(8) +DB(9) +DB(10) +DB(11) -DB(20) -DB(21) -DB(22) -DB(23) -DB(P2) -DB(16) -DB(17) -DB(18) -DB(19) +DB(20) +DB(21) +DB(22) +DB(23) +DB(P2) +DB(16) +DB(17) +DB(18) +DB(19) -DB(28) -DB(29) -DB(30) -DB(31) -DB(P3) -DB(24) -DB(25) -DB(26) -DB(27) +DB(28) +DB(29) +DB(30) +DB(31) +DB(P3) +DB(24) +DB(25) +DB(26) +DB(27) All other signals shall be connected as defined. (4) 16 bit devices which connect to the L-cable shall leave the following signals open: -DB(20) -DB(21) -DB(22) -DB(23) -DB(P2) -DB(16) -DB(17) -DB(18) -DB(19) +DB(20) +DB(21) +DB(22) +DB(23) +DB(P2) +DB(16) +DB(17) +DB(18) +DB(19) -DB(28) -DB(29) -DB(30) -DB(31) -DB(P3) -DB(24) -DB(25) -DB(26) -DB(27) +DB(28) +DB(29) +DB(30) +DB(31) +DB(P3) +DB(24) +DB(25) +DB(26) +DB(27) All other signals shall be connected as defined. 4.4. Electrical Description For the measurements in this section, SCSI bus termination is assumed to be external to the SCSI device. See 4.4.1 for the terminating requirements for the RESERVED lines. SCSI devices may have the provision for allowing optional internal termination. 4.4.1. Single-Ended Alternative All signals not defined as RESERVED, GROUND, OPEN, or TERMPWR shall be terminated at both ends of the cable. The implementer may choose one of the following two methods to terminate each end (see Figure 4-5): (1) The termination of each signal shall consist of 220 ohms (+_5%) to the TERMPWR line and 330 ohms (+_5%) to ground. Using resistors with +_1% tolerance improves noise margins. (2) The termination of each signal shall meet these requirements: (a) The terminators shall each supply a characteristic impedance between 100 and 132 ohms. (b) The terminators shall be powered by the TERMPWR line and may receive additional power from other sources but shall not require such additional power for proper operation (see 4.4.3). (c) The current available to any signal line driver shall not exceed 48 milliamps when the driver asserts the line and pulls it to 0.5 volts dc. Only 44.8 mA of this current shall be available from the two terminators. (d) The voltage on all released signal lines shall be at least 2.5 volts dc when the TERMPWR line is within specified values (see 4.4.3). (e) These conditions shall be met with any legal configuration of targets and initiators as long as at least one device is supplying TERMPWR. The first termination method above is the same as in SCSI-1. The second termination method is recommended for better signal quality. 4.4.1.1. Output Characteristics All signals shall use open-collector or three-state drivers. Each signal driven by an SCSI device shall have the following output characteristics when measured at the SCSI device's connector: VOL (Low-level output voltage) = 0.0 to 0.5 volts dc at 48 mA sinking (signal assertion) VOH (High-level output voltage) = 2.5 to 5.25 volts dc (signal negation) 4.4.1.2. Input Characteristics SCSI devices with power on shall meet the following electrical characteristics on each signal (including both receivers and passive drivers): VIL (Low-level input voltage) = 0.0 to 0.8 volts dc (signal true) VIH (High-level input voltage) = 2.0 to 5.25 volts dc (signal false) IIL (Low-level input current) = -0.4 to 0.0 mA at VI = 0.5 volts dc IIH (High-level input current) = 0.0 to 0.1 mA at VI = 2.7 volts dc Minimum input hysteresis = 0.2 volts dc Maximum input capacitance = 25 pF (measured at the device connector closest to the stub, if any, within the device) It is recommended that SCSI devices with power off also meet the above IIL and IIH electrical characteristics on each signal. To achieve maximum noise immunity and to assure proper operation with complex cable configurations, it is recommended that the nominal switching threshold be approximately 1.4 volts. 4.4.2. Differential Alternative All signals consist of two lines denoted +SIGNAL and -SIGNAL. A signal is true when +SIGNAL is more positive than -SIGNAL, and a signal is false when -SIGNAL is more positive than +SIGNAL. All assigned signals of the P, Q, and L cables described in 4.6 shall be terminated at each end of the cable with a terminator network as shown in Figure 4-6. Resistor tolerances in the terminator network shall be +_5% or less. The DIFFSENS signal of the connector is used as an active high enable for the differential drivers. If a single-ended device or terminator is inadvertently connected, this signal is grounded, disabling the differential drivers (see Figure 4-4 and Figure 4-5). 4.4.2.1. Output Characteristics Each signal driven by an SCSI device shall have the following output characteristics when measured at the SCSI device's connector: VOL (Low-level output voltage) = 1.7 V maximum at IOL (Low-level output current) = 55 mA. VOH (High-level output voltage) = 2.7 V minimum at IOH (High-level output current) = -55 mA. VOD (Differential output voltage) = 1.0 V minimum with common-mode voltage ranges from -7 to +12 volts dc. VOL and VOH shall be as measured between the output terminal and the SCSI device's logic ground reference. The output characteristics shall additionally conform to ISO 8482. 4.4.2.2. Input Characteristics SCSI devices shall meet the following electrical characteristics on each signal (including both receivers and passive drivers): II (Input current on either input) = +_ 2.0 mA maximum. Maximum input capacitance = 25 pF. The II requirement shall be met with the input voltage varying between -7 and +12 volts dc, with power on or off, and with the hysteresis equaling 35 millivolts, minimum. The input characteristics shall additionally conform to ISO 8482. 4.4.3. Terminator Power SCSI initiators shall supply terminator power to the TERMPWR contact(s) and, if it implements the wide SCSI option, to the TERMPWRQ contacts. This power shall be supplied through a diode or similar semiconductor that prevents backflow of power to the SCSI device. Targets and SCSI devices that become temporary initiators (e.g., targets which implement the COPY command or asynchronous event notification) are not required to supply terminator power. Any SCSI device may supply terminator power. Interface error rates are lower if the termination voltage is maintained at the extreme ends of the cable. All terminators independent of location shall be powered from the TERMPWR and TERMPWRQ contact(s). The use of keyed connectors is recommended in SCSI devices that provide terminator power to prevent accidental grounding or misconnection of terminator power. IMPLEMENTORS NOTE: Regulatory agencies may require limiting maximum (short circuit) current to the terminator power lines. Recommended current limiting is 2 amperes for TERMPWR on the P cable and 2 amperes for TERMPWRQ on the Q cable. Recommended current limiting is 3 amperes for TERMPWR on the L cable. For systems utilizing multiple initiators, the initiators may be configured with option straps or current limiting devices. Maximum available current should not exceed 5 amperes. SCSI devices shall sink no more than 1.0 mA from TERMPWR and no more than 1.0 mA from TERMPWRQ except to power an optional internal terminator. Single-ended SCSI devices providing terminator power on cable P and cable Q shall have the following characteristics: VTerm = 4.25 to 5.25 volts dc 1500 mA minimum source drive capability Single-ended SCSI devices providing terminator power on cable L shall have the following characteristics: VTerm = 4.25 to 5.25 volts dc 2400 mA minimum source drive capability Differential SCSI devices providing terminator power on cable P and cable Q shall have the following characteristics: VTerm = 4.0 to 5.25 volts dc 1000 mA minimum source drive capability Differential SCSI devices providing terminator power on cable L shall have the following characteristics: VTerm = 4.0 to 5.25 volts dc 1600 mA minimum source drive capability IMPLEMENTORS NOTE: It is recommended that the terminator power lines be decoupled at each terminator with at least a 2.2 microfarad high-frequency capacitor to improve signal quality. Alternative 1 Termination Alternative 2 Termination Figure 4-5: Termination for Single-Ended Devices Figure 4-6: Termination for Differential Devices Figure 4-7: Differential Driver Protection Circuit 4.4.4. RESERVED Lines The lines labeled RESERVED shall be connected to ground in the bus terminator assemblies or in the end devices on the SCSI cable. The RESERVED lines shall be open in the other SCSI devices. 4.5. SCSI Bus Communication on the SCSI bus is allowed between only two SCSI devices at any given time. There is a maximum of 16 SCSI devices on a P cabled system and 32 SCSI devices on a P/Q and L cabled systems. Each SCSI device has an SCSI ID bit assigned as shown in Figure 4-8. Three sample system configurations are shown in Figure 4-9. When two SCSI devices communicate on the SCSI bus, one acts as an initiator and the other acts as a target. The initiator originates an operation and the target performs the operation. An SCSI device usually has a fixed role as an initiator or target, but some devices may be able to assume either role. An initiator may address up to 32 peripheral devices that are connected to a target on a P/Q and L cabled system. Three sample system configurations are shown in Figure 4-8. SCSI ID bits for P, P/Q, and L peripheral devices: DB(7) DB(6) DB(5) DB(4) DB(3) DB(2) DB(1) DB(0)
Lowest SCSI ID SCSI ID P Cable 7 0 15 8 P/Q Cable 7 0 15 8 23 16 31 24 L Cable 7 0 15 8 23 16 31 24 IMPLEMENTORS NOTE: It is recommended that new implementations wait for the SEL signal to become true before releasing the BSY signal and SCSI ID bit when arbitration is lost. (5) The SCSI device that wins arbitration shall wait at least a bus clear delay plus a bus settle delay after asserting the SEL signal before changing any signals. NOTE: The SCSI ID bit is a single bit on the DATA BUS that corresponds to the SCSI device's unique SCSI address. All other DATA BUS bits shall be released by the SCSI device. Parity is not valid during the ARBITRATION phase. During the ARBITRATION phase, DB(PX) may be released or asserted, but shall not be actively driven false. 5.1.3. SELECTION Phase The SELECTION phase allows an initiator to select a target for the purpose of initiating some target function (e.g., READ or WRITE command). During the SELECTION phase the I/O signal is negated so that this phase can be distinguished from the RESELECTION phase. The SCSI device that won the arbitration has both the BSY and SEL signals asserted and has delayed at least a bus clear delay plus a bus settle delay before ending the ARBITRATION phase. The SCSI device that won the arbitration becomes an initiator by not asserting the I/O signal. The initiator shall set the DATA BUS to a value which is the OR of its SCSI ID bit and the target's SCSI ID bit and it shall assert the ATN signal (indicating that a MESSAGE OUT phase is to follow the SELECTION phase). An initiator which has a 16- or 32-bit data bus shall drive its entire data bus even if the initiator supports fewer SCSI IDs. The initiator shall then wait at least two deskew delays and release the BSY signal. The initiator shall then wait at least a bus settle delay before looking for a response from the target. The target shall determine that it is selected when the SEL signal and its SCSI ID bit are true and the BSY and I/O signals are false for at least a bus settle delay. The selected target may examine the DATA BUS in order to determine the SCSI ID of the selecting initiator. The selected target shall then assert the BSY signal within a selection abort time of its most recent detection of being selected; this is required for correct operation of the selection time-out procedure. The SCSI device shall check parity as follows: (a) DB(7-0,P) shall be checked for odd parity (b) DB(15-8,P1) shall be checked for odd parity if there is at least one bit active on DB(31-8,P1,P2,P3) (c) DB(23-16,P2) shall each be checked for odd parity if there is at least one bit active on DB(31-16,P2,P3) (d) DB(31-24,P3) shall each be checked for odd parity if there is at least one bit active on DB(31-16,P2,P3). IMPLEMENTORS NOTE: These rules are necessary to permit interoperation of devices with different bus widths. For example, if a 16-bit device selects a 32-bit device, the 32-bit device will observe invalid parity on the upper 16 bits of the data bus. The SCSI device shall not respond to SELECTION or RESELECTION phases if one or more of the following occur: (a) No SCSI ID bits are true on any of the DATA BUS bytes (b) Bad parity is detected on one or more DATA BUS bytes (c) More than two SCSI ID bits are true on the DATA BUS (d) In the case of SELECTION phase, no SCSI ID bits are true on bits DB(7-0) and there are less than two SCSI ID bits true on the remaining bits of the DATA BUS. In the case of RESELECTION phase, there are other than two SCSI ID bits true on the DATA BUS. IMPLEMENTORS NOTE: If a target chooses to support the single-initiator option or the selection-without-asserting-ATN options of SCSI-1, it may respond as described in the SCSI-1 standard. No less than two deskew delays after the initiator detects the BSY signal is true, it shall release the SEL signal and may change the DATA BUS. The target shall wait until the SEL signal is false before asserting the REQ signal to enter an information transfer phase. 5.1.3.1. SELECTION Time-out Procedure Two optional selection time-out procedures are specified for clearing the SCSI bus if the initiator waits a minimum of a selection time-out delay and there has been no BSY signal response from the target: (1) Optionally, the initiator shall assert the RST signal (see 5.2.2). (2) Optionally, the initiator shall continue asserting the SEL and ATN signals and shall release the DATA BUS. If the initiator has not detected the BSY signal to be true after at least a selection abort time plus two deskew delays, the initiator shall release the SEL and ATN signals allowing the SCSI bus to go to the BUS FREE phase. SCSI devices shall ensure that when responding to selection that the selection was still valid within a selection abort time of their assertion of the BSY signal. Failure to comply with this requirement could result in an improper selection (two targets connected to the same initiator, wrong target connected to an initiator, or a target connected to no initiator). 5.1.4. RESELECTION Phase RESELECTION is an optional phase that allows a target to reconnect to an initiator for the purpose of continuing some operation that was previously started by the initiator but was suspended by the target, (i.e., the target disconnected by allowing a BUS FREE phase to occur before the operation was complete). 5.1.4.1. RESELECTION Upon completing the ARBITRATION phase, the winning SCSI device has both the BSY and SEL signals asserted and has delayed at least a bus clear delay plus a bus settle delay. The winning SCSI device becomes a target by asserting the I/O signal. The winning SCSI device shall also set the DATA BUS to a value that is the logical OR of its SCSI ID bit and the initiator's SCSI ID bit. A target which has a 16- or 32-bit data bus shall drive its entire data bus even if the target supports fewer SCSI IDs. The target shall wait at least two deskew delays and release the BSY signal. The target shall then wait at least a bus settle delay before looking for a response from the initiator. The initiator shall determine that it is reselected when the SEL and I/O signals and its SCSI ID bit are true and the BSY signal is false for at least a bus settle delay. The reselected initiator may examine the DATA BUS in order to determine the SCSI ID of the reselecting target. The reselected initiator shall then assert the BSY signal within a selection abort time of its most recent detection of being reselected; this is required for correct operation of the time-out procedure. The initiator shall not respond to a RESELECTION phase if bad parity is detected or other than two SCSI ID bits are true as described in 5.1.3. After the target detects the BSY signal is true, it shall also assert the BSY signal and wait at least two deskew delays and then release the SEL signal. The target may then change the I/O signal and the DATA BUS. After the reselected initiator detects the SEL signal is false, it shall release the BSY signal. The target shall continue asserting the BSY signal until it relinquishes the SCSI bus. NOTE: When the target is asserting the BSY signal, a transmission line phenomenon known as a "wired-OR glitch" may cause the BSY signal to appear false for up to a round-trip propagation delay following the release of the BSY signal by the initiator. This is the reason why the BUS FREE phase is recognized only after both the BSY and SEL signals are continuously false for a minimum of a bus settle delay. Cables longer than 25 meters should not be used even if the chosen driver, receiver, and cable provide adequate noise margins, because they increase the duration of the glitch and could cause SCSI devices to inadvertently detect the BUS FREE phase. 5.1.4.2. RESELECTION Time-out Procedure Two optional RESELECTION time-out procedures are specified for clearing the SCSI bus during a RESELECTION phase if the target waits a minimum of a selection time-out delay and there has been no BSY signal response from the initiator: (1) Optionally, the target shall assert the RST signal (see 5.2.2). (2) Optionally, the target shall continue asserting the SEL and I/O signals and shall release all DATA BUS signals. If the target has not detected the BSY signal to be true after at least a selection abort time plus two deskew delays, the target shall release the SEL and I/O signals allowing the SCSI bus to go to the BUS FREE phase. SCSI devices that respond to the RESELECTION phase shall ensure that the reselection was still valid within a selection abort time of their assertion of the BSY signal. Failure to comply with this requirement could result in an improper reselection (two initiators connected to the same target or the wrong initiator connected to a target). 5.1.5. Information Transfer Phases NOTE: The COMMAND, DATA, STATUS, and MESSAGE phases are all grouped together as the information transfer phases because they are all used to transfer data or control information via the DATA BUS. The actual content of the information is beyond the scope of this section. The C/D, I/O, and MSG signals are used to distinguish between the different information transfer phases (see Table 5-1). The target drives these three signals and therefore controls all changes from one phase to another. The initiator can request a MESSAGE OUT phase by asserting the ATN signal, while the target can cause the BUS FREE phase by releasing the MSG, C/D, I/O, and BSY signals. The information transfer phases use one or more REQ/ACK handshakes to control the information transfer. Each REQ/ACK handshake allows the transfer of one byte of information. During the information transfer phases the BSY signal shall remain true and the SEL signal shall remain false. Additionally, during the information transfer phases, the target shall continuously envelope the REQ/ACK handshake(s) with the C/D, I/O, and MSG signals in such a manner that these control signals are valid for a bus settle delay before the assertion of the REQ signal of the first handshake and remain valid until after the negation of the ACK signal at the end of the handshake of the last transfer of the phase. IMPLEMENTORS NOTES: (1) After the negation of the ACK signal of the last transfer of the phase, the target may prepare for a new phase by asserting or negating the C/D, I/O, and MSG signals. These signals may be changed together or individually. They may be changed in any order and may be changed more than once. It is desirable that each line change only once. A new phase does not begin until the REQ signal is asserted for the first byte of the new phase. (2) A phase is defined as ending when the C/D, I/O, or MSG signals change after the negation of the ACK signal. The time between the end of a phase and the assertion of the REQ signal beginning a new phase is undefined. An initiator is allowed to anticipate a new phase based on the previous phase, the expected new phase, and early information provided by changes in the C/D, I/O, and MSG signals. However, the anticipated phase is not valid until the REQ signal is asserted at the beginning of a the next phase. Table 5-1: Information Transfer Phases ============================================================================== Signal ----------- MSG C/D I/O Phase Name Direction Of Transfer Comment ------------------------------------------------------------------------------ 0 0 0 DATA OUT Initiator to target \ Data 0 0 1 DATA IN Initiator from target / Phase 0 1 0 COMMAND Initiator to target 0 1 1 STATUS Initiator from target 1 0 0 * 1 0 1 * 1 1 0 MESSAGE OUT Initiator to target \ Message 1 1 1 MESSAGE IN Initiator from target / Phase ============================================================================== Key: 0 = False, 1 = True, * = Reserved for future standardization. 5.1.5.3. Wide Data Transfer Wide data transfer is optional and may be used in the DATA phase only if a nonzero wide data transfer agreement is in effect. The messages determine the use of wide mode by both SCSI devices and establish a data path width to be used during the DATA phase. Wide data transfers of 16- or 32-bits may be established. Although not mandatory, it is recommended that targets and initiators that support 32-bit wide transfers also support 16-bit wide transfers as well. All SCSI devices shall support 8-bit data transfers. During 16-bit wide data transfers, the first and second logical data bytes for each data phase shall be transferred across the DB(7-0,P) and DB(15-8,P2) signals, respectively, on the P cable or the L cable. Subsequent pairs of data bytes are likewise transferred in parallel across the P cable or the L cable(see Figure 5-1). During 32-bit wide data transfers on a P/Q cabled system, the first and second logical data bytes for each data phase shall be transferred across the DB(7-0,P) and DB(15-8,P2) signals, respectively, on the P cable, and the third and fourth logical data bytes shall be transferred across the DB(23-16,P2) and DB(31-24,P3) signals, respectively, on the Q cable. Subsequent pairs of data bytes are likewise transferred in parallel across the P and Q cables (see Figure 5-1). During 32-bit wide data transfers on a L cabled system, the first, second, third, and fourth logical data bytes for each data phase shall be transferred across the DB(7-0,P), DB(15-8,P2), DB(23-16,P2), and DB(31-24,P3) signals, respectively, on the L cable. Subsequent pairs of data bytes are likewise transferred in parallel across the L cable (see Figure 5-1). When transferring bytes W, X, Y and Z across the three bus widths, they are transferred as shown below: Hand- 8-bit 16-bit 32-bit shake ______ _____ _______ ______ # P Cable P cable / Q Cable \/ P Cable \ +-------+ +-------+-------+ +-------+-------+-------+-------+ 1 | W | | X | W | | Z | Y | X | W | +-------+ +-------+-------+ +-------+-------+-------+-------+ 2 | X | | Z | Y | 31...24 23...16 15....8 7.....0 +-------+ +-------+-------+ Bit Number 3 | Y | 15....8 7.....0 +-------+ 32-bit 4 | Z | Bit Number ______ _____ _______ ______ +-------+ / L Cable \ 7.....0 +-------+-------+-------+-------+ | Z | Y | X | W | Bit Number +-------+-------+-------+-------+ 31...24 23...16 15....8 7.....0 Bit Number NOTE: This figure does not represent how these bytes are stored in the initiator's memory, which may be different. Figure 5-1: Wide SCSI Byte Ordering If the last data byte transferred for a command does not fall on the DB(15- 8,P1) signals for a 16-bit wide transfer or the DB(31-24,P3) signals for a 32- bit wide transfer, then the values of the remaining higher-numbered bits are undefined. However, parity bits for these undefined bytes shall be valid for whatever data is placed on the bus. On a P/Q cabled system to ensure proper data integrity, certain sequence requirements shall be met between the REQ/ACK handshakes on the P cable and the REQQ/ACKQ handshakes on the Q cable: (1) The REQQ and ACKQ signals shall only be asserted during data phases while a nonzero wide data transfer agreement is in effect. These signals shall not be asserted during other phases. (2) The same information transfer mode (asynchronous or synchronous) shall be used for both the P cable and the Q cable. If synchronous data transfer mode is in effect, the same REQ/ACK offset and transfer period shall be used for both cables. (3) The information transfer procedures defined in the ANSI SCSI-2 Standard X3.131-1990 sections 5.1.5.1 Asynchronous Information Transfer and 5.1.5.2 Synchronous Data Transfer for the P cable (the REQ, ACK, and DB(15-0,P,P1) signals) shall also apply to the Q cable (the REQQ, ACKQ, and DB(31-16,P2,P3) signals). The only means available for a target to manage the timing relationship between the signals on the two cables is its management of the REQ and REQQ signals. Similarly, the only means for the initiator to manage the timing between the two cables is its management of the ACK and ACKQ signals. (4) The target shall ensure that the number of REQ/ACK handshakes and the number of REQQ/ACKQ handshakes in a data phase are equal before it changes to another phase. The target shall not change the phase until the ACK and ACKQ signals have both become false for the last REQ/ACK handshake and the last REQQ/ACKQ handshake. IMPLEMENTORS NOTE: If any violations of these rules are detected by the target, the target may attempt to end the data phase and return CHECK CONDITION status. If it is impossible to correctly terminate the data phase, the target may abnormally terminate the I/O process by an unexpected disconnect. If any violations of these rules are detected by the initiator, the initiator may attempt to send an INITIATOR DETECTED ERROR message to the target. If the initiator is unable to terminate the I/O process normally, it may generate the reset condition. 7. All Device Types 7.2. Commands for All Device Types The operation codes for commands that apply to all device types are listed in Table 7-1. Table 7-1: Commands for All Device Types ============================================================================== Operation Command Name Code Type Section ------------------------------------------------------------------------------ CHANGE DEFINITION 40h O 7.2.1 COMPARE 39h O 7.2.2 COPY 18h O 7.2.3 COPY AND VERIFY 3Ah O 7.2.4 INQUIRY 12h M 7.2.5 LOG SELECT 4Ch O 7.2.6 LOG SENSE 4Dh O 7.2.7 MODE SELECT(6) 15h Z 7.2.8 MODE SELECT(10) 55h Z 7.2.9 MODE SENSE(6) 1Ah Z 7.2.10 MODE SENSE(10) 5Ah Z 7.2.11 READ BUFFER 3Ch O 7.2.12 RECEIVE DIAGNOSTIC RESULTS 1Ch O 7.2.13 REQUEST SENSE 03h M 7.2.14 SEND DIAGNOSTIC 1Dh O 7.2.15 TEST UNIT READY 00h M 7.2.16 WRITE BUFFER 3Bh O 7.2.17 ============================================================================== Key: M = Command implementation is mandatory. O = Command implementation is optional. Z = Command implementation is device type specific. 7.2.3. COPY Command Table 7-5: COPY Command ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Operation Code (18h) | -----+--------------------------+-----------------------------------+--------+ 1 | Logical Unit Number | Reserved | Pad | -----+--------------------------+-----------------------------------+--------+ 2 | (MSB) | - - -+- - Parameter List Length - -| 4 | (LSB) | -----+-----------------------------------------------------------------------+ 5 | Control | ============================================================================== The COPY command (Table 7-5) provides a means to copy data from one logical unit to another or the same logical unit. The logical unit that receives and performs the COPY command is called the copy manager. The copy manager is responsible for copying data from a logical unit (source device) to a logical unit (destination device). These logical units may reside on different SCSI devices or the same SCSI device (in fact all three may be the same logical unit). Some SCSI devices that implement this command may not support copies to or from another SCSI device, or may not support third party copies (i.e., both the source and the destination logical units reside on other SCSI devices). The pad bit (7.2.3.7) is used in conjunction with the Cat bit (7.2.3.7) in the segment descriptors to define what action should be taken when a segment of the copy does not fit exactly into an integer number of destination blocks. The parameter list length field specifies the length in bytes of the parameters that shall be sent during the DATA OUT phase of the command. A parameter list length of zero indicates that no data shall be transferred. This condition shall not be considered as an error. The COPY parameter list (Table 7-6) begins with a four-byte header that contains the COPY function code and priority. Following the header is one or more segment descriptors. Table 7-6: COPY Parameter List ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | COPY Function Code | Priority | -----+--------------------------------------------+--------------------------+ 1 | Vendor Specific | -----+-----------------------------------------------------------------------+ 2 | Reserved | -----+-----------------------------------------------------------------------+ 3 | Reserved | ============================================================================== | Segment Descriptor(s) | ============================================================================== 0 - | Segment Descriptor 0 | xx | (See specific table for length.) | -----+-----------------------------------------------------------------------+ | . | | . | | . | -----+-----------------------------------------------------------------------+ 0 - | Segment Descriptor n | xx | (See specific table for length.) | ============================================================================== The COPY function code field defines a specific format for the segment descriptors. The COPY function codes are defined in Table 7-7. A target need not support all function codes for its device type. The priority field of the COPY parameter list establishes the relative priority of this COPY command to other commands being executed by the same target. All other commands are assumed to have a priority of 1. Priority 0 is the highest priority with increasing values indicating lower priorities. The segment descriptor formats are determined by the COPY function code. The segment descriptor format used for write-once devices, CD-ROM devices, and optical-memory devices shall be the same as for direct-access devices. The segment descriptor format used for printer devices, communications, and processor devices, shall be the same as for sequential-access devices. Thus a COPY from a write-once device to a printer device uses the same segment descriptor format as for a COPY from a direct-access device to a sequential- access device (see Table 7-7). The segment descriptor formats are described in Tables 7-8 through 7-11. A maximum of 256 segment descriptors are permitted. The segment descriptors are identified by ascending numbers beginning with zero. Table 7-7: COPY Function Codes ============================================================================== Peripheral Device Type COPY Segment ---------------------- Function Descriptor Source Destination Code Table Comments ------------------------------------------------------------------------------ Direct-Access Sequential-Access 0 7-8 (0,4,5,7) (1,2,3,9) Sequential-Access Direct-Access 1 7-8 (1,3,9) (0,4,7) Direct-Access Direct-Access 2 7-9 (0,4,5,7) (0,4,7) Sequential-Access Sequential-Access 3 7-10 (1,3,9) (1,2,3,9) Sequential-Access Sequential-Access 4 7-11 Image Copy (1) (1) Direct-Access Sequential-Access 5 7-new1 32 address (0,4,5,7) (1,2,3,9) Sequential-Access Direct-Access 6 7-new1 32 address (1,3,9) (0,4,7) Direct-Access Direct-Access 7 7-new2 32 address (0,4,5,7) (0,4,7) Sequential-Access Sequential-Access 8 7-new3 32 address (1,3,9) (1,2,3,9) Sequential-Access Sequential-Access 9 7-new4 Image Copy; (1) (1) 32 address ============================================================================== The numbers in parenthesis are the peripheral device type codes (see Table 7-17). COPY function code: 00h Direct-access to sequential-access 01h Sequential-access to writable direct-access 02h Direct-access to writable direct-access 03h Sequential-access to sequential-access 04h Sequential-access image copy 05h Direct-access to sequential-access 06h Sequential-access to writable direct-access 07h Direct-access to writable direct-access 08h Sequential-access to sequential-access 09h Sequential-access image copy 0Ah - 0Fh Reserved 10h - 1Fh Vendor specific For the COMPARE command the destination direct-access device does not have to be a writable device. 7.2.3.1. Errors Detected by the Managing SCSI Device Two classes of exception conditions may occur during execution of a COPY command. The first class consists of those exception conditions detected by the SCSI device that received the COPY command and is managing the execution of the command. These conditions include parity errors while transferring the COPY command and status byte, invalid parameters in the COPY command, invalid segment descriptors, and inability of the SCSI device controlling the COPY functions to continue operating. In the event of such an exception condition, the SCSI device managing the COPY shall: (1) Terminate the COPY command with CHECK CONDITION status. (2) The valid bit in the sense data shall be set to one. The segment number shall contain the number of the segment descriptor being processed at the time the exception condition is detected. The sense key shall contain the sense key code describing the exception condition (i.e., not COPY ABORTED). The information field shall contain the difference between the number of blocks field in the segment descriptor being processed at the time of the failure and the number of blocks successfully copied. This number is the residue of unprocessed blocks remaining for the segment descriptor. 7.2.3.2. Errors Detected by a Target The second class of errors consists of exception conditions detected by the SCSI device transferring data at the request of the SCSI device managing the transfer. The SCSI device managing the COPY command detects exception conditions by receiving CHECK CONDITION status from one of the SCSI devices it is managing. It then shall recover the sense data associated with the exception condition. The SCSI device managing the COPY command may also be the source or destination SCSI device (or both). It shall distinguish between a failure of the management of the COPY and a failure of the data transfer being requested. It shall then create the appropriate sense data internally. After recovering the sense data associated with the detected error, the SCSI device managing the COPY command shall: (1) Terminate the COPY command with CHECK CONDITION status. (2) The valid bit in the sense data shall be set to one. The segment number shall contain the number of the segment descriptor being processed at the time the exception condition is detected. The sense key shall be set to COPY ABORTED. The information field shall contain the difference between the number of blocks field in the segment descriptor being processed at the time of the failure and the number of blocks successfully copied. This number is the residue of unprocessed blocks remaining for the segment descriptor. The first byte of the command-specific information field shall specify the starting byte number, relative to the first byte of sense data, of an area that contains (unchanged) the source logical unit's status byte and sense data. A zero value indicates that no status byte or sense data is being returned for the source logical unit. The second byte of the command-specific information field shall specify the starting byte number, relative to the first byte of sense data, of an area that contains (unchanged) the destination logical unit's status byte and sense data. A zero value indicates that no status byte or sense data is being returned for the destination logical unit. 7.2.3.3. COPY Function Code 00h, 01h, 05h, and 06h The format for the segment descriptors for COPY transfers between direct- access and sequential-access devices is specified in Table 7-8 and Table 7-new1. These formats are required for COPY function codes 00h or 01h and COPY function codes 05h and 06h, respectively. The segment descriptor may be repeated up to 256 times within the parameter list length specified in the command descriptor block. Table 7-8: Segment Descriptor for COPY Function Codes 00h and 01h ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Source Address |Reserved| Cat | Source LUN | -----+--------------------------+--------+--------+--------------------------+ 1 | Destination Address | Reserved | Destination LUN | -----+--------------------------+-----------------+--------------------------+ 2 | (MSB) | - - -+--- Sequential-Access Device Block Length ---+ 3 | (LSB) | -----+-----------------------------------------------------------------------+ 4 | (MSB) | - - -+- - Direct-Access Device Number of Blocks - -| 7 | (LSB) | -----+-----------------------------------------------------------------------+ 8 | (MSB) | - - -+- - Direct-Access Device Logical Block Address - -| 11 | (LSB) | ============================================================================== Table 7-new1: Segment Descriptor for Function Codes 05h and 06h ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Source Address | -----+--------+-----------------------------------+--------------------------+ 1 | CAT | Reserved | Source LUN | -----+--------+-----------------------------------+--------------------------+ 2 | Destination Address | -----+--------------------------------------------+--------------------------+ 3 | Reserved | Destination LUN | -----+--------------------------------------------+--------------------------+ 4 | Reserved | -----+-----------------------------------------------------------------------+ 5 | (MSB) | - - -+--- Sequential-Access Device Block Length ---+ 7 | (LSB) | -----+-----------------------------------------------------------------------+ 8 | (MSB) | - - -+- - Direct-Access Device Number of Blocks - -| 11 | (LSB) | -----+-----------------------------------------------------------------------+ 12 | (MSB) | - - -+- - Direct-Access Device Logical Block Address - -| 15 | (LSB) | ============================================================================== The source address and source LUN fields specify the SCSI bus ID and logical unit of the device to copy the data from for this segment of the COPY command. The destination address and destination LUN fields specify the SCSI bus ID and logical unit to copy the data to for this segment of the COPY command. Some SCSI devices may not support third-party COPY in which the copying SCSI device is not the source or destination device. Some SCSI devices only support COPY within the SCSI device and not to other SCSI devices. If an unsupported COPY operation is requested, the command shall be terminated with CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST with an additional sense code of INVALID FIELD IN PARAMETER LIST (see 7.2.3.1). A catenate (Cat) bit (optional) of one indicates that the COPY manager shall catenate the last source block of a segment with the first source block of the next segment if the last source block does not end exactly at the end of the destination block. The definition of a cat bit of zero depends on the setting of the pad bit in the command descriptor block (see 7.2.3.7). The sequential-access device block-length field specifies the block length to be used on the sequential-access logical unit during this segment of the COPY command. If the SCSI device managing the COPY knows this block length is not supported, the command shall be terminated with CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST with an additional sense code of INVALID FIELD IN PARAMETER LIST . If the block length is found to be invalid while executing a read or write operation to the sequential-access device, the command shall be terminated with CHECK CONDITION status and the sense key shall be set to COPY ABORTED (see 7.2.3.2). The direct-access device number of blocks field specifies the number of blocks in the current segment to be copied. A value of zero indicates that no blocks shall be transferred in this segment. The direct-access device logical block address field specifies the starting logical block address on the logical unit for this segment. 7.2.3.4. COPY Function Code 02hand 07h The format for the segment descriptors for COPY transfers among direct- access devices is specified in Table 7-9 and Table 7-new2. These formats are required for COPY function code 02h and COPY function code 07h, respectively. The segment descriptor may be repeated up to 256 times within the parameter list length specified in the command descriptor block. Table 7-9: Segment Descriptor for COPY Function Code 02h ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Source Address | DC | Cat | Source LUN | -----+--------------------------+--------+--------+--------------------------+ 1 | Destination Address | Reserved | Destination LUN | -----+--------------------------+-----------------+--------------------------+ 2 | Reserved | -----+-----------------------------------------------------------------------+ 3 | Reserved | -----+-----------------------------------------------------------------------+ 4 | (MSB) | - - -+- - Number of Blocks - -| 7 | (LSB) | -----+-----------------------------------------------------------------------+ 8 | (MSB) | - - -+- - Source Logical Block Address - -| 11 | (LSB) | -----+-----------------------------------------------------------------------+ 12 | (MSB) | - - -+- - Destination Logical Block Address - -| 15 | (LSB) | ============================================================================== Table 7-new2: Segment Descriptor for COPY Function Code 07h ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Source Address | -----+--------+-----------------------------------+--------------------------+ 1 | CAT | Reserved | Source LUN | -----+--------+-----------------------------------+--------------------------+ 2 | Destination Address | -----+--------+-----------------------------------+--------------------------+ 3 | DC | Reserved | Destination LUN | -----+--------+-----------------------------------+--------------------------+ 4 | (MSB) | - - -+- - Number of Blocks - -| 7 | (LSB) | -----+-----------------------------------------------------------------------+ 8 | (MSB) | - - -+- - Source Logical Block Address - -| 11 | (LSB) | -----+-----------------------------------------------------------------------+ 12 | (MSB) | - - -+- - Destination Logical Block Address - -| 15 | (LSB) | ============================================================================== See 7.2.3.3 for definitions of the source address, the source LUN, the destination address, the destination LUN, and CAT fields. A destination count (DC) bit of zero indicates that the number of blocks field refers to the source logical unit. A DC bit of one indicates that the number of blocks field refers to the destination logical unit. The number of blocks field specifies the number of blocks to be transferred to or from (depending on the DC bit) the device during this segment. A value of zero indicates that no blocks shall be transferred. The source logical block address field specifies the starting logical block address on the source device. The destination logical block address field specifies the starting logical block address on the destination device. 7.2.3.5. COPY Function Code 03h and 08h The format for the segment descriptors for COPY transfers among sequential- access devices is specified by Table 7-10 and Table 7-new3. These formats are required for COPY function code 03h and COPY function code 08h, respectively. The segment descriptor may be repeated up to 256 times within the parameter list length specified in the command descriptor block. Table 7-10: Segment Descriptor for COPY Function Code 03h ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Source Address | DC | Cat | Source LUN | -----+--------------------------+--------+--------+--------------------------+ 1 | Destination Address | Reserved | Destination LUN | -----+--------------------------+-----------------+--------------------------+ 2 | Reserved | -----+-----------------------------------------------------------------------+ 3 | Reserved | -----+-----------------------------------------------------------------------+ 4 | (MSB) | - - -+--- Source Block Length ---+ 5 | (LSB) | -----+-----------------------------------------------------------------------+ 6 | (MSB) | - - -+--- Destination Block Length ---+ 7 | (LSB) | -----+-----------------------------------------------------------------------+ 8 | (MSB) | - - -+- - Number of Blocks - -| 11 | (LSB) | ============================================================================== Table 7-new3: Segment Descriptor for COPY Function Code 08h ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Source Address | -----+--------+-----------------------------------+--------------------------+ 1 | CAT | Reserved | Source LUN | -----+--------+-----------------------------------+--------------------------+ 2 | Destination Address | -----+--------+-----------------------------------+--------------------------+ 3 | DC | Reserved | Destination LUN | -----+--------+-----------------------------------+--------------------------+ 4 | Reserved | -----+-----------------------------------------------------------------------+ 4 | Reserved | -----+-----------------------------------------------------------------------+ 6 | (MSB) | - - -+--- Source Block Length ---+ 8 | (LSB) | -----+-----------------------------------------------------------------------+ 9 | (MSB) | - - -+--- Destination Block Length ---+ 11 | (LSB) | -----+-----------------------------------------------------------------------+ 12 | (MSB) | - - -+- - Number of Blocks - -| 15 | (LSB) | ============================================================================== See 7.2.3.3 for definitions of the source address, the source LUN, the destination address, the destination LUN, and CAT fields. A destination count (DC) bit of zero indicates that the number of blocks field refers to the source logical unit. A DC bit of one indicates that the number of blocks field refers to the destination logical unit. The source block length field specifies the block-length of the source device for this segment of the COPY. A zero in this field indicates variable block-length. For non-zero values, this field shall match the logical unit's actual block-length. If block-length mismatches are detected prior to the beginning of the read operation by the SCSI device managing the COPY, the command shall be terminated with CHECK CONDITION status. The sense key shall be set to ILLEGAL REQUEST and the additional sense code shall be set to INVALID FIELD IN PARAMETER LIST (see 7.2.3.1). If the mismatches are detected during the read operation by the COPY manager, the command shall be terminated with CHECK CONDITION status. The sense key shall be set to COPY ABORTED (see 7.2.3.2). and the additional sense code shall be set to INVALID FIELD IN PARAMETER LIST. The destination block-length field specifies the block length to be used on the destination logical unit during the COPY. Destination block length mismatches are handled in an analogous manner as source block length mismatches. The number of blocks field specifies the number of blocks to be transferred to or from (depending on the DC bit) the device during this segment. A value of zero indicates that no blocks shall be transferred. 7.2.3.6. COPY Function Code 04h and 09h The format for the segment descriptors for image COPY transfers between sequential-access devices is specified in Table 7-11 and Table 7-new4. These formats are required for COPY function code 04h and COPY function code 09h, respectively. The segment descriptor may be repeated up to 256 times within the parameter list length specified in the command descriptor block. Table 7-11: Segment Descriptor for COPY Function Code 04h ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Source Address | Reserved | Source LUN | -----+--------------------------+-----------------+--------------------------+ 1 | Destination Address | Reserved | Destination LUN | -----+--------------------------+-----------------+--------------------------+ 2 | Count | -----+-----------------------------------------------------------------------+ 3 | | - - -+- - Reserved - -| 7 | | -----+-----------------------------------------------------------------------+ 8 | | - - -+- - Vendor Specific - -| 11 | | ============================================================================== Table 7-new4: Segment Descriptor for COPY Function Code 09h ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Source Address | -----+--------------------------------------------+--------------------------+ 1 | Reserved | Source LUN | -----+--------------------------------------------+--------------------------+ 2 | Destination Address | -----+--------------------------------------------+--------------------------+ 3 | Reserved | Destination LUN | -----+--------------------------------------------+--------------------------+ 4 | (MSB) | - - -+- - Count - -| 5 | (LSB) | -----+-----------------------------------------------------------------------+ 6 | | - - -+- - Reserved - -| 7 | | -----+-----------------------------------------------------------------------+ 8 | | - - -+- - Vendor Specific - -| 11 | | ============================================================================== See 7.2.3.3 for definitions of the source address, the source LUN, the destination address, the destination LUN, and CAT fields. The image mode COPY command copies an exact image of the source device medium to the destination device medium, beginning at their current positions. The copy function terminates when the source device: (1) encounters an end-of-partition as defined by the source device (2) encounters an end-of-data as defined by the source device (i.e., BLANK CHECK sense key) (3) has copied the number of consecutive filemarks specified in the count field from the source device to the destination device (4) has copied the number of consecutive setmarks specified in the count field from the source device to the destination device, if the RSmk bit in the device configuration page (see 9.3.3.1) is one. A count field of zero indicates that the COPY command shall not terminate due to any number of consecutive filemarks or setmarks. Other error or exception conditions (e.g., early-warning end-of-partition on the destination device) may cause the COPY command to terminate prior to completion. In such cases, it is not possible to calculate a residue, so the information field in the sense data shall be set to zero. 7.2.3.7. Copies With Unequal Block Lengths When copying data between two devices with unequal block lengths, it is possible for the last source block to not completely fill the last destination block for one or more segments in the COPY command. Two optional bits are defined to assist in controlling the copy manager's actions in this circumstance. The Pad bit (in the command descriptor block) and the Cat bit (in each applicable segment descriptor) are defined in Table 7-12. Table 7-12: Pad and Cat Bit Definition ============================================================================== Pad Cat COPY Manager's Action ---- ---- ------------------------------------------------------------------- 0 0 On inexact segments, it is device specific whether the COPY manager rejects the COPY command with CHECK CONDITION status and ILLEGAL REQUEST sense key, the COPY manager writes or accepts short blocks (variable-block mode on sequential-access devices), or the COPY manager adds pad characters (00h) to the destination block or strips pad characters from the source block. 1 0 On inexact segments, the COPY manager shall add pad characters (00h) to the destination block to completely fill the block or it shall strip pad characters from the source block, always stopping at the end of a complete block. X 1 The COPY manager shall always write or read complete blocks. On inexact segments, the remainder of the block contains data from the next segment. This code is not valid in the last segment of the COPY command. ============================================================================== IMPLEMENTORS NOTE: Use of pad characters is intended to assist in managing COPY commands between devices of different block lengths where partial-block residues may occur. The initiator which issued the COPY command is responsible for management of these pad areas (i.e., remembering where they are). One possible method is to write the COPY parameter list information to the destination medium prior to issuing the COPY command for backup and to read this information prior to issuing the COPY command for restore. 7.2.5. INQUIRY Command Table 7-14: INQUIRY Command ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Operation Code (12h) | -----+--------------------------+-----------------------------------+--------+ 1 | Logical Unit Number | Reserved | EVPD | -----+--------------------------+-----------------------------------+--------+ 2 | Page Code | -----+-----------------------------------------------------------------------+ 3 | Reserved | -----+-----------------------------------------------------------------------+ 4 | Allocation Length | -----+-----------------------------------------------------------------------+ 5 | Control | ============================================================================== The INQUIRY command (Table 7-14) requests that information regarding parameters of the target and its attached peripheral device(s) be sent to the initiator. An option allows the initiator to request additional information about the target or logical unit (see 7.2.5.2). An enable vital product data (EVPD) bit of one specifies that the target shall return the optional vital product data specified by the page code field. If the target does not support vital product data and this bit is set to one, the target shall return CHECK CONDITION status with the sense key set to ILLEGAL REQUEST and an additional sense code of INVALID FIELD IN CDB. An EVPD bit of zero specifies that the target shall return the standard INQUIRY data. If the page code field is not zero, the target shall return CHECK CONDITION status with the sense key set to ILLEGAL REQUEST and an additional sense code of INVALID FIELD IN CDB. The page code field specifies which page of vital product data information the target shall return (see 7.3.4). The INQUIRY command shall return CHECK CONDITION status only when the target cannot return the requested INQUIRY data. IMPLEMENTORS NOTE: It is recommended that the INQUIRY data be returned even though the peripheral device may not be ready for other commands. If an INQUIRY command is received from an initiator with a pending unit attention condition (i.e., before the target reports CHECK CONDITION status), the target shall perform the INQUIRY command and shall not clear the unit attention condition (see 6.9). IMPLEMENTORS NOTES: (1) The INQUIRY command is typically used by the initiator after a reset or power-up condition to determine the device types for system configuration. To minimize delays after a reset or power-up condition the standard INQUIRY data should be available without incurring any media access delays. If the target does store some of the INQUIRY data on the device it may return zeros or ASCII spaces (20h) in those fields until the data is available from the device. (2) The INQUIRY data may change as the target executes its initialization sequence or in response to a CHANGE DEFINITION command. For example, the target may contain a minimum command set in its non-volatile memory and may load its final firmware from the device when it becomes ready. After it has loaded the firmware it may support more options and therefore return different supported options information in the INQUIRY data. 7.2.5.1. Standard INQUIRY Data The standard INQUIRY data (Table 7-15) contains 36 required bytes, followed by a variable number of vendor-specific parameters. Bytes 56 through 95, if returned, are reserved for future standardization. The standard INQUIRY data format is shown in Table 7-15. Table 7-15: Standard INQUIRY Data Format ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Peripheral Qualifier | Peripheral Device Type | -----+--------+-----------------+--------------------------------------------+ 1 | RMB | Device-Type Modifier | -----+--------+--------+--------------------------+--------------------------+ 2 | ISO Version | ECMA Version | ANSI-Approved Version | -----+--------+--------+-----------------+--------+--------------------------+ 3 | AENC | TrmIOP | Reserved | Response Data Format | -----+--------+--------+-----------------+-----------------------------------+ 4 | Additional Length (n-4) | -----+-----------------------------------------------------------------------+ 5 | Reserved | -----+--------------------------------------------+--------+--------+--------+ 6 | Reserved |ACKQREQQ| Addr32 | Addr16 | -----+--------+--------+--------+--------+--------+--------+--------+--------+ 7 | RelAdr | WBus32 | WBus16 | Sync | Linked |Reserved| CmdQue | SftRe | -----+--------+--------+--------+--------+--------+--------+--------+--------+ 8 | (MSB) | - - -+- - Vendor Identification - -| 15 | (LSB) | -----+-----------------------------------------------------------------------+ 16 | (MSB) | - - -+- - Product Identification - -| 31 | (LSB) | -----+-----------------------------------------------------------------------+ 32 | (MSB) | - - -+- - Product Revision Level - -| 35 | (LSB) | -----+-----------------------------------------------------------------------+ 36 | | - - -+- - Vendor Specific - -| 55 | | -----+-----------------------------------------------------------------------+ 56 | | - - -+- - Reserved - -| 95 | | ============================================================================== | Vendor-Specific Parameters | ============================================================================== 96 to| Vendor-Specific | n | Parameter Bytes | ============================================================================== The peripheral qualifier and peripheral device-type fields identify the device currently connected to the logical unit. If the target is not capable of supporting a device on this logical unit, this field shall be set to 7Fh (peripheral qualifier set to 011b and peripheral device type set to 1Fh). The peripheral qualifier is defined in Table 7-16 and the peripheral device type is defined in Table 7-17. Table 7-16: Peripheral Qualifier ============================================================================== Qualifier Description --------- ---------------------------------------------------------------- 000b The specified peripheral device type is currently connected to this logical unit. If the target cannot determine whether or not a physical device is currently connected it shall also use this peripheral qualifier when returning the INQUIRY data. Note: This peripheral qualifier does not imply that the device is ready for access by the initiator. 001b The target is capable of supporting the specified peripheral device type on this logical unit, however the physical device is not currently connected to this logical unit. 010b Reserved 011b The target is not capable of supporting a physical device on this logical unit. For this peripheral qualifier the peripheral device type shall be set to 1Fh to provide compatibility with previous versions of SCSI. All other peripheral device type values are reserved for this peripheral qualifier. 1XXb Vendor specific ============================================================================== Table 7-17: Peripheral Device Type ============================================================================== Code Description ----------- --------------------------------------------------------------- 00h Direct-access device (e.g., magnetic disk) 01h Sequential-access device (e.g., magnetic tape) 02h Printer device 03h Processor device 04h Write-once read-multiple device (e.g., some optical disks) 05h CD-ROM device 06h Scanner device 07h Optical memory device (e.g., some optical disks) 08h Medium Changer device (e.g., jukeboxes) 09h Communications device 0Ah - 0Bh Defined by ASC IT8 (Graphics Pre-Press Devices) 0Ch - 1Eh Reserved 1Fh Unknown or no device type ============================================================================== A removable medium (RMB) bit of zero indicates that the medium is not removable. A RMB bit of one indicates that the medium is removable. The device-type modifier field was defined in SCSI-1 to permit vendor- specific qualification codes of the device type. This field is retained for compatibility with SCSI-1. Targets that do not support this field should return a value of zero. The usage of non-zero code values in the ISO version and ECMA version fields are defined by the International Organization for Standardization and the European Computer Manufacturers Association, respectively. A zero code value in these fields shall indicate that the target does not claim compliance to the ISO version of SCSI (ISO IS 9316) or the ECMA version of SCSI (ECMA-111). It is possible to claim compliance to more than one of these SCSI standards. The ANSI-approved version field indicates the implemented version of this standard and is defined in Table 7-18. Table 7-18: ANSI-Approved Version ============================================================================== Code Description ------------------------------------------------------------------------------ 0h The device might or might not comply to an ANSI-approved standard. 1h The device complies to ANSI X3.131-1986 (SCSI-1). 2h The device complies to this version of SCSI. This code is reserved to designate this standard upon approval by ANSI. 3h - 7h Reserved ============================================================================== The asynchronous event notification capability (AENC) bit indicates that the device supports the asynchronous event notification capability as defined in 6.5.5. (1) Processor device-type definition: An AENC bit of one indicates that the processor device is capable of accepting asynchronous event notifications. An AENC bit of zero indicates that the processor device does not support asynchronous event notifications. (2) All other device-types: This bit is reserved. A terminate I/O process (TrmIOP) bit of one indicates that the device supports the TERMINATE I/O PROCESS message as defined in 5.6.22. A value of zero indicates that the device does not support the TERMINATE I/O PROCESS message. A response data format value of zero indicates the INQUIRY data format is as specified in SCSI-1. A response data format value of one indicates compatibility with some products that were designed prior to the development of this standard (i.e., CCS). A response data format value of two indicates that the data shall be in the format specified in this standard. Response data format values greater than two are reserved. The additional length field shall specify the length in bytes of the parameters. If the allocation length of the command descriptor block is too small to transfer all of the parameters, the additional length shall not be adjusted to reflect the truncation. A ACKQ/REQQ (ACKQREQQ) bit of one indicates that the device supports a request and acknowledge date transfer handshake on a Q cable. A wide SCSI address 32 (Addr32) bit of one indicates that the device supports 32-bit wide SCSI addresses. A value of zero indicates that the device does not support 32-bit wide SCSI addresses. A wide SCSI address 16 (Addr16) bit of one indicates that the device supports 16-bit wide SCSI addresses. A value of zero indicates that the device does not support 16-bit wide SCSI addresses. NOTE: If the values of both the Addr16 and Addr32 bits are zero the device only supports 8-bit wide SCSI addresses. A relative addressing (RelAdr) bit of one indicates that the device supports the relative addressing mode for this logical unit. If this bit is set to one the linked command (Linked) bit shall also be set to one since relative addressing can only be used with linked commands. A RelAdr bit of zero indicates the device does not support relative addressing for this logical unit. A wide bus 32 (WBus32) bit of one indicates that the device supports 32-bit wide data transfers. A value of zero indicates that the device does not support 32-bit wide data transfers. A wide bus 16 (WBus16) bit of one indicates that the device supports 16-bit wide data transfers. A value of zero indicates that the device does not support 16-bit wide data transfers. NOTE: If the values of both the WBus16 and WBus32 bits are zero the device only supports 8-bit wide data transfers. Table 7-new5: Maximum logical device configuration table ============================================================================= ACKQREQQ Addr32 Addr16 Wbus32 Wbus16 Description ----------------------------------------------------------------------------- 0 0 0 0 0 8 bit wide data path on a single cable with 8 SCSI IDs supported (Possible cable connects to this device configuration are A, P, and L) 0 0 0 0 1 16 bit wide data path on a single cable with 8 SCSI IDs supported (Possible cable connects to this device configuration are P and L) 0 0 0 1 0 32 bit wide data path on a single cable with 8 SCSI IDs supported (The only possible cable connect to this device configuration is L) 0 0 1 0 1 16 bit wide data path on a single cable with 16 SCSI IDs supported (Possible cable connects to this device configuration are P and L) 0 0 1 1 0 32 bit wide data path on a single cable with 16 SCSI IDs supported (The only possible cable connect to this device configuration is L) 0 1 0 1 0 32 bit wide data path on a single cable with 32 SCSI IDs supported (The only possible cable connect to this device configuration is L) 1 0 0 1 0 32 bit wide data path on two cables with 8 SCSI IDs supported (The only possible cable connects to this device are P and P/Q) 1 0 1 1 0 32 bit wide data path on two cables with 16 SCSI IDs supported (The only possible cable connects to this device are P and P/Q) 1 1 0 1 0 32 bit wide data path on two cables with 32 SCSI IDs supported (The only possible cable connect to this device is P/Q) ============================================================================= A synchronous transfer (Sync) bit of one indicates that the device supports synchronous data transfer. A value of zero indicates the device does not support synchronous data transfer. A linked command (Linked) bit of one indicates that the device supports linked commands for this logical unit. A value of zero indicates the device does not support linked commands for this logical unit. A command queuing (CmdQue) bit of one indicates that the device supports tagged command queuing for this logical unit. A value of zero indicates the device does not support tagged command queuing for this logical unit. A soft reset (SftRe) bit of zero indicates that the device responds to the RESET condition with the hard RESET alternative (see 5.2.2.1). A SftRe bit of one indicates that the device responds to the RESET condition with the soft RESET alternative (see 5.2.2.2). ASCII data fields shall contain only graphic codes (i.e., code values 20h through 7Eh). Left-aligned fields shall place any unused bytes at the end of the field (highest offset) and the unused bytes shall be filled with space characters (20h). Right-aligned fields shall place any unused bytes at the start of the field (lowest offset) and the unused bytes shall be filled with space characters (20h). The vendor identification field contains eight bytes of ASCII data identifying the vendor of the product. The data shall be left aligned within this field. NOTE: It is intended that this field provide a unique vendor identification of the manufacturer of the SCSI device. In the absence of a formal registration procedure, X3T9.2 maintains a list of vendor identification codes in use. Vendors are requested to voluntarily submit their identification codes to X3T9.2 to prevent duplication of codes (see Appendix J). The product identification field contains sixteen bytes of ASCII data as defined by the vendor. The data shall be left-aligned within this field. The product revision level field contains four bytes of ASCII data as defined by the vendor. The data shall be left-aligned within this field. 7.2.5.2. Vital Product Data Implementation of vital product data is optional. The information returned consists of configuration data (e.g., vendor identification, product identification, model, serial number), manufacturing data (e.g., plant and date of manufacture), field replaceable unit data and other vendor- or device- specific data. The initiator requests the vital product data information by setting the EVPD bit to one and specifying the page code of the desired vital product data (see Table 7-72). If the target does not implement the requested page it shall return CHECK CONDITION status. The a sense key shall be set to ILLEGAL REQUEST and the additional sense code shall be set to INVALID FIELD IN CDB. IMPLEMENTORS NOTES: (1) It is recommended that the target have the ability to execute the INQUIRY command even when a device error occurs which prohibits normal command execution. In such a case, CHECK CONDITION status would be returned for commands other than INQUIRY or REQUEST SENSE. The sense data returned may contain the field replaceable unit code. The vital product data would be obtained for the failing device using the INQUIRY command. (2) This standard defines a format which allows device-independent initiator software to display the vital product data returned by the INQUIRY command. For example, the initiator may display the data associated for the field replaceable unit returned in the sense data. The contents of the data may be vendor-specific; therefore it may not be usable without detailed information about the device. (3) This standard does not define the location or method of storing the vital product data. The retrieval of the data may require completion of initialization operations within the device which may induce delays before the data is available to the initiator. Time-critical requirements are an implementation consideration and are not addressed in this standard. 8. Direct-Access Devices. 8.2. Commands for Direct-Access Devices. The commands for direct-access devices shall be as shown in Tables 8-1 and 8-2. Table 8-1: Commands for Direct-Access Devices(1) ============================================================================== Operation Command Name Code Type Section ------------------------------------------------------------------------------ CHANGE DEFINITION 40h O 7.2.1 COMPARE 39h O 7.2.2 COPY 18h O 7.2.3 COPY AND VERIFY 3Ah O 7.2.4 FORMAT UNIT 04h M 8.2.1 INQUIRY 12h M 7.2.5 LOCK/UNLOCK CACHE 36h O 8.2.2 LOG SELECT 4Ch O 7.2.6 LOG SENSE 4Dh O 7.2.7 MODE SELECT(6) 15h O 7.2.8 MODE SELECT(10) 55h O 7.2.9 MODE SENSE(6) 1Ah O 7.2.10 MODE SENSE(10) 5Ah O 7.2.11 PRE-FETCH 34h O 8.2.3 PREVENT/ALLOW MEDIUM REMOVAL 1Eh O 8.2.4 READ(6) 08h M 8.2.5 READ(10) 28h M 8.2.6 READ BUFFER 3Ch O 7.2.12 READ CAPACITY 25h M 8.2.7 READ DEFECT DATA 37h O 8.2.8 READ LONG 3Eh O 8.2.9 REASSIGN BLOCKS 07h O 8.2.10 RECEIVE DIAGNOSTIC RESULTS 1Ch O 7.2.13 RELEASE(6) 17h M 8.2.11 RELEASE(10) 57h MP 8.2.11 REQUEST SENSE 03h M 7.2.14 RESERVE(6) 16h M 8.2.12 RESERVE(10) 56h MP 8.2.12 REZERO UNIT 01h O 8.2.13 ============================================================================== Key: M = Command implementation is mandatory. MP = Command implementation is mandatory on any device that addresses more than 8 devices. O = Command implementation is optional. Table 8-2: Commands for Direct-Access Devices(2) ============================================================================== Operation Command Name Code Type Section ------------------------------------------------------------------------------ SEARCH DATA EQUAL 31h O 8.2.14.1 SEARCH DATA HIGH 30h O 8.2.14.2 SEARCH DATA LOW 32h O 8.2.14.3 SEEK(6) 0Bh O 8.2.15 SEEK(10) 2Bh O 8.2.15 SEND DIAGNOSTIC 1Dh M 7.2.15 SET LIMITS 33h O 8.2.16 START STOP UNIT 1Bh O 8.2.17 SYNCHRONIZE CACHE 35h O 8.2.18 TEST UNIT READY 00h M 7.2.16 VERIFY 2Fh O 8.2.19 WRITE(6) 0Ah M 8.2.20 WRITE(10) 2Ah M 8.2.21 WRITE AND VERIFY 2Eh O 8.2.22 WRITE BUFFER 3Bh O 7.2.17 WRITE LONG 3Fh O 8.2.23 WRITE SAME 41h O 8.2.24 ============================================================================== Key: M = Command implementation is mandatory. MP = Command implementation is mandatory on any device that addresses more than 8 devices. O = Command implementation is optional. The following operation codes are vendor-specific: 02h, 05h, 06h, 09h, 0Ch, 0Dh, 0Eh, 0Fh, 10h, 11h, 13h, 14h, 19h, 20h, 21h, 22h, 23h, 24h, 26h, 27h, 29h, 2Ch, 2Dh and C0h through FFh. All remaining operation codes are reserved for future standardization. 8.2.11. RELEASE(6) and RELEASE(10) Commands Table 8-23: RELEASE(6) Command ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Operation Code (17h) | -----+--------------------------+--------+--------------------------+--------+ 1 | Logical Unit Number | 3rdPty | Third Party Device ID | Extent | -----+--------------------------+--------+--------------------------+--------+ 2 | Reservation Identification | -----+-----------------------------------------------------------------------+ 3 | Reserved | -----+-----------------------------------------------------------------------+ 4 | Reserved | -----+-----------------------------------------------------------------------+ 5 | Control | ============================================================================== Table 8-new1: RELEASE(10) Command ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Operation Code (57h) | -----+--------------------------+--------+--------------------------+--------+ 1 | Logical Unit Number | 3rdPty | Reserved | Extent | -----+--------------------------+--------+--------------------------+--------+ 2 | Reservation Identification | -----+-----------------------------------------------------------------------+ 3 | Third Party Device ID | -----+-----------------------------------------------------------------------+ 4 | Reserved | -----+-----------------------------------------------------------------------+ 5 | Reserved | -----+-----------------------------------------------------------------------+ 6 | Reserved | -----+-----------------------------------------------------------------------+ 7 | Reserved | -----+-----------------------------------------------------------------------+ 8 | Reserved | -----+-----------------------------------------------------------------------+ 9 | Control Byte | ============================================================================== The RESERVE and RELEASE commands provide the basic mechanism for contention resolution in multiple-initiator systems. The RELEASE command (Table 8-23) is used to release a previously reserved logical unit, or, if the extent release option is implemented, to release previously reserved extents within a logical unit. It is not an error for an initiator to attempt to release a reservation that is not currently valid. In this case, the target returns GOOD status without altering any other reservation. 8.2.11.1. Logical Unit Release (Mandatory) If the extent bit is zero, this command shall cause the target to terminate all logical unit and extent reservations that are active from the initiator to the specified logical unit. The reservation ID field in the command descriptor block is ignored by the target. 8.2.11.2. Extent Release (Optional) If the extent bit is one and the extent release option is not implemented, then the RELEASE command shall be terminated with CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST. This option shall be implemented if the extent reservation option (see 8.2.12.2) is implemented. If the extent bit is one and the extent release option is implemented, this command shall cause any reservation from the requesting initiator with a matching reservation identification to be terminated. Other reservations from the requesting initiator shall remain in effect. 8.2.11.3. Third-Party Release (Mandatory) Third-party release allows an initiator to release a logical unit or extents within a logical unit that were previously reserved using third-party reservation (see 8.2.12.3). Third-party release shall be implemented and is intended for use in multiple-initiator systems that use the COPY command. If the third-party (3rdPty) bit is zero, then a third-party release is not requested. If the 3rdPty bit is one then the target shall release the specified logical unit or extents, but only if the reservation was made using a third-party reservation by the initiator that is requesting the release for the same SCSI device as specified in the third-party device ID field. If the 3rdPty bit is one the target shall not modify the mode parameters for commands received from the third-party device even if the target implements the transfer of mode parameters with a third-party RESERVE command. IMPLEMENTORS NOTE: If a target implements independent storage of mode parameters for each initiator, a third-party RESERVE command copies the current mode parameters for the initiator that sent the RESERVE command to the current mode parameters for the initiator specified as the third-party device (usually a copy master device). A unit attention condition notifies the third-party of the changed mode parameters due to the the reservation. A successful third-party RELEASE command does not return the third-party devices' current mode parameters back to their previous values. The third- party device can issue MODE SENSE and MODE SELECT commands to query and modify the mode parameters. 8.2.12. RESERVE(6) and RESERVE(10) Commands Table 8-24: RESERVE Command ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Operation Code (16h) | -----+--------------------------+--------+--------------------------+--------+ 1 | Logical Unit Number | 3rdPty | Third Party Device ID | Extent | -----+--------------------------+--------+--------------------------+--------+ 2 | Reservation Identification | -----+-----------------------------------------------------------------------+ 3 | (MSB) | - - -+--- Extent List Length ---+ 4 | (LSB) | -----+-----------------------------------------------------------------------+ 5 | Control | ============================================================================== Table 8-new2: RESERVE(10) Command ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Operation Code (16h) | -----+--------------------------+--------+--------------------------+--------+ 1 | Logical Unit Number | 3rdPty | Reserved | Extent | -----+--------------------------+--------+--------------------------+--------+ 2 | Reservation Identification | -----+-----------------------------------------------------------------------+ 3 | Third Party Device ID | -----+-----------------------------------------------------------------------+ 4 | Reserved | -----+-----------------------------------------------------------------------+ 5 | Reserved | -----+-----------------------------------------------------------------------+ 6 | Reserved | -----+-----------------------------------------------------------------------+ 7 | (MSB) | - - -+--- Extent List Length ---+ 8 | (LSB) | -----+-----------------------------------------------------------------------+ 9 | Control Byte | ============================================================================== The RESERVE and RELEASE commands provide the basic mechanism for contention resolution in multiple-initiator systems. The RESERVE command (Table 8-24) is used to reserve a logical unit or, if the extent reservation option is implemented, extents within a logical unit. The third-party reservation allows logical units or extents to be reserved for another specified SCSI device. 8.2.12.1. Logical Unit Reservation (Mandatory). If the extent bit is zero, this command shall request that the entire logical unit be reserved for the exclusive use of the initiator until the reservation is superseded by another valid RESERVE command from the initiator that made the reservation or until released by a RELEASE command from the same initiator that made the reservation, by a BUS DEVICE RESET message from any initiator, by a hard RESET condition, or by a power on cycle. A logical unit reservation shall not be granted if the logical unit or any extent is reserved by another initiator. It shall be permissible for an initiator to reserve a logical unit that is currently reserved by that initiator. If the extent bit is zero, the reservation identification and the extent list length shall be ignored. If the logical unit, or any extent within the logical unit is reserved for another initiator, the target shall return RESERVATION CONFLICT status. If, after honoring the reservation, any other initiator attempts to perform any command on the reserved logical unit other than an INQUIRY command, a REQUEST SENSE command, an ALLOW MEDIUM REMOVAL, or a RELEASE command, which shall be ignored, then the command shall be rejected with RESERVATION CONFLICT status. 8.2.12.2. Extent Reservation (Optional) The reservation identification field provides a means for an initiator to identify each extent reservation. This allows an initiator in a multiple tasking environment, to have multiple reservations outstanding. The reservation identification is used in the RELEASE command to specify which reservation is to be released. It is also used in superseding RESERVE commands to specify which reservation is to be superseded. If the extent reservation option is implemented, then the extent release option (see 8.2.11.2) shall also be implemented. These options permit multiple extents within the logical unit to be reserved, each with a separate reservation type. If the extent bit is one, and the extent reservation option is implemented, then the target shall process the reservation request as follows: (1) The extent list shall be checked for the number of extents in the reservation request. If the extent list length is zero, no current reservations shall be changed, no new reservations shall be created, and this condition shall not be treated as an error. If the extent list contains more extents than are supported on the logical unit, the command shall be terminated with CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST. If the extent list contains more extents than are currently available on the logical unit, then the target shall return a RESERVATION CONFLICT status. (2) The extent list shall be checked for valid extent logical block addresses. If any logical block address is invalid for this logical unit, the command shall be terminated with CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST. The extent list shall be checked for invalid extent overlaps (as defined by reservation type) with other extent descriptors in the extent list and if invalid overlaps are found, the command shall be terminated with CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST. (3) If the requested reservation does not conflict with an existing reservation, the extents specified shall be reserved until superseded by another valid RESERVE command from the initiator that made the reservation or until released by a RELEASE command from the same initiator, by a BUS DEVICE RESET message from any initiator, or by a hard RESET condition. If either of the last two conditions occur, the next command from each initiator shall be terminated with CHECK CONDITION status and the sense key shall be set to UNIT ATTENTION. (4) If the reservation request conflicts with an existing reservation, then the target shall return a RESERVATION CONFLICT status. If the extent bit is one, and the extent reservation option is not implemented, then the RESERVE command shall be rejected with CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST. Table 8-25: Data Format of Extent Descriptors ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Reserved | RelAdr | Reservation Type| -----+--------------------------------------------+--------+-----------------+ 1 | (MSB) | - - -+- - Number of Blocks - -| 3 | (LSB) | -----+-----------------------------------------------------------------------+ 4 | (MSB) | - - -+- - Logical Block Address - -| 7 | (LSB) | ============================================================================== The size of the extent list shall be defined by the extent list length field. The extent list shall consist of zero or more descriptors as shown in Table 8-25. Each extent descriptor defines an extent beginning at the specified logical block address for the specified number of blocks. If the number of blocks is zero, the extent shall begin at the specified logical block address and continue through the last logical block address on the logical unit. The reservation type field shall determine the type of reservation to be effected for each extent. Four types of reservations are possible as follows: DB(1) DB(0) Reservation Type ----- ----- ---------------- 1 0 Read Exclusive 0 1 Write Exclusive 1 1 Exclusive Access 0 0 Read Shared Read Exclusive. While this reservation is active, no other initiator shall be permitted read operations to the indicated extent. This reservation shall not inhibit write operations from any initiator or conflict with a write exclusive reservation; however, read exclusive, exclusive access, and read shared reservations that overlap this extent shall conflict with this reservation. Write Exclusive. While this reservation is active, no other initiator shall be permitted write operations to the indicated extent. This reservation shall not inhibit read operations from any initiator or conflict with a read exclusive reservation from any initiator. This reservation shall conflict with write exclusive, exclusive access, and read shared reservations that overlap this extent. Exclusive Access. While this reservation is active, no other initiator shall be permitted any access to the indicated extent. All reservation types that overlap this extent shall conflict with this reservation. Read Shared. While this reservation is active, no write operations shall be permitted by any initiator to the indicated extent. This reservation shall not inhibit read operations from any initiator or conflict with a read shared reservation. Read exclusive, write exclusive, and exclusive access reservations that overlap with this extent shall conflict with this reservation. If the relative address bit is one, the logical block address in the extent descriptor shall be treated as a two's complement displacement. This displacement shall be added to the logical block address last accessed on the logical unit to form the logical block address for this extent. This feature is only available when linking commands and requires that a previous command in the linked group has accessed a logical block on the logical unit; if not, the RESERVE command shall be terminated with CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST. If an initiator attempts a command to a logical block that has been reserved and that access is prohibited by the reservation, the command shall not be performed and the command shall be terminated with a RESERVATION CONFLICT status. If a reservation conflict precludes any part of the command, none of the command shall be performed. COPY commands shall be terminated with CHECK CONDITION status and the sense key shall be set to DATA PROTECT if any part of the copy operation is prohibited by an active reservation. If any extent in a logical unit is reserved in any way, by any initiator, a FORMAT UNIT command shall be rejected with a RESERVATION CONFLICT status. 8.2.12.3. Third Party Reservation (Mandatory). The third-party reservation for the RESERVE command allows an initiator to reserve a logical unit or extents within a logical unit for another SCSI device. This is intended for use in multiple-initiator systems that use the COPY command. Third-party reservation is required. If the third-party (3rdPty) bit is zero, then a third-party reservation is not requested. If the 3rdPty bit is one then the target shall reserve the specified logical unit or extents for the SCSI device specified in the third- party device ID field. The target shall preserve the reservation until it is superseded by another valid RESERVE command from the initiator that made the reservation or until it is released by the same initiator, by a BUS DEVICE reset message from any initiator, or a hard reset condition. The target shall ignore any attempt to release the reservation made by any other initiator. If independent sets of parameters are implemented, a third party reservation shall cause the target to transfer the set of parameters in effect for the initiator of the RESERVE command to the parameters used for commands from the third party device. Any subsequent command issued by the third-party device is executed according to the mode parameters in effect for the initiator that sent the RESERVE command. IMPLEMENTORS NOTE: This transfer of the mode parameters is applicable to target devices which store mode information independently for different initiators. This mechanism allows an initiator to set the mode parameters of a target for the use of a copy master (i.e., the third-party device). The third-party copy master may subsequently issue a MODE SELECT command to modify the mode parameters. 8.2.12.4. Superseding Reservations (Mandatory) An initiator that holds a current reservation (unit or extent) may modify that reservation by issuing another RESERVE command (unit or extent) to the same logical unit. The superseding RESERVE command shall release the previous reservation state (unit or extent) when the new reservation request is granted. If the superseding reservation is for an extent reservation and the current reservation is also an extent reservation, the current extent reservation identification value is used for the superseding reservation. The current reservation shall not be modified if the superseding reservation request cannot be granted. If the superseding reservation cannot be granted because of conflicts with a previous reservation (other than the reservation being superseded), then the target shall return RESERVATION CONFLICT status. IMPLEMENTORS NOTE: Superseding reservations allow the SCSI device ID to be changed on a reservation using the third-party reservation option. This capability is necessary for certain situations when using COMPARE, COPY, and COPY AND VERIFY commands. 9. Sequential-Access Devices. 9.2. Commands for Sequential-Access Devices. The commands for Sequential-access devices shall be as shown in Table 9-1. Table 9-1: Commands for Sequential-Access Devices ============================================================================== Operation Command Name Code Type Section ------------------------------------------------------------------------------ CHANGE DEFINITION 40h O 7.2.1 COMPARE 39h O 7.2.2 COPY 18h O 7.2.3 COPY AND VERIFY 3Ah O 7.2.4 ERASE 19h M 9.2.1 INQUIRY 12h M 7.2.5 LOAD UNLOAD 1Bh O 9.2.2 LOCATE 2Bh O 9.2.3 LOG SELECT 4Ch O 7.2.6 LOG SENSE 4Dh O 7.2.7 MODE SELECT(6) 15h M 7.2.8 MODE SELECT(10) 55h O 7.2.9 MODE SENSE(6) 1Ah M 7.2.10 MODE SENSE(10) 5Ah O 7.2.11 PREVENT/ALLOW MEDIUM REMOVAL 1Eh O 8.2.4 READ 08h M 9.2.4 READ BLOCK LIMITS 05h M 9.2.5 READ BUFFER 3Ch O 7.2.12 READ POSITION 34h O 9.2.6 READ REVERSE 0Fh O 9.2.7 RECEIVE DIAGNOSTIC RESULTS 1Ch O 7.2.13 RECOVER BUFFERED DATA 14h O 9.2.8 RELEASE UNIT (6) 17h M 9.2.9 RELEASE UNIT (10) 57h MP 9.2.9 REQUEST SENSE 03h M 7.2.14 RESERVE UNIT (6) 16h M 9.2.10 RESERVE UNIT (10) 56h MP 9.2.10 REWIND 01h M 9.2.11 SEND DIAGNOSTIC 1Dh M 7.2.15 SPACE 11h M 9.2.12 TEST UNIT READY 00h M 7.2.16 VERIFY 13h O 9.2.13 WRITE 0Ah M 9.2.14 WRITE BUFFER 3Bh O 7.2.17 WRITE FILEMARKS 10H M 9.2.15 ============================================================================== Key: M = Command implementation is mandatory. MP = Command implementation is mandatory on any device that addresses more than 8 devices. O = Command implementation is optional. The following operation codes are vendor-specific: 02h, 06h, 07h, 09h, 0Ch, 0Dh, 0Eh. All other command codes for sequential-access devices are reserved for future standardization. 9.2.9. RELEASE UNIT(6) and RELEASE UNIT(10) Commands Table 9-12: RELEASE UNIT(6) Command ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Operation Code (17h) | -----+--------------------------+--------+--------------------------+--------+ 1 | Logical Unit Number | 3rdPty | Third Party Device ID |Reserved| -----+--------------------------+--------+--------------------------+--------+ 2 | Reserved | -----+-----------------------------------------------------------------------+ 3 | Reserved | -----+-----------------------------------------------------------------------+ 4 | Reserved | -----+-----------------------------------------------------------------------+ 5 | Control | ============================================================================== Table 9-new1: RELEASE(10) Command ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Operation Code (57h) | -----+--------------------------+--------+-----------------------------------+ 1 | Logical Unit Number | 3rdPty | Reserved | -----+--------------------------+--------+-----------------------------------+ 2 | Reserved | -----+-----------------------------------------------------------------------+ 3 | Third Party Device ID | -----+-----------------------------------------------------------------------+ 4 | Reserved | -----+-----------------------------------------------------------------------+ 5 | Reserved | -----+-----------------------------------------------------------------------+ 6 | Reserved | -----+-----------------------------------------------------------------------+ 7 | Reserved | -----+-----------------------------------------------------------------------+ 8 | Reserved | -----+-----------------------------------------------------------------------+ 9 | Control Byte | ============================================================================== The RESERVE UNIT and RELEASE UNIT commands provide the basic mechanism for contention resolution in multiple-initiator systems. The RELEASE UNIT command (Table 9-12) is used to release previously reserved logical units for the requesting initiator, or if it is a third-party release, to another specified SCSI device. If a valid reservation exists for the I_T_L nexus, the target shall release the reservation and return GOOD status. It is not an error to attempt to release a reservation that is not currently valid. In this case, the target shall return GOOD status without altering any other reservation. 9.2.9.1. Third-Party Release Third-party release allows an initiator to release a logical unit that was previously reserved using a third-party reservation (see 9.2.10.1). If the third party (3rdPty) bit is zero, then a third-party release is not requested. If the 3rdPty bit is one, and if the reservation was made using a third-party reservation by the initiator that is requesting the release for the same SCSI device as specified in the third-party device ID, then the target shall release the reservation. If the 3rdPty bit is one, the target shall not modify the mode parameters for commands received from the third-party device even if the target implements the transfer of mode parameters with a third-party RESERVE UNIT command. IMPLEMENTORS NOTE: When a target implements independent storage of mode parameters for each initiator, a third-party RESERVE UNIT command effects a transfer of the current mode parameters. Those set up by the initiator of the RESERVE UNIT are to be set as the mode parameters used for commands from the third-party device (usually a copy master device). A unit attention condition notifies the third-party device of the changed mode parameters. A successful third-party RELEASE UNIT command leaves the transferred parameters intact. The third-party device can issue MODE SENSE and MODE SELECT commands to query and modify the mode parameters. 9.2.10. RESERVE UNIT(6) and RESERVE UNIT(10) Commands Table 9-13: RESERVE UNIT(6) Command ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Operation Code (16h) | -----+--------------------------+--------+--------------------------+--------+ 1 | Logical Unit Number | 3rdPty | Third Party Device ID |Reserved| -----+--------------------------+--------+--------------------------+--------+ 2 | Reserved | -----+-----------------------------------------------------------------------+ 3 | Reserved | -----+-----------------------------------------------------------------------+ 4 | Reserved | -----+-----------------------------------------------------------------------+ 5 | Control | ============================================================================== Table 9-new2: RESERVE(10) Command ============================================================================== Bit| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Byte | | | | | | | | | ============================================================================== 0 | Operation Code (16h) | -----+--------------------------+--------+-----------------------------------+ 1 | Logical Unit Number | 3rdPty | Reserved | -----+--------------------------+--------+-----------------------------------+ 2 | Reserved | -----+-----------------------------------------------------------------------+ 3 | Third Party Device ID | -----+-----------------------------------------------------------------------+ 4 | Reserved | -----+-----------------------------------------------------------------------+ 5 | Reserved | -----+-----------------------------------------------------------------------+ 6 | Reserved | -----+-----------------------------------------------------------------------+ 7 | (MSB) | - - -+--- Extent List Length ---+ 8 | (LSB) | -----+-----------------------------------------------------------------------+ 9 | Control Byte | ============================================================================== The RESERVE UNIT and RELEASE UNIT commands provide the basic mechanism for contention resolution in multiple-initiator systems. The RESERVE UNIT command (Table 9-13) is used to reserve logical units for the exclusive use of the requesting initiator, or if it is a third-party reservation, to another specified SCSI device. This command requests that the entire logical unit be reserved for the exclusive use of the initiator until the reservation is superseded by another valid RESERVE UNIT command from the initiator that made the reservation or until released by a RELEASE UNIT command from the same initiator that made the reservation, by a BUS DEVICE RESET message from any initiator, by a hard reset condition, or by a power on cycle. The reservation shall not be granted if the logical unit is reserved by another initiator. It shall be permissible for an initiator to reserve a logical unit that is currently reserved by that initiator. If the logical unit is reserved for another initiator, the target shall return RESERVATION CONFLICT status. If, after honoring the reservation, any other initiator attempts to perform any command on the reserved logical unit other than an INQUIRY command, a REQUEST SENSE command, or a RELEASE UNIT command, which shall be ignored, then the command shall be rejected with RESERVATION CONFLICT status. 9.2.10.1. Third-Party Reservation Third-party reservation allows an initiator to reserve a logical unit for another SCSI device. This is intended for use in multiple-initiator systems that use the COPY command. If the third-party (3rdPty) bit is zero, a third-party reservation is not requested. If the 3rdPty bit is one the target shall reserve the logical unit for the SCSI device specified in the third-party device ID field. The target shall preserve the reservation until it is superseded by another valid RESERVE UNIT command from the initiator that made the reservation or until it is released by the same initiator, by a BUS DEVICE RESET message from any initiator, or a hard reset condition. The target shall ignore any attempt to release the reservation made by any other initiator. If independent sets of parameters are implemented, a third party reservation shall cause the target to transfer the set of parameters in effect for the initiator of the RESERVE command to the parameters used for commands from the third party device. Any subsequent command issued by the third-party device is executed according to the mode parameters in effect for the initiator that sent the RESERVE command. If independent sets of parameters are implemented, a third party reservation shall cause the target to transfer the set of parameters in effect for the initiator of the RESERVE command to the parameters used for commands from the third party device. Any subsequent command issued by the third-party device is executed according to the mode parameters in effect for the initiator that sent the RESERVE command. IMPLEMENTORS NOTE: This transfer of the mode parameters is applicable to target devices which store mode information independently for different initiators. This mechanism allows an initiator to set the mode parameters of a target for the use of a copy master (i.e., the third-party device). The third-party copy master may subsequently issue a MODE SELECT command to modify the mode parameters. 9.2.10.2. Superseding Reservations An initiator that currently has a logical unit reserved may modify the current reservation by issuing another RESERVE UNIT command to the same logical unit. The superseding reservation shall release the current reservation if the superseding reservation request is granted. The current reservation shall not be modified if the superseding reservation request cannot be granted. If the superseding reservation cannot be granted because of conflicts with a previous reservation (other than the current reservation), then the target shall return RESERVATION CONFLICT status. IMPLEMENTORS NOTE: Superseding reservations allow the SCSI device ID to be changed on a reservation using the third-party reservation option. This capability is necessary for certain situations when using COMPARE, COPY, and COPY AND VERIFY commands. 10. Commands for Printer Devices 10.2. Commands for Printer Devices The commands for printer devices shall be as shown in Table 10-1. Table 10-1: Commands for Printer Devices ============================================================================== Operation Command Name Code Type Section Page ------------------------------------------------------------------------------ CHANGE DEFINITION 40h O 7.2.1 COMPARE 39h O 7.2.2 COPY 18h O 7.2.3 COPY AND VERIFY 3Ah O 7.2.4 FORMAT 04h O 10.2.1 INQUIRY 12h M 7.2.5 LOG SELECT 4Ch O 7.2.6 LOG SENSE 4Dh O 7.2.7 MODE SELECT(6) 15h O 7.2.8 MODE SELECT(10) 55h O 7.2.9 MODE SENSE(6) 1Ah O 7.2.10 MODE SENSE(10) 5Ah O 7.2.11 PRINT 0Ah M 10.2.2 READ BUFFER 3Ch O 7.2.12 RECEIVE DIAGNOSTIC RESULTS 1Ch O 7.2.13 RECOVER BUFFERED DATA 14h O 10.2.3 RELEASE UNIT (6) 17h M 9.2.9 RELEASE UNIT (10) 57h MP 9.2.9 REQUEST SENSE 03h M 7.2.14 RESERVE UNIT (6) 16h M 9.2.10 RESERVE UNIT (10) 56h MP 9.2.10 SEND DIAGNOSTIC 1Dh M 7.2.15 SLEW AND PRINT 0Bh O 10.2.4 STOP PRINT 1Bh O 10.2.5 SYNCHRONIZE BUFFER 10h O 10.2.6 TEST UNIT READY 00h M 7.2.16 WRITE BUFFER 3Bh O 7.2.17 ============================================================================== Key: M = Command implementation is mandatory. MP = Command implementation is mandatory on any device that addresses more than 8 devices. O = Command implementation is optional. The following operation codes are vendor specific: 01h, 02h, 05h, 06h, 07h, 08h, 09h, 0Ch, 0Dh, 0Eh, 0Fh, 11h, 13h, 19h, and C0h through FFh. All remaining operation codes for printer devices are reserved for future standardization. 12. Write-Once Devices 12.2. Commands for Write-Once Devices The commands for write-once devices shall be as shown in Table 12-1 and Table 12-2. Table 12-1: Commands for Write-Once Devices(1) ============================================================================== Command Name Code Type Section ------------------------------------------------------------------------------ CHANGE DEFINITION 40h O 7.2.1 COMPARE 39h O 7.2.2 COPY 18h O 7.2.3 COPY AND VERIFY 3Ah O 7.2.4 INQUIRY 12h M 7.2.5 LOCK UNLOCK CACHE 36h O 8.2.2 LOG SELECT 4Ch O 7.2.6 LOG SENSE 4Dh O 7.2.7 MEDIUM SCAN 38h O 15.2.3 MODE SELECT(6) 15h O 7.2.8 MODE SELECT(10) 55h O 7.2.9 MODE SENSE(6) 1Ah O 7.2.10 MODE SENSE(10) 5Ah O 7.2.11 PRE-FETCH 34h O 8.2.3 PREVENT ALLOW MEDIUM REMOVAL 1Eh O 8.2.4 READ(6) 08h O 8.2.5 READ(10) 28h M 8.2.6 READ(12) A8h O 15.2.4 READ BUFFER 3Ch O 7.2.12 READ CAPACITY 25h M 8.2.7 READ LONG 3Eh O 8.2.9 REASSIGN BLOCKS 07h O 8.2.10 RECEIVE DIAGNOSTIC RESULTS 1Ch O 7.2.13 RELEASE (6) 17h M 8.2.11 RELEASE (10) 57h MP 8.2.11 REQUEST SENSE 03h M 7.2.14 RESERVE (6) 16h M 8.2.12 RESERVE (10) 56h MP 8.2.12 REZERO UNIT 01h O 8.2.13 ============================================================================== Table 12-2: Commands for Write-Once Devices(2) ============================================================================== Command Name Code Type Section ------------------------------------------------------------------------------ SEARCH DATA EQUAL(10) 31h O 8.2.14.1 SEARCH DATA EQUAL(12) B1h O 15.2.8 SEARCH DATA HIGH(10) 30h O 8.2.14.2 SEARCH DATA HIGH(12) B0h O 15.2.8 SEARCH DATA LOW(10) 32h O 8.2.14.3 SEARCH DATA LOW(12) B2h O 15.2.8 SEEK(6) 0Bh O 8.2.15 SEEK(10) 2Bh O 8.2.15 SEND DIAGNOSTIC 1Dh M 7.2.15 SET LIMITS(10) 33h O 8.2.16 SET LIMITS(12) B3h O 15.2.9 START STOP UNIT 1Bh O 8.2.17 SYNCHRONIZE CACHE 35h O 8.2.18 TEST UNIT READY 00h M 7.2.16 VERIFY(10) 2Fh O 15.2.11 VERIFY(12) AFh O 15.2.12 WRITE(6) 0Ah O 8.2.20 WRITE(10) 2Ah M 8.2.21 WRITE(12) AAh O 15.2.14 WRITE AND VERIFY(10) 2Eh O 8.2.22 WRITE AND VERIFY(12) AEh O 15.2.16 WRITE BUFFER 3Bh O 7.2.17 WRITE LONG 3Fh O 8.2.23 ============================================================================== Key: M = Command implementation is mandatory. MP = Command implementation is mandatory on any device that addresses more than 8 devices. O = Command implementation is optional. The following command codes are vendor specific: 02h, 05h, 06h, 09h, 0Ch, 0Dh, 0Eh, 0Fh, 10h, 11h, 13h, 14h, 19h, 20h, 21h, 22h, 23h, 24h, 26h, 27h, 29h, and C0h through FFh. All remaining command codes for write-once devices are reserved for future standardization. 13. CD-ROM Devices 13.2. Commands for CD-ROM Devices The commands for CD-ROM devices shall be as shown in Table 13-3, and 13-4. Table 13-3: Commands for CD-ROM Devices(1) ============================================================================== Operation Command Name Code Type Section ------------------------------------------------------------------------------ CHANGE DEFINITION 40h O 7.2.1 COMPARE 39h O 7.2.2 COPY 18h O 7.2.3 COPY AND VERIFY 3Ah O 7.2.4 INQUIRY 12h M 7.2.5 LOCK/UNLOCK CACHE 36h O 8.2.2 LOG SELECT 4Ch O 7.2.6 LOG SENSE 4Dh O 7.2.7 MODE SELECT(6) 15h O 7.2.8 MODE SELECT(10) 55h O 7.2.9 MODE SENSE(6) 1Ah O 7.2.10 MODE SENSE(10) 5Ah O 7.2.11 PAUSE/RESUME 4Bh O 13.2.1 PLAY AUDIO(10) 45h O* 13.2.2 PLAY AUDIO(12) A5h O* 13.2.3 PLAY AUDIO MSF 47h O* 13.2.4 PLAY AUDIO TRACK/INDEX 48h O* 13.2.5 PLAY TRACK RELATIVE(10) 49h O* 13.2.6 PLAY TRACK RELATIVE(12) A9h O* 13.2.7 PRE-FETCH 34h O 8.2.3 PREVENT/ALLOW MEDIUM REMOVAL 1Eh O 8.2.4 READ(6) 08h O 8.2.5 READ(10) 28h M 8.2.6 READ(12) A8h O 15.2.4 READ BUFFER 3Ch O 7.2.12 READ CD-ROM CAPACITY 25h M 13.2.8 READ HEADER 44h O 13.2.9 READ LONG 3Eh O 8.2.9 READ SUB-CHANNEL 42h O 13.2.10 READ TOC 43h O 13.2.11 RECEIVE DIAGNOSTIC RESULTS 1Ch O 7.2.13 RELEASE (6) 17h M 8.2.11 RELEASE (10) 57h MP 8.2.11 REQUEST SENSE 03h M 7.2.14 RESERVE (6) 16h M 8.2.12 RESERVE (10) 56h MP 8.2.12 REZERO UNIT 01h O 8.2.13 ============================================================================== Key: M = Command implementation is mandatory. MP = Command implementation is mandatory on any device that addresses more than 8 devices. O = Command implementation is optional. * = If any of the PLAY AUDIO commands (as indicated by an * in the 'Type' column in Table 13-3) are implemented, the PLAY AUDIO command shall be implemented by the target. Table 13-4: Commands for CD-ROM Devices(2) ============================================================================== Operation Command Name Code Type Section ------------------------------------------------------------------------------ SEARCH DATA EQUAL(10) 31h O 8.2.14.1 SEARCH DATA EQUAL(12) B1h O 15.2.8 SEARCH DATA HIGH(10) 30h O 8.2.14.2 SEARCH DATA HIGH(12) B0h O 15.2.8 SEARCH DATA LOW(10) 32h O 8.2.14.3 SEARCH DATA LOW(12) B2h O 15.2.8 SEEK(6) 0Bh O 8.2.15 SEEK(10) 2Bh O 8.2.15 SEND DIAGNOSTIC 1Dh M 7.2.15 SET LIMITS(10) 33h O 8.2.16 SET LIMITS(12) B3h O 15.2.9 START STOP UNIT 1Bh O 8.2.17 SYNCHRONIZE CACHE 35h O 8.2.18 TEST UNIT READY 00h M 7.2.16 VERIFY(10) 2Fh O 15.2.11 VERIFY(12) AFh O 15.2.12 WRITE BUFFER 3Bh O 7.2.17 ============================================================================== Key: M = Command implementation is mandatory. MP = Command implementation is mandatory on any device that addresses more than 8 devices. O = Command implementation is optional. The following command codes are vendor specific: 02h, 05h, 06h, 09h, 0Ch, 0Dh, 0Eh, 0Fh, 10h, 11h, 13h, 14h, 19h, 20h, 21h, 22h, 23h, 24h, 26h, 27h, 29h, and C0h through FFh. All remaining command codes for CD-ROM devices are reserved for future standardization. 14. Scanner Devices 14.2. Commands for Scanner Devices The commands for scanner devices shall be as shown in Table 14-1. Table 14-1: Commands for Scanner Devices ============================================================================== Operation Command Name Code Type Section Page ------------------------------------------------------------------------------ CHANGE DEFINITION 40h O 7.2.1 COMPARE 39h O 7.2.2 COPY 18h O 7.2.3 COPY AND VERIFY 3Ah O 7.2.4 GET DATA BUFFER STATUS 34h O 14.2.1 GET WINDOW 25h O 14.2.2 INQUIRY 12h M 7.2.5 LOG SELECT 4Ch O 7.2.6 LOG SENSE 4Dh O 7.2.7 MODE SELECT(6) 15h O 7.2.8 MODE SELECT(10) 55h O 7.2.9 MODE SENSE(6) 1Ah O 7.2.10 MODE SENSE(10) 5Ah O 7.2.11 OBJECT POSITION 31h O 14.2.3 READ 28h M 14.2.4 READ BUFFER 3Ch O 7.2.12 RECEIVE DIAGNOSTIC RESULTS 1Ch O 7.2.13 RELEASE UNIT (6) 17h M 9.2.9 RELEASE UNIT (10) 57h MP 9.2.9 REQUEST SENSE 03h M 7.2.14 RESERVE UNIT (6) 16h M 9.2.10 RESERVE UNIT (10) 56h MP 9.2.10 SCAN 1Bh O 14.2.5 SET WINDOW 24h M 14.2.6 SEND 2Ah O 14.2.7 SEND DIAGNOSTIC 1Dh M 7.2.15 TEST UNIT READY 00h M 7.2.16 WRITE BUFFER 3Bh O 7.2.17 ============================================================================== Key: M = Command implementation is mandatory. MP = Command implementation is mandatory on any device that addresses more than 8 devices. O = Command implementation is optional. All other operation codes for scanner devices are reserved for future standardization. 15. Optical Memory Devices 15.2. Commands for Optical Memory Devices The commands for optical memory devices shall be as shown in Table 15-1 and 15-2. Table 15-1: Commands for Optical Memory Devices(1) ============================================================================== Operation Command Name Code Type Section Page ------------------------------------------------------------------------------ CHANGE DEFINITION 40h O 7.2.1 COMPARE 39h O 7.2.2 COPY 18h O 7.2.3 COPY AND VERIFY 3Ah O 7.2.4 ERASE(10) 2Ch O 15.2.1 ERASE(12) ACh O 15.2.2 FORMAT UNIT 04h O 8.2.1 INQUIRY 12h M 7.2.5 LOCK UNLOCK CACHE 36h O 8.2.2 LOG SELECT 4Ch O 7.2.6 LOG SENSE 4Dh O 7.2.7 MEDIUM SCAN 38h O 15.2.3 MODE SELECT(6) 15h O 7.2.8 MODE SELECT(10) 55h O 7.2.9 MODE SENSE(6) 1Ah O 7.2.10 MODE SENSE(10) 5Ah O 7.2.11 PRE-FETCH 34h O 8.2.3 PREVENT ALLOW MEDIUM REMOVAL 1Eh O 8.2.4 READ(6) 08h O 8.2.5 READ(10) 28h M 8.2.6 READ(12) A8h O 15.2.4 READ BUFFER 3Ch O 7.2.12 READ CAPACITY 25h M 8.2.7 READ DEFECT DATA(10) 37h O 8.2.8 READ DEFECT DATA(12) B7h O 15.2.5 READ GENERATION 29h O 15.2.6 READ LONG 3Eh O 8.2.9 READ UPDATED BLOCK 2Dh O 15.2.7 REASSIGN BLOCKS 07h O 8.2.10 RECEIVE DIAGNOSTIC RESULTS 1Ch O 7.2.13 RELEASE (6) 17h M 8.2.11 RELEASE (10) 57h MP 8.2.11 REQUEST SENSE 03h M 7.2.14 RESERVE (6) 16h MP 8.2.12 RESERVE (10) 56h M 8.2.12 REZERO UNIT 01h O 8.2.13 ============================================================================= Table 15-2: Commands for Optical Memory Devices(2) ============================================================================== Operation Command Name Code Type Section Page ------------------------------------------------------------------------------ SEARCH DATA EQUAL(10) 31h O 8.2.14.1 SEARCH DATA EQUAL(12) B1h O 15.2.8 SEARCH DATA HIGH(10) 30h O 8.2.14.2 SEARCH DATA HIGH(12) B0h O 15.2.8 SEARCH DATA LOW(10) 32h O 8.2.14.3 SEARCH DATA LOW(12) B2h O 15.2.8 SEEK(6) 0Bh O 8.2.15 SEEK(10) 2Bh O 8.2.15 SEND DIAGNOSTIC 1Dh M 7.2.15 SET LIMITS(10) 33h O 8.2.16 SET LIMITS(12) B3h O 15.2.9 START STOP UNIT 1Bh O 8.2.17 SYNCHRONIZE CACHE 35h O 8.2.18 TEST UNIT READY 00h M 7.2.16 UPDATE BLOCK 3Dh O 15.2.10 VERIFY(10) 2Fh O 15.2.11 VERIFY(12) AFh O 15.2.12 WRITE(6) 0Ah O 8.2.20 WRITE(10) 2Ah M 15.2.13 WRITE(12) AAh O 15.2.14 WRITE AND VERIFY(10) 2Eh O 15.2.15 WRITE AND VERIFY(12) AEh O 15.2.16 WRITE BUFFER 3Bh O 7.2.17 WRITE LONG 3Fh O 8.2.23 ============================================================================= Key: M = Command implementation is mandatory. MP = Command implementation is mandatory on any device that addresses more than 8 devices. O = Command implementation is optional. The following codes are vendor specific: 20h, 21h, 22h, 23h, and C0h through FFh. All remaining codes for optical memory devices are reserved for future standardization. 16. Medium Changer Devices 16.2. Commands for Medium Changer Devices The commands for medium changer devices shall be as shown in Table 16-2. Table 16-2: Commands for Medium Changer Devices ============================================================================== Operation Command Name Code Type Section ------------------------------------------------------------------------------ CHANGE DEFINITION 40h O 7.2.1 EXCHANGE MEDIUM A6h O 16.2.1 INITIALIZE ELEMENT STATUS 07h O 16.2.2 INQUIRY 12h M 7.2.5 LOG SELECT 4Ch O 7.2.6 LOG SENSE 4Dh O 7.2.7 MODE SELECT(6) 15h O 7.2.8 MODE SELECT(10) 55h O 7.2.9 MODE SENSE(6) 1Ah O 7.2.10 MODE SENSE(10) 5Ah O 7.2.11 MOVE MEDIUM A5h M 16.2.3 POSITION TO ELEMENT 2Bh O 16.2.4 PREVENT ALLOW MEDIUM REMOVAL 1Eh O 8.2.4 READ BUFFER 3Ch O 7.2.12 READ ELEMENT STATUS B8h O 16.2.5 RECEIVE DIAGNOSTIC RESULTS 1Ch O 7.2.13 RELEASE (6) 17h O 16.2.6 RELEASE (10) 57h O 16.2.6 REQUEST VOLUME ELEMENT ADDRESS B5h O 16.2.7 REQUEST SENSE 03h M 7.2.14 RESERVE (6) 16h O 16.2.8 RESERVE (10) 56h O 16.2.8 REZERO UNIT 01h O 8.2.13 SEND DIAGNOSTIC 1Dh M 7.2.15 SEND VOLUME TAG B6h O 16.2.9 TEST UNIT READY 00h M 7.2.16 WRITE BUFFER 3Bh O 7.2.17 ============================================================================== Key: M = Command implementation is mandatory. MP = Command implementation is mandatory on any device that addresses more than 8 devices. O = Command implementation is optional. Operation codes C0h through FFh are vendor specific. All other operation codes are reserved.