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

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Logical Characteristics                                                 3/9/90
  8.  
  9. 5. Logical Characteristics
  10.  
  11. 5.1. SCSI Bus Phases
  12.  
  13. The SCSI architecture includes eight distinct phases:
  14.  
  15. BUS FREE phase
  16. ARBITRATION phase
  17. SELECTION phase
  18. RESELECTION phase
  19. COMMAND phase  \
  20. DATA phase      \   These phases are collectively termed the
  21. STATUS phase    /   information transfer phases.
  22. MESSAGE phase  /
  23.  
  24. The SCSI bus can never be in more than one phase at any given time.  In the
  25. following descriptions, signals that are not mentioned shall not be asserted.
  26.  
  27. 5.1.1. BUS FREE Phase
  28.  
  29. The BUS FREE phase is used to indicate that no SCSI device is actively using
  30. the SCSI bus and that it is available.  In some cases a target reverts to BUS
  31. FREE phase to indicate an error condition that it has no other way to handle.
  32. This is called as an unexpected disconnect.
  33.  
  34. SCSI devices shall detect the BUS FREE phase after the SEL and BSY signals are
  35. both false for at least a bus settle delay.
  36.  
  37. SCSI devices shall release all SCSI bus signals within a bus clear delay after
  38. the BSY and SEL signals become continuously false for a bus settle delay.  If
  39. an SCSI device requires more than a bus settle delay to detect the BUS FREE
  40. phase then it shall release all SCSI bus signals within a bus clear delay
  41. minus the excess time to detect the BUS FREE phase.  The total time to clear
  42. the SCSI bus shall not exceed a bus settle delay plus a bus clear delay.
  43.  
  44. Initiators normally do not expect BUS FREE phase to begin because of the
  45. target's release of the BSY signal except after one of the following
  46. occurrences:
  47. (1) after a reset condition is detected.
  48. (2) after an ABORT message is successfully received by a target.
  49. (3) after a BUS DEVICE RESET message is successfully received by a target.
  50. (4) after a DISCONNECT message is successfully transmitted from a target (see
  51. 5.6.6)
  52. (5) after a COMMAND COMPLETE message is successfully transmitted from a target
  53. (see 5.6.5).
  54. (6) after a RELEASE RECOVERY message is successfully received by a target.
  55. (7) after an ABORT TAG message is successfully received by a target.
  56. (8) after a CLEAR QUEUE message is successfully received by a target.
  57.  
  58. The BUS FREE phase may also be entered after an unsuccessful selection or
  59.  
  60. SCSI-2 draft proposed American National Standard        5-1      Revision 10c1
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. Logical Characteristics                                                 3/9/90
  69.  
  70. reselection, although in this case it is the release of the SEL signal rather
  71. than the release of the BSY signal that first establishes the BUS FREE phase.
  72.  
  73. If an initiator detects the release of the BSY signal by the target at any
  74. other time, the target is indicating an error condition to the initiator.  The
  75. target may perform this transition to the BUS FREE phase independent of the
  76. state of the ATN signal.  The initiator shall manage this condition as an
  77. unsuccessful I/O process termination.  The target terminates the I/O process
  78. by clearing all pending data and status information for the affected logical
  79. unit or target routine.  The target may optionally prepare sense data that may
  80. be retrieved by a REQUEST SENSE command.  When an initiator detects an
  81. unexpected disconnect, it is recommended that a REQUEST SENSE command be
  82. attempted to obtain any valid sense data that may be available.
  83.  
  84. 5.1.2. ARBITRATION Phase
  85.  
  86. The ARBITRATION phase allows one SCSI device to gain control of the SCSI bus
  87. so that it can initiate or resume an I/O process.
  88.  
  89. The procedure for an SCSI device to obtain control of the SCSI bus is as
  90. follows:
  91. (1) The SCSI device shall first wait for the BUS FREE phase to occur.  The BUS
  92. FREE phase is detected whenever both the BSY and SEL signals are
  93. simultaneously and continuously false for a minimum of a bus settle delay.
  94.  
  95. IMPLEMENTORS NOTE:  This bus settle delay is necessary because a transmission
  96. line phenomenon known as a "wired-OR glitch" may cause the BSY signal to
  97. briefly appear false, even though it is being driven true.
  98.  
  99. (2) The SCSI device shall wait a minimum of a bus free delay after detection
  100. of the BUS FREE phase (i.e. after the BSY and SEL signals are both false for a
  101. bus settle delay) before driving any signal.
  102. (3) Following the bus free delay in Step (2), the SCSI device may arbitrate
  103. for the SCSI bus by asserting both the BSY signal and its own SCSI ID, however
  104. the SCSI device shall not arbitrate (i.e. assert the BSY signal and its SCSI
  105. ID) if more than a bus set delay has passed since the BUS FREE phase was last
  106. observed.
  107.  
  108. IMPLEMENTORS NOTE:  There is no maximum delay before asserting the BSY signal
  109. and the SCSI ID following the bus free delay in Step (2) as long as the bus
  110. remains in the BUS FREE phase.  However, SCSI devices that delay longer than a
  111. bus settle delay plus a bus set delay from the time when the BSY and SEL
  112. signals first become false may fail to participate in arbitration when
  113. competing with faster SCSI devices.
  114.  
  115. (4) After waiting at least an arbitration delay (measured from its assertion
  116.  
  117.  
  118.  
  119.  
  120.  
  121. SCSI-2 draft proposed American National Standard        5-2      Revision 10c2
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129. Logical Characteristics                                                 3/9/90
  130.  
  131. of the BSY signal) the SCSI device shall examine the DATA BUS.  If a higher
  132. priority SCSI ID bit is true on the DATA BUS (DB(7) is the highest), then the
  133. SCSI device has lost the arbitration and the SCSI device may release its
  134. signals and return to Step (1).  If no higher priority SCSI ID bit is true on
  135. the DATA BUS, then the SCSI device has won the arbitration and it shall assert
  136. the SEL signal.  Any SCSI device other than the winner has lost the
  137. arbitration and shall release the BSY signal and its SCSI ID bit within a bus
  138. clear delay after the SEL signal becomes true.  An SCSI device that loses
  139. arbitration may return to Step (1).
  140.  
  141. IMPLEMENTORS NOTE:  It is recommended that new implementations wait for the
  142. SEL signal to become true before releasing the BSY signal and SCSI ID bit when
  143. arbitration is lost.
  144.  
  145. (5)  The SCSI device that wins arbitration shall wait at least a bus clear
  146. delay plus a bus settle delay after asserting the SEL signal before changing
  147. any signals.
  148.  
  149. NOTE:  The SCSI ID bit is a single bit on the DATA BUS that corresponds to the
  150. SCSI device's unique SCSI address.  All other seven DATA BUS bits shall be
  151. released by the SCSI device.  Parity is not valid during the ARBITRATION
  152. phase.  During the ARBITRATION phase, DB(P) may be released or asserted, but
  153. shall not be actively driven false.
  154.  
  155. 5.1.3. SELECTION Phase
  156.  
  157. The SELECTION phase allows an initiator to select a target for the purpose of
  158. initiating some target function (e.g., READ or WRITE command).  During the
  159. SELECTION phase the I/O signal is negated so that this phase can be
  160. distinguished from the RESELECTION phase.
  161.  
  162. The SCSI device that won the arbitration has both the BSY and SEL signals
  163. asserted and has delayed at least a bus clear delay plus a bus settle delay
  164. before ending the ARBITRATION phase.  The SCSI device that won the arbitration
  165. becomes an initiator by not asserting the I/O signal.
  166.  
  167. The initiator shall set the DATA BUS to a value which is the OR of its SCSI ID
  168. bit and the target's SCSI ID bit and it shall assert the ATN signal
  169. (indicating that a MESSAGE OUT phase is to follow the SELECTION phase).  The
  170. initiator shall then wait at least two deskew delays and release the BSY
  171. signal.  The initiator shall then wait at least a bus settle delay before
  172. looking for a response from the target.
  173.  
  174. The target shall determine that it is selected when the SEL signal and its
  175. SCSI ID bit are true and the BSY and I/O signals are false for at least a bus
  176. settle delay.  The selected target may examine the DATA BUS in order to
  177. determine the SCSI ID of the selecting initiator.  The selected target shall
  178. then assert the BSY signal within a selection abort time of its most recent
  179. detection of being selected; this is required for correct operation of the
  180. selection time-out procedure.
  181.  
  182. SCSI-2 draft proposed American National Standard        5-3      Revision 10c3
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190. Logical Characteristics                                                 3/9/90
  191.  
  192.  
  193. The target shall not respond to a selection if bad parity is detected.  Also,
  194. if more than two SCSI ID bits are on the DATA BUS, the target shall not
  195. respond to selection.
  196.  
  197. IMPLEMENTORS NOTE:  If a target chooses to support the single initiator or
  198. selection without asserting ATN options of SCSI-1, it may respond as described
  199. in the SCSI-1 standard.
  200.  
  201. No less than two deskew delays after the initiator detects the BSY signal is
  202. true, it shall release the SEL signal and may change the DATA BUS.  The target
  203. shall wait until the SEL signal is false before asserting the REQ signal to
  204. enter an information transfer phase.
  205.  
  206. 5.1.3.1. SELECTION Time-out Procedure
  207. Two optional selection time-out procedures are specified for clearing the SCSI
  208. bus if the initiator waits a minimum of a selection time-out delay and there
  209. has been no BSY signal response from the target:
  210. (1) Optionally, the initiator shall assert the RST signal (see 5.2.2).
  211. (2) Optionally, the initiator shall continue asserting the SEL and ATN signals
  212. and shall release the DATA BUS.  If the initiator has not detected the BSY
  213. signal to be true after at least a selection abort time plus two deskew
  214. delays, the initiator shall release the SEL and ATN signals allowing the SCSI
  215. bus to go to the BUS FREE phase.  SCSI devices shall ensure that when
  216. responding to selection that the selection was still valid within a selection
  217. abort time of their assertion of the BSY signal.  Failure to comply with this
  218. requirement could result in an improper selection (two targets connected to
  219. the same initiator, wrong target connected to an initiator, or a target
  220. connected to no initiator).
  221.  
  222. 5.1.4. RESELECTION Phase
  223.  
  224. RESELECTION is an optional phase that allows a target to reconnect to an
  225. initiator for the purpose of continuing some operation that was previously
  226. started by the initiator but was suspended by the target, (i.e., the target
  227. disconnected by allowing a BUS FREE phase to occur before the operation was
  228. complete).
  229.  
  230. 5.1.4.1. RESELECTION
  231. Upon completing the ARBITRATION phase, the winning SCSI device has both the
  232. BSY and SEL signals asserted and has delayed at least a bus clear delay plus a
  233. bus settle delay.  The winning SCSI device becomes a target by asserting the
  234. I/O signal.  The winning SCSI device shall also set the DATA BUS to a value
  235. that is the logical OR of its SCSI ID bit and the initiator's SCSI ID bit.
  236. The target shall wait at least two deskew delays and release the BSY signal.
  237. The target shall then wait at least a bus settle delay before looking for a
  238. response from the initiator.
  239.  
  240. The initiator shall determine that it is reselected when the SEL and I/O
  241. signals and its SCSI ID bit are true and the BSY signal is false for at least
  242.  
  243. SCSI-2 draft proposed American National Standard        5-4      Revision 10c4
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251. Logical Characteristics                                                 3/9/90
  252.  
  253. a bus settle delay.  The reselected initiator may examine the DATA BUS in
  254. order to determine the SCSI ID of the reselecting target.  The reselected
  255. initiator shall then assert the BSY signal within a selection abort time of
  256. its most recent detection of being reselected; this is required for correct
  257. operation of the time-out procedure.  The initiator shall not respond to a
  258. RESELECTION phase if bad parity is detected.  Also, the initiator shall not
  259. respond to a RESELECTION phase if other than two SCSI ID bits are on the DATA
  260. BUS.
  261.  
  262. After the target detects the BSY signal is true, it shall also assert the BSY
  263. signal and wait at least two deskew delays and then release the SEL signal.
  264. The target may then change the I/O signal and the DATA BUS.  After the
  265. reselected initiator detects the SEL signal is false, it shall release the BSY
  266. signal.  The target shall continue asserting the BSY signal until it
  267. relinquishes the SCSI bus.
  268.  
  269. NOTE:  When the target is asserting the BSY signal, a transmission line
  270. phenomenon known as a "wired-OR glitch" may cause the BSY signal to appear
  271. false for up to a round-trip propagation delay following the release of the
  272. BSY signal by the initiator.  This is the reason why the BUS FREE phase is
  273. recognized only after both the BSY and SEL signals are continuously false for
  274. a minimum of a bus settle delay.  Cables longer than 25 meters should not be
  275. used even if the chosen driver, receiver, and cable provide adequate noise
  276. margins, because they increase the duration of the glitch and could cause SCSI
  277. devices to inadvertently detect the BUS FREE phase.
  278.  
  279. 5.1.4.2. RESELECTION Time-out Procedure
  280. Two optional RESELECTION time-out procedures are specified for clearing the
  281. SCSI bus during a RESELECTION phase if the target waits a minimum of a
  282. selection time-out delay and there has been no BSY signal response from the
  283. initiator:
  284. (1) Optionally, the target shall assert the RST signal (see 5.2.2).
  285. (2) Optionally, the target shall continue asserting the SEL and I/O signals
  286. and shall release all DATA BUS signals.  If the target has not detected the
  287. BSY signal to be true after at least a selection abort time plus two deskew
  288. delays, the target shall release the SEL and I/O signals allowing the SCSI bus
  289. to go to the BUS FREE phase.  SCSI devices that respond to the RESELECTION
  290. phase shall ensure that the reselection was still valid within a selection
  291. abort time of their assertion of the BSY signal.  Failure to comply with this
  292. requirement could result in an improper reselection (two initiators connected
  293. to the same target or the wrong initiator connected to a target).
  294.  
  295. 5.1.5. Information Transfer Phases
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304. SCSI-2 draft proposed American National Standard        5-5      Revision 10c5
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312. Logical Characteristics                                                 3/9/90
  313.  
  314.  
  315. NOTE:  The COMMAND, DATA, STATUS, and MESSAGE phases are all grouped together
  316. as the information transfer phases because they are all used to transfer data
  317. or control information via the DATA BUS.  The actual content of the
  318. information is beyond the scope of this section.
  319.  
  320. The C/D, I/O, and MSG signals are used to distinguish between the different
  321. information transfer phases (see Table 5-1).  The target drives these three
  322. signals and therefore controls all changes from one phase to another.  The
  323. initiator can request a MESSAGE OUT phase by asserting the ATN signal, while
  324. the target can cause the BUS FREE phase by releasing the MSG, C/D, I/O, and
  325. BSY signals.
  326.  
  327. The information transfer phases use one or more REQ/ACK handshakes to control
  328. the information transfer.  Each REQ/ACK handshake allows the transfer of one
  329. byte of information.  During the information transfer phases the BSY signal
  330. shall remain true and the SEL signal shall remain false.  Additionally, during
  331. the information transfer phases, the target shall continuously envelope the
  332. REQ/ACK handshake(s) with the C/D, I/O, and MSG signals in such a manner that
  333. these control signals are valid for a bus settle delay before the assertion of
  334. the REQ signal of the first handshake and remain valid until after the
  335. negation of the ACK signal at the end of the handshake of the last transfer of
  336. the phase.
  337.  
  338. IMPLEMENTORS NOTES:
  339. (1) After the negation of the ACK signal of the last transfer of the phase,
  340. the target may prepare for a new phase by asserting or negating the C/D, I/O,
  341. and MSG signals.  These signals may be changed together or individually.  They
  342. may be changed in any order and may be changed more than once.  It is
  343. desirable that each line change only once.  A new phase does not begin until
  344. the REQ signal is asserted for the first byte of the new phase.
  345. (2) A phase is defined as ending when the C/D, I/O, or MSG signals change
  346. after the negation of the ACK signal.  The time between the end of a phase and
  347. the assertion of the REQ signal beginning a new phase is undefined.  An
  348. initiator is allowed to anticipate a new phase based on the previous phase,
  349. the expected new phase, and early information provided by changes in the C/D,
  350. I/O, and MSG signals.  However, the anticipated phase is not valid until the
  351. REQ signal is asserted at the beginning of a the next phase.
  352.  
  353.                    Table 5-1: Information Transfer Phases
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365. SCSI-2 draft proposed American National Standard        5-6      Revision 10c6
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373. Logical Characteristics                                                 3/9/90
  374.  
  375.  
  376. ==============================================================================
  377.    Signal
  378. -----------
  379. MSG C/D I/O   Phase Name          Direction Of Transfer         Comment
  380. ------------------------------------------------------------------------------
  381.  0   0   0    DATA OUT            Initiator to target     \     Data
  382.  0   0   1    DATA IN             Initiator from target   /     Phase
  383.  0   1   0    COMMAND             Initiator to target
  384.  0   1   1    STATUS              Initiator from target
  385.  1   0   0    *
  386.  1   0   1    *
  387.  1   1   0    MESSAGE OUT         Initiator to target     \     Message
  388.  1   1   1    MESSAGE IN          Initiator from target   /     Phase
  389. ==============================================================================
  390.  
  391. Key:  0 = False,  1 = True,  * = Reserved for future standardization.
  392.  
  393. 5.1.5.1. Asynchronous Information Transfer
  394. The target shall control the direction of information transfer by means of the
  395. I/O signal.  When the I/O signal is true, information shall be transferred
  396. from the target to the initiator.  When the I/O signal is false, information
  397. shall be transferred from the initiator to the target.
  398.  
  399. If the I/O signal is true (transfer to the initiator), the target shall first
  400. drive the DB(7-0,P) signals to their desired values, delay at least one deskew
  401. delay plus a cable skew delay, then assert the REQ signal.  The DB(7- 0,P)
  402. signals shall remain valid until the ACK signal is true at the target.  The
  403. initiator shall read the DB(7-0,P) signals after the REQ signal is true, then
  404. indicate its acceptance of the data by asserting the ACK signal.  When the ACK
  405. signal becomes true at the target, the target may change or release the
  406. DB(7-0,P) signals and shall negate the REQ signal.  After the REQ signal is
  407. false the initiator shall then negate the ACK signal.  After the ACK signal is
  408. false the target may continue the transfer by driving the DB(7-0,P) signals
  409. and asserting the REQ signal, as described above.
  410.  
  411. If the I/O signal is false (transfer to the target) the target shall request
  412. information by asserting the REQ signal.  The initiator shall drive the DB(7-
  413. 0,P) signals to their desired values, delay at least one deskew delay plus a
  414. cable skew delay and assert the ACK signal.  The initiator shall continue to
  415. drive the DB(7-0,P) signals until the REQ signal is false.  When the ACK
  416. signal becomes true at the target, the target shall read the DB(7-0,P),
  417. signals then negate the REQ signal.  When the REQ signal becomes false at the
  418. initiator, the initiator may change or release the DB(7-0,P) signals and shall
  419. negate the ACK signal.  The target may continue the transfer by asserting the
  420. REQ signal, as described above.
  421.  
  422. 5.1.5.2. Synchronous Data Transfer
  423.  
  424.  
  425.  
  426. SCSI-2 draft proposed American National Standard        5-7      Revision 10c7
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434. Logical Characteristics                                                 3/9/90
  435.  
  436. Synchronous data transfer is optional and is only used in data phases.  It
  437. shall be used in a data phase if a synchronous data transfer agreement has
  438. been established (see 5.6.21).  The agreement specifies the REQ/ACK offset and
  439. the minimum transfer period.
  440.  
  441. The REQ/ACK offset specifies the maximum number of REQ pulses that can be sent
  442. by the target in advance of the number of ACK pulses received from the
  443. initiator, establishing a pacing mechanism.  If the number of REQ pulses
  444. exceeds the number of ACK pulses by the REQ/ACK offset, the target shall not
  445. assert the REQ signal until after the leading edge of the next ACK pulse is
  446. received.  A requirement for successful completion of the data phase is that
  447. the number of ACK and REQ pulses be equal.
  448.  
  449. The target shall assert the REQ signal for a minimum of an assertion period.
  450. The target shall then wait at least the greater of a transfer period from the
  451. last transition of the REQ signal to true or a minimum of a negation period
  452. from the last transition of the REQ signal to false before again asserting the
  453. REQ signal.
  454.  
  455. The initiator shall send one pulse on the ACK signal for each REQ pulse
  456. received.  The ACK signal may be asserted as soon as the leading edge of the
  457. corresponding REQ pulse has been received.  The initiator shall assert the ACK
  458. signal for a minimum of an assertion period.  The initiator shall wait at
  459. least the greater of a transfer period from the last transition of the ACK
  460. signal to true or for a minimum of a negation period from the last transition
  461. of the ACK signal to false before asserting the ACK signal.
  462.  
  463. If the I/O signal is true (transfer to the initiator), the target shall first
  464. drive the DB(7-0,P) signals to their desired values, wait at least one deskew
  465. delay plus one cable skew delay, then assert the REQ signals.  The DB(7-0,P)
  466. signals shall be held valid for a minimum of one deskew delay plus one cable
  467. skew delay plus one hold time after the assertion of the REQ signal.  The
  468. target shall assert the REQ signal for a minimum of an assertion period.  The
  469. target may then negate the REQ signal and change or release the DB(7-0,P)
  470. signals.  The initiator shall read the value on the DB(7-0,P) signals within
  471. one hold time of the transition of the REQ signal to true.  The initiator
  472. shall then respond with an ACK pulse.
  473.  
  474. If the I/O signal is false (transfer to the target), the initiator shall
  475. transfer one byte for each REQ pulse received.  After receiving the leading
  476. edge of a REQ pulse, the initiator shall first drive the DB(7-0,P) signals to
  477. their desired values, delay at least one deskew delay plus one cable skew
  478. delay, then assert the ACK signal.  The initiator shall hold the DB(7-0,P)
  479. signals valid for at least one deskew delay plus one cable skew delay plus one
  480. hold time after the assertion of the ACK signal.  The initiator shall assert
  481. the ACK signal for a minimum of an assertion period.  The initiator may then
  482. negate the ACK signal and may change or release the DB(7-0,P) signals.  The
  483. target shall read the value of the DB(7-0,P) signals within one hold time of
  484. the transition of the ACK signal to true.
  485.  
  486.  
  487. SCSI-2 draft proposed American National Standard        5-8      Revision 10c8
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495. Logical Characteristics                                                 3/9/90
  496.  
  497. IMPLEMENTORS NOTES:  The description in SCSI-1 allowed some implementors to
  498. presume that the leading edge of the first REQ pulse beyond the REQ/ACK offset
  499. agreement would not occur until after the trailing edge of the last ACK pulse
  500. within the agreement.  Devices implemented with this understanding may be
  501. subject to data destruction when in synchronous data transfer mode with
  502. devices that issue the leading edge of the next REQ pulse, at the boundary of
  503. the agreement, as soon as the leading edge of the last ACK pulse within the
  504. agreement is received.  Implementors using devices of the former type in
  505. initiator designs may insure data integrity by restricting the synchronous
  506. offset agreement to values smaller than the maximum nominally offered by their
  507. device.
  508.  
  509. 5.1.5.3. Wide Data Transfer
  510. Wide data transfer is optional and may be used in the DATA phase only if a
  511. nonzero wide data transfer agreement is in effect (see WIDE DATA TRANSFER
  512. REQUEST message, 5.6.23).  The messages determine the use of wide mode by both
  513. SCSI devices and establish a data path width to be used during the DATA phase.
  514.  
  515. Wide data transfers of 16- or 32-bits may be established.  Although not
  516. mandatory, it is recommended that targets and initiators that support 32-bit
  517. wide transfers also support 16-bit wide transfers as well.  All SCSI devices
  518. shall support 8-bit data transfers.
  519.  
  520. During 16-bit wide data transfers, the first logical data byte for each data
  521. phase shall be transferred across the DB(7-0,P) signals on the A cable and the
  522. second logical data byte shall be transferred across the DB(15-8,P1) signals
  523. on the B cable.  Subsequent pairs of data bytes are likewise transferred in
  524. parallel across the A and B cables (see Figure 5-1).
  525.  
  526. IMPLEMENTORS NOTE:  X3T9.2 is documenting an alternate 16-bit single-cable
  527. solution and an alternate 32-bit solution and expects to be able to remove the
  528. B cable definition in a future version of SCSI.
  529.  
  530. During 32-bit wide data transfers, the first logical data byte for each data
  531. phase shall be transferred across the DB(7-0,P) signals on the A cable and the
  532. second, third, and fourth logical data bytes shall be transferred across the
  533. DB(15-8,P1), DB(23-16,P2), and DB(31-24,P3) signals, respectively, on the B
  534. cable.  Subsequent groups of four data bytes are likewise transferred in
  535. parallel across the A and B cables (see Figure 5-1).
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548. SCSI-2 draft proposed American National Standard        5-9      Revision 10c9
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556. Logical Characteristics                                                 3/9/90
  557.  
  558.  
  559.  
  560.  
  561. When transferring bytes W, X, Y and Z across the three bus widths,
  562. they are transferred as shown below:
  563.  
  564. Hand-  8-bit           16-bit                      32-bitshake                                  ______         ______
  565.   #   A Cable     B Cable A Cable     /       B Cable       \ A Cable
  566.  
  567.   1      W           X       W           Z       Y       X       W
  568.   2      X           Z       Y        31...24 23...16 15....8 7.....0
  569.  
  570.   3      Y        15....8 7.....0                Bit Number
  571.   4      Z           Bit Number
  572.  
  573.       7.....0
  574.      Bit Number
  575.  
  576.  NOTE: This figure does not represent how these bytes are stored in
  577.        the initiator's memory, which may be different.
  578.  
  579.  
  580.  
  581.  
  582.                      Figure 5-1: Wide SCSI Byte Ordering
  583.  
  584.  
  585. If the last data byte transferred for a command does not fall on the DB(15-
  586. 8,P1) signals for a 16-bit wide transfer or the DB(31-24,P3) signals for a 32-
  587. bit wide transfer, then the values of the remaining higher-numbered bits are
  588. undefined.  However, parity bits for these undefined bytes shall be valid for
  589. whatever data is placed on the bus.
  590.  
  591. To ensure proper data integrity, certain sequence requirements shall be met
  592. between the REQ/ACK handshakes on the A cable and the REQB/ACKB handshakes on
  593. the B cable:
  594. (1) The REQB and ACKB signals shall only be asserted during data phases while
  595. a nonzero wide data transfer agreement is in effect.  These signals shall not
  596. be asserted during other phases.
  597. (2) The same information transfer mode (asynchronous or synchronous) shall be
  598. used for both the A cable and the B cable.  If synchronous data transfer mode
  599. is in effect, the same REQ/ACK offset and transfer period shall be used for
  600. both cables.
  601. (3) The information transfer procedures defined in 5.1.5.1 and 5.1.5.2 for the
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609. SCSI-2 draft proposed American National Standard        5-10      Revision 10c10
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617. Logical Characteristics                                                 3/9/90
  618.  
  619. A cable (the REQ, ACK, and DB(7-0,P) signals) shall also apply to the B cable
  620. (the REQB, ACKB, and DB(31-8,P1,P2,P3) signals).  The only means available for
  621. a target to manage the timing relationship between the signals on the two
  622. cables is its management of the REQ and REQB signals.  Similarly, the only
  623. means for the initiator to manage the timing between the two cables is its
  624. management of the ACK and ACKB signals.
  625. (4) The target shall ensure that the number of REQ/ACK handshakes and the
  626. number of REQB/ACKB handshakes in a data phase are equal before it changes to
  627. another phase.  The target shall not change the phase until the ACK and ACKB
  628. signals have both become false for the last REQ/ACK handshake and the last
  629. REQB/ACKB handshake.
  630.  
  631. IMPLEMENTORS NOTE:  If any violations of these rules are detected by the
  632. target, the target may attempt to end the data phase and return CHECK
  633. CONDITION status.  If it is impossible to correctly terminate the data phase,
  634. the target may abnormally terminate the I/O process by an unexpected
  635. disconnect.  If any violations of these rules are detected by the initiator,
  636. the initiator may attempt to send an INITIATOR DETECTED ERROR message to the
  637. target.  If the initiator is unable to terminate the I/O process normally, it
  638. may generate the reset condition.
  639.  
  640. 5.1.6. COMMAND Phase
  641.  
  642.  
  643. The COMMAND phase allows the target to request command information from the
  644. initiator.
  645.  
  646. The target shall assert the C/D signal and negate the I/O and MSG signals
  647. during the REQ/ACK handshake(s) of this phase.
  648.  
  649. 5.1.7. Data Phase
  650.  
  651. The data phase is a term that encompasses both the DATA IN phase and the DATA
  652. OUT phase.
  653.  
  654. 5.1.7.1. DATA IN Phase
  655.  
  656. The DATA IN phase allows the target to request that data be sent to the
  657. initiator from the target.
  658.  
  659. The target shall assert the I/O signal and negate the C/D and MSG signals
  660. during the REQ/ACK handshake(s) of this phase.
  661.  
  662. 5.1.7.2. DATA OUT Phase
  663. The DATA OUT phase allows the target to request that data be sent from the
  664. initiator to the target.
  665.  
  666. The target shall negate the C/D, I/O, and MSG signals during the REQ/ACK
  667. handshake(s) of this phase.
  668.  
  669.  
  670. SCSI-2 draft proposed American National Standard        5-11      Revision 10c11
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678. Logical Characteristics                                                 3/9/90
  679.  
  680. 5.1.8. STATUS Phase
  681.  
  682. The STATUS phase allows the target to request that status information be sent
  683. from the target to the initiator.
  684.  
  685. The target shall assert the C/D and I/O signals and negate the MSG signal
  686. during the REQ/ACK handshake of this phase.
  687.  
  688. 5.1.9. Message Phase
  689.  
  690. The message phase is a term that references either a MESSAGE IN, or a MESSAGE
  691. OUT phase.  Multiple messages may be sent during either phase.  The first byte
  692. transferred in either of these phases shall be either a single-byte message or
  693. the first byte of a multiple-byte message.  Multiple-byte messages shall be
  694. wholly contained within a single message phase.
  695.  
  696. 5.1.9.1. MESSAGE IN Phase
  697. The MESSAGE IN phase allows the target to request that message(s) be sent to
  698. the initiator from the target.
  699.  
  700. The target shall assert the C/D, I/O, and MSG signals during the REQ/ACK
  701. handshake(s) of this phase.
  702.  
  703. 5.1.9.2. MESSAGE OUT Phase
  704. The MESSAGE OUT phase allows the target to request that message(s) be sent
  705. from the initiator to the target.  The target invokes this phase in response
  706. to the attention condition created by the initiator (see 5.2.1).
  707.  
  708. The target shall assert the C/D and MSG signals and negate the I/O signal
  709. during the REQ/ACK handshake(s) of this phase.  The target shall handshake
  710. byte(s) in this phase until the ATN signal is negated, except when rejecting a
  711. message.
  712.  
  713. If the target detects one or more parity error(s) on the message byte(s)
  714. received, it may indicate its desire to retry the message(s) by asserting the
  715. REQ signal after detecting the ATN signal has gone false and prior to changing
  716. to any other phase.  The initiator, upon detecting this condition, shall re-
  717. send all of the previous message byte(s) in the same order as previously sent
  718. during this phase.  When re-sending more than one message byte, the initiator
  719. shall assert the ATN signal at least two deskew delays prior to asserting the
  720. ACK signal on the first byte and shall maintain the ATN signal asserted until
  721. the last byte is sent as described in 5.2.1.
  722.  
  723. The target may act on messages as received as long as no parity error is
  724. detected and may ignore all remaining messages sent under one ATN condition
  725. after a parity error is detected.  When a sequence of messages is re-sent by
  726. an initiator because of a target detected parity error, the target shall not
  727. act on any message which it acted on the first time received.
  728.  
  729. If the target receives all of the message byte(s) successfully (i.e., no
  730.  
  731. SCSI-2 draft proposed American National Standard        5-12      Revision 10c12
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739. Logical Characteristics                                                 3/9/90
  740.  
  741. parity errors), it shall indicate that it does not wish to retry by changing
  742. to any information transfer phase other than the MESSAGE OUT phase and
  743. transfer at least one byte.  The target may also indicate that it has
  744. successfully received the message byte(s) by changing to the BUS FREE phase
  745. (e.g., ABORT or BUS DEVICE RESET messages).
  746.  
  747. 5.1.10. Signal Restrictions Between Phases
  748.  
  749. When the SCSI bus is between two information transfer phases, the following
  750. restrictions shall apply to the SCSI bus signals:
  751. (1) The BSY, SEL, REQ, REQB, ACK and ACKB signals shall not change.
  752. (2) The C/D, I/O, MSG, and DATA BUS signals may change.  When switching the
  753. DATA BUS direction from out (initiator driving) to in (target driving), the
  754. target shall delay driving the DATA BUS by at least a data release delay plus
  755. a bus settle delay after asserting the I/O signal and the initiator shall
  756. release the DATA BUS no later than a data release delay after the transition
  757. of the I/O signal to true.  When switching the DATA BUS direction from in
  758. (target driving) to out (initiator driving), the target shall release the DATA
  759. BUS no later than a deskew delay after negating the I/O signal.
  760. (3) The ATN and RST signals may change as defined under the descriptions for
  761. the attention condition (see 5.2.1) and reset condition (see 5.2.2).
  762.  
  763.  
  764. 5.2. SCSI Bus Conditions
  765.  
  766. The SCSI bus has two asynchronous conditions; the attention condition and the
  767. reset condition.  These conditions cause the SCSI device to perform certain
  768. actions and can alter the phase sequence.
  769.  
  770. Furthermore, an SCSI device may not all be powered on at the same time.  This
  771. standard does not address power sequencing issues.  However, each SCSI device,
  772. as it is powered on, should perform appropriate internal reset operations and
  773. internal test operations.  It is recommended that following a power-on to
  774. selection time after power is applied, SCSI targets be able to respond with
  775. appropriate status and sense data to the TEST UNIT READY, INQUIRY, and REQUEST
  776. SENSE commands.
  777.  
  778. 5.2.1. Attention Condition
  779.  
  780. The attention condition allows an initiator to inform a target that the
  781. initiator has a message ready.  The target may get this message by performing
  782. a MESSAGE OUT phase.
  783.  
  784. The initiator creates the attention condition by asserting ATN at any time
  785. except during the ARBITRATION or BUS FREE phases.
  786.  
  787. The initiator shall assert the ATN signal at least two deskew delays before
  788. negating the ACK signal for the last byte transferred in a bus phase for the
  789. attention condition to be honored before transition to a new bus phase.
  790. Asserting the ATN signal later might not be honored until a later bus phase
  791.  
  792. SCSI-2 draft proposed American National Standard        5-13      Revision 10c13
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800. Logical Characteristics                                                 3/9/90
  801.  
  802. and then may not result in the expected action.  The initiator shall negate
  803. the ATN signal at least two deskew delays before asserting the ACK signal
  804. while transferring the last byte of the messages indicated with a "Yes" in
  805. Table 5-2.  If the target detects that the initiator failed to meet this
  806. requirement, then the target shall go to BUS FREE phase (see unexpected
  807. disconnect, 5.1.1).
  808.  
  809. A target shall respond with MESSAGE OUT phase as follows:
  810. (1) If the ATN signal becomes true during a COMMAND phase, the target shall
  811. enter MESSAGE OUT phase after transferring part or all of the command
  812. descriptor block bytes.
  813. (2) If the ATN signal becomes true during a DATA phase, the target shall enter
  814. MESSAGE OUT phase at the target's earliest convenience (often, but not
  815. necessarily on a logical block boundary).  The initiator shall continue
  816. REQ/ACK handshakes until it detects the phase change.
  817. (3) If the ATN signal becomes true during a STATUS phase, the target shall
  818. enter MESSAGE OUT phase after the status byte has been acknowledged by the
  819. initiator.
  820. (4) If the ATN signal becomes true during a MESSAGE IN phase, the target shall
  821. enter MESSAGE OUT phase before it sends another message.  This permits a
  822. MESSAGE PARITY ERROR message from the initiator to be associated with the
  823. appropriate message.
  824. (5) If the ATN signal becomes true during a SELECTION phase and before the
  825. initiator releases the BSY signal, the target shall enter MESSAGE OUT phase
  826. immediately after that SELECTION phase.
  827. (6) If the ATN signal becomes true during a RESELECTION phase, the target
  828. shall enter MESSAGE OUT phase after the target has sent its IDENTIFY message
  829. for that RESELECTION phase.
  830.  
  831. The initiator shall keep the ATN signal asserted if more than one byte is to
  832. be transferred.  The initiator may negate the ATN signal at any time except it
  833. shall not negate the ATN signal while the ACK signal is asserted during a
  834. MESSAGE OUT phase.  Normally, the initiator negates the ATN signal while the
  835. REQ signal is true and the ACK signal is false during the last REQ/ACK
  836. handshake of the MESSAGE OUT phase.
  837.  
  838. 5.2.2. Reset Condition
  839.  
  840. The reset condition is used to immediately clear all SCSI devices from the
  841. bus.  This condition shall take precedence over all other phases and
  842. conditions.  Any SCSI device may create the reset condition by asserting the
  843. RST signal for a minimum of a reset hold time.  During the reset condition,
  844. the state of all SCSI bus signals other than the RST signal is not defined.
  845.  
  846. All SCSI devices shall release all SCSI bus signals (except the RST signal)
  847. within a bus clear delay of the transition of the RST signal to true.  The BUS
  848. FREE phase always follows the reset condition.
  849.  
  850. The effect of the reset condition on I/O processes which have not completed,
  851. SCSI device reservations, and SCSI device operating modes is determined by
  852.  
  853. SCSI-2 draft proposed American National Standard        5-14      Revision 10c14
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861. Logical Characteristics                                                 3/9/90
  862.  
  863. whether the SCSI device has implemented the hard reset alternative or the soft
  864. reset alternative (one of which shall be implemented) as defined in 5.2.2.1
  865. and 5.2.2.2.  The hard and soft reset alternatives are mutually exclusive
  866. within a system.  A facility for targets to report which reset alternative is
  867. implemented is provided in the SftRe bit of the INQUIRY data (7.2.5).
  868.  
  869. IMPLEMENTORS NOTE:  Environmental conditions (e.g., static discharge) may
  870. generate brief glitches on the RST signal.  It is recommended that SCSI
  871. devices not react to these glitches.  The manner of rejecting glitches is
  872. vendor specific.  The bus clear delay following a RST signal transition to
  873. true is measured from the original transition of the RST signal, not from the
  874. time that the signal has been confirmed.  This limits the time to confirm the
  875. RST signal to a maximum of a bus clear delay.
  876.  
  877. 5.2.2.1. Hard Reset Alternative
  878.  
  879. SCSI devices that implement the hard reset alternative, upon detection of the
  880. reset condition, shall:
  881. (1) Clear all I/O processes including queued I/O processes.
  882. (2) Release all SCSI device reservations.
  883. (3) Return any SCSI device operating modes to their appropriate initial
  884. conditions, similar to those conditions that would be found after a normal
  885. power-on reset.  MODE SELECT conditions shall be restored to their last saved
  886. values if saved values have been established.  MODE SELECT conditions for
  887. which no values have been saved shall be returned to their default values.
  888. (4) Unit attention condition shall be set (See 6.9).
  889.  
  890. It is recommended that following a reset to selection time after a hard reset
  891. condition ends, SCSI targets be able to respond with appropriate status and
  892. sense data to the TEST UNIT READY, INQUIRY, and REQUEST SENSE commands.
  893.  
  894. 5.2.2.2. Soft Reset Alternative
  895. SCSI devices that implement the soft reset alternative, upon detection of the
  896. reset condition, shall:
  897. (1) Attempt to complete any I/O processes which have not completed and that
  898. were fully identified
  899. (2) Preserve all SCSI device reservations
  900. (3) Preserve any SCSI device operating modes (MODE SELECT, PREVENT/ALLOW
  901. MEDIUM REMOVAL commands, etc.)
  902. (4) Preserve all the information required to continue normal dispatching of
  903. I/O processes queued prior to the reset condition.
  904.  
  905. The soft reset alternative allows an initiator to reset the SCSI bus with
  906. minimum disruption to the operation of other initiators in a multiple
  907. initiator system.  To ensure proper operation the following conditions shall
  908. be met:
  909. (1) An initiator shall not consider an I/O process to be fully identified
  910. until the IDENTIFY message (and queue tag message, if any) is sent to the
  911. target and the target responds by changing to any other information transfer
  912. phase and requests that at least one byte be transferred.
  913.  
  914. SCSI-2 draft proposed American National Standard        5-15      Revision 10c15
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922. Logical Characteristics                                                 3/9/90
  923.  
  924. (2) A target shall consider an I/O process to be fully identified when it
  925. successfully receives the IDENTIFY message and any queue tag message and the
  926. initiator negates the ATN signal.
  927. (3) If an initiator selects a logical unit for which there already is an
  928. active I/O process with the same queue tag (if any) for the same initiator,
  929. the target shall clear the original I/O process and perform the new I/O
  930. process.
  931. (4) If a target reselects an initiator to continue an I/O process for which
  932. the initiator has no record, the initiator shall abort that I/O process by
  933. sending the ABORT or ABORT TAG message, depending on whether the reselecting
  934. I/O process is a tagged I/O process.
  935. (5) An initiator shall consider an I/O process to be completed when it negates
  936. ACK for a successfully received COMMAND COMPLETE message.
  937. (6) A target shall consider an I/O process to be completed when it detects the
  938. transition of ACK to false for the COMMAND COMPLETE message with the ATN
  939. signal false.
  940. (7) An initiator shall not negate the ACK signal for the SAVE DATA POINTER
  941. message until it has actually saved the data pointer for the I/O process.
  942. (8) A target shall consider the data pointer to be saved when it detects the
  943. transition of the ACK signal to false for the SAVE DATA POINTER message with
  944. the ATN signal false.
  945. (9) If the reset condition occurs between the time that the target asserts the
  946. REQ signal for the SAVE DATA POINTER message and it detects the transition of
  947. the ACK signal to false, the target shall terminate the I/O process with CHECK
  948. CONDITION status.  The target shall set the sense key to ABORTED COMMAND.
  949. This is necessary because the target cannot determine whether the data pointer
  950. has actually been saved.
  951.  
  952. NOTE: If the ATN signal is true in conditions (6) or (8), the target would
  953. normally switch to MESSAGE OUT phase and attempt to transfer a message byte.
  954. If the reset condition occurs before the target successfully receives the
  955. message byte, it may assume that the initiator has not successfully received
  956. the COMMAND COMPLETE message or the SAVE DATA POINTER message.  In the case of
  957. COMMAND COMPLETE message, the target may reselect the initiator and attempt to
  958. send the COMMAND COMPLETE message again.  In the case of the SAVE DATA POINTER
  959. message, the target may reselect the initiator and terminate the I/O process
  960. as described in condition (9).
  961.  
  962. 5.3. SCSI Bus Phase Sequences
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975. SCSI-2 draft proposed American National Standard        5-16      Revision 10c16
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983. Logical Characteristics                                                 3/9/90
  984.  
  985.  
  986. The order in which phases are used on the SCSI bus follows a prescribed
  987. sequence.
  988.  
  989. The reset condition can abort any phase and is always followed by the BUS FREE
  990. phase.  Also any other phase can be followed by the BUS FREE phase but many
  991. such instances are error conditions (see unexpected disconnect, 5.1.1).
  992.  
  993. The additional allowable sequences shall be as shown in Figure 5-2.  The
  994. normal progression is from the BUS FREE phase to ARBITRATION, from ARBITRATION
  995. to SELECTION or RESELECTION, and from SELECTION or RESELECTION to one or more
  996. of the information transfer phases (COMMAND, DATA, STATUS, or MESSAGE).  The
  997. final information transfer phase is normally the MESSAGE IN phase where a
  998. DISCONNECT, or COMMAND COMPLETE message is transferred, followed by the BUS
  999. FREE phase.
  1000.  
  1001.  
  1002.  
  1003.  
  1004.    Reset or                                                 V
  1005.    protocol                                        >
  1006.     error                                          >  MESSAGE OUT                                                             >
  1007.  
  1008.                                                         A
  1009.                                                             V
  1010.                            SELECTION               >    COMMAND
  1011.  
  1012.                                                                                                           A
  1013.       V    V    V                                           V
  1014.  
  1015.        BUS  FREE       >  ARBITRATION              >  DATA IN or   <                                                             DATA OUT
  1016.  
  1017.            A    A
  1018.                                V                            V
  1019.                           RESELECTION                   STATUS     <
  1020.  
  1021.                                                                    <                                                              A
  1022.                                                             V
  1023.                                                                    <
  1024.                                                       MESSAGE IN   <
  1025.                                                                    <
  1026.                                                       A
  1027.  
  1028.  
  1029.  
  1030.  
  1031.                          Figure 5-2: Phase Sequences
  1032.  
  1033.  
  1034.  
  1035.  
  1036. SCSI-2 draft proposed American National Standard        5-17      Revision 10c17
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044. Logical Characteristics                                                 3/9/90
  1045.  
  1046. 5.4. SCSI Pointers
  1047.  
  1048. Consider the system shown in Figure 5-3 in which an initiator and target
  1049. communicate on the SCSI bus in order to execute an I/O process.
  1050.  
  1051.  
  1052.      -------------------------                 -------------------------
  1053.      | Function | | Initiator|-----------------| Target   | | Function |
  1054.      | Origin   | | SCSI Bus |    SCSI BUS     | SCSI Bus | | Execution|
  1055.      |          | | Control  |-----------------| Control  | |          |
  1056.      -------------------------                 -------------------------
  1057.  
  1058.              Initiator                                   Target
  1059.  
  1060.                       Figure 5-3: Simplified SCSI System
  1061.  
  1062. The SCSI architecture provides for a set of three pointers for each I/O
  1063. process, called the saved pointers.  The set of three pointers consist of one
  1064. for the command, one for the data, and one for the status.  When an I/O
  1065. process becomes active, its three saved pointers are copied into the
  1066. initiator's set of three active pointers.  There is only one set of active
  1067. pointers in each initiator.  The active pointers point to the next command,
  1068. data, or status byte to be transferred between the initiator's memory and the
  1069. target.  The saved and active pointers reside in the initiator.
  1070.  
  1071. The saved command pointer always points to the start of the command descriptor
  1072. block (see 6.2) for the I/O process.  The saved status pointer always points
  1073. to the start of the status area for the I/O process.  The saved data pointer
  1074. points to the start of the data area until the target sends a SAVE DATA
  1075. POINTER message (see 5.6.20) for the I/O process.
  1076.  
  1077. In response to the SAVE DATA POINTER message, the initiator stores the value
  1078. of the active data pointer into the saved data pointer for that I/O process.
  1079. The target may restore the active pointers to the saved pointer values for the
  1080. active I/O process by sending a RESTORE POINTERS message (see 5.6.19) to the
  1081. initiator.  The initiator then copies the set of saved pointers into the set
  1082. of active pointers.  Whenever a target disconnects from the bus, only the set
  1083. of saved pointers are retained.  The set of active pointers is restored from
  1084. the set of saved pointers upon reconnection of the I/O process.
  1085.  
  1086. IMPLEMENTORS NOTE:  Since the data pointer value may be modified by the target
  1087. before the I/O process ends, it should not be used to test for actual transfer
  1088. length.
  1089.  
  1090. 5.5. Message System Description
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097. SCSI-2 draft proposed American National Standard        5-18      Revision 10c18
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105. Logical Characteristics                                                 3/9/90
  1106.  
  1107.  
  1108. The message system allows communication between an initiator and target for
  1109. the purpose of interface management.  A message may be one, two, or multiple
  1110. bytes in length.  One or more messages may be sent during a single MESSAGE
  1111. phase, but a message may not be split over MESSAGE phases.  The initiator is
  1112. required to end the MESSAGE OUT phase (by negating ATN) when it sends certain
  1113. messages identified in Table 5-2.
  1114.  
  1115. One-byte, Two-byte, and extended message formats are defined.  The first byte
  1116. of the message determines the format as follows:
  1117.  
  1118.                   Value             Message Format
  1119.                 ---------  -----------------------------------
  1120.                    00h     One-Byte Message (COMMAND COMPLETE)
  1121.                    01h     Extended Messages
  1122.                 02h - 1Fh  One-Byte Messages
  1123.                 20h - 2Fh  Two-Byte Messages
  1124.                 30h - 7Fh  Reserved
  1125.                 80h - FFh  One-Byte Message (IDENTIFY)
  1126.  
  1127. One-byte messages consist of a single byte transferred during a MESSAGE phase.
  1128. The value of the byte determines which message is to be performed as defined
  1129. in Table 5-2.
  1130.  
  1131.                           Table 5-2: Message Codes
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158. SCSI-2 draft proposed American National Standard        5-19      Revision 10c19
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166. Logical Characteristics                                                 3/9/90
  1167.  
  1168.  
  1169. ==============================================================================
  1170. Code  Support   Message Name                        Direction    Negate ATN
  1171.      Init Targ                                                 Before last ACK
  1172. ------------------------------------------------------------------------------
  1173. 06h   O    M    ABORT                                     Out       Yes
  1174. 0Dh   O    O    ABORT TAG                  (Note 1)       Out       Yes
  1175. 0Ch   O    M    BUS DEVICE RESET                          Out       Yes
  1176. 0Eh   O    O    CLEAR QUEUE                (Note 1)       Out       Yes
  1177. 00h   M    M    COMMAND COMPLETE                     In             ---
  1178. 04h   O    O    DISCONNECT                           In             ---
  1179. 04h   O    O    DISCONNECT                                Out       Yes
  1180. 80h+  M    O    IDENTIFY                             In             ---
  1181. 80h+  M    M    IDENTIFY                                  Out       No
  1182. 23h   O    O    IGNORE WIDE RESIDUE (Two Bytes)      In             ---
  1183. 0Fh   O    O    INITIATE RECOVERY                    In             ---
  1184. 0Fh   O    O    INITIATE RECOVERY          (Note 2)       Out       Yes
  1185. 05h   M    M    INITIATOR DETECTED ERROR                  Out       Yes
  1186. 0Ah   O    O    LINKED COMMAND COMPLETE              In             ---
  1187. 0Bh   O    O    LINKED COMMAND COMPLETE (WITH FLAG)  In             ---
  1188. 09h   M    M    MESSAGE PARITY ERROR                      Out       Yes
  1189. 07h   M    M    MESSAGE REJECT                       In   Out       Yes
  1190. ***   O    O    MODIFY DATA POINTER                  In             ---
  1191. 08h   M    M    NO OPERATION                              Out       Yes
  1192.                 Queue Tag Messages (Two Bytes)
  1193. 21h   O    O      HEAD OF QUEUE TAG                       Out       No
  1194. 22h   O    O      ORDERED QUEUE TAG                       Out       No
  1195. 20h   O    O      SIMPLE QUEUE TAG                   In   Out       No
  1196. 10h   O    O    RELEASE RECOVERY                          Out       Yes
  1197. 03h   O    O    RESTORE POINTERS                     In             ---
  1198. 02h   O    O    SAVE DATA POINTER                    In             ---
  1199. ***   O    O    SYNCHRONOUS DATA TRANSFER REQUEST    In   Out       Yes
  1200. ***   O    O    WIDE DATA TRANSFER REQUEST           In   Out       Yes
  1201. 11h   O    O    TERMINATE I/O PROCESS                     Out       Yes
  1202. 12h - 1Fh       Reserved
  1203. 24h - 2FH       Reserved for two-byte messages
  1204. 30h - 7Fh       Reserved
  1205. ==============================================================================
  1206. Key:  M    = Mandatory support,    O   = Optional support.
  1207. In   = Target to initiator,  Out = Initiator to target.
  1208. Yes  = Initiator shall negate ATN before last ACK of message.
  1209. No   = Initiator may or may not negate ACK before last ACK of message.
  1210.        (see attention condition, 5.2.1.)
  1211. ---  = Not Applicable
  1212. ***  = Extended message (see Tables 5-3 and 5-4)
  1213. 80h+ = Codes 80h through FFh are used for IDENTIFY messages (see Table 5-5).
  1214.  
  1215. NOTES:
  1216. (1)  The ABORT TAG and CLEAR QUEUE messages are required if tagged queuing is
  1217. implemented.
  1218.  
  1219. SCSI-2 draft proposed American National Standard        5-20      Revision 10c20
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227. Logical Characteristics                                                 3/9/90
  1228.  
  1229. (2)  Outbound INITIATE RECOVERY messages are only valid during the
  1230. asynchronous event notification protocol.
  1231.  
  1232. Two-byte messages consist of two consecutive bytes transferred during a
  1233. MESSAGE phase.  The value of the first byte determines which message is to be
  1234. performed as defined in Table 5-2.  The second byte is a parameter byte which
  1235. is used as defined in the message description (see 5.6).
  1236.  
  1237. A value of one in the first byte of a message indicates the beginning of a
  1238. multiple-byte extended message.  The minimum number of bytes sent for an
  1239. extended message is three.  The extended message format and the extended
  1240. message codes are shown in Tables 5-3 and 5-4, respectively.
  1241.  
  1242.  
  1243.                      Table 5-3: Extended Message Format
  1244.  
  1245. ==============================================================================
  1246.  Byte     |  Value   |   Description                                         |
  1247. ==============================================================================
  1248.   0       |   01h    |   Extended message                                    |
  1249. ----------|----------|-------------------------------------------------------|
  1250.   1       |    n     |   Extended message length                             |
  1251. ----------|----------|-------------------------------------------------------|
  1252.   2       |    y     |   Extended message code                               |
  1253. ----------|----------|-------------------------------------------------------|
  1254. 3 - n+1   |    x     |   Extended message arguments                          |
  1255. ==============================================================================
  1256.  
  1257.  
  1258. The extended message length specifies the length in bytes of the extended
  1259. message code plus the extended message arguments to follow.  Therefore, the
  1260. total length of the message is equal to the extended message length plus two.
  1261. A value of zero for the extended message length indicates 256 bytes follow.
  1262.  
  1263. The extended message codes are listed in Table 5-4.  The extended message
  1264. arguments are specified within the extended message descriptions.
  1265.  
  1266.                       Table 5-4: Extended Message Codes
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280. SCSI-2 draft proposed American National Standard        5-21      Revision 10c21
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288. Logical Characteristics                                                 3/9/90
  1289.  
  1290.  
  1291. ==============================================================================
  1292. Code (y)       Description
  1293. ------------------------------------------------------------------------------
  1294. 02h            Reserved (See Note)
  1295. 00h            MODIFY DATA POINTER
  1296. 01h            SYNCHRONOUS DATA TRANSFER REQUEST
  1297. 03h            WIDE DATA TRANSFER REQUEST
  1298. 04h - 7Fh      Reserved
  1299. 80h - FFh      Vendor Unique
  1300. ==============================================================================
  1301.  
  1302. NOTE:  Extended message code 02h was used for the EXTENDED IDENTIFY message in
  1303. SCSI-1.
  1304.  
  1305. The first message sent by the initiator after the SELECTION phase shall be an
  1306. IDENTIFY, ABORT, or BUS DEVICE RESET message.  If a target receives any other
  1307. message it shall go to BUS FREE phase (see unexpected disconnect, 5.1.1).
  1308.  
  1309. If the first message is an IDENTIFY message, then it may be immediately
  1310. followed by other messages, such as the first of a pair of SYNCHRONOUS DATA
  1311. TRANSFER REQUEST messages.  If tagged queuing is used the queue tag message
  1312. immediately follows the IDENTIFY message (see 5.6.7).  The IDENTIFY message
  1313. establishes a logical connection between the initiator and the specified
  1314. logical unit or target routine within the target known as an I_T_L nexus or
  1315. I_T_R nexus.  After the RESELECTION phase, the target's first message shall be
  1316. IDENTIFY.  This allows the I_T_L nexus or I_T_R nexus to be re-established.
  1317. Only one logical unit or target routine shall be identified for any
  1318. connection; if a target receives a second IDENTIFY message with a different
  1319. logical unit number or target routine number during a connection, it shall go
  1320. to BUS FREE phase (see unexpected disconnect, 5.1.1).  The treatment of other
  1321. logical unit addressing errors is described in 6.5.
  1322.  
  1323. All initiators shall implement the mandatory messages tabulated in the "Init"
  1324. column of Table 5-2.  All targets shall implement the mandatory messages
  1325. tabulated in the "Targ" column of Table 5-2.
  1326.  
  1327. Whenever an I_T_L nexus or I_T_R nexus is established by an initiator that is
  1328. allowing disconnection, the initiator shall ensure that the active pointers
  1329. are equal to the saved pointers for that particular logical unit or target
  1330. routine.  An implied restore pointers operation shall occur as a result of a
  1331. reconnection.
  1332.  
  1333. 5.6. Messages
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341. SCSI-2 draft proposed American National Standard        5-22      Revision 10c22
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349. Logical Characteristics                                                 3/9/90
  1350.  
  1351.  
  1352. The SCSI messages are defined in this section.
  1353.  
  1354. 5.6.1. ABORT
  1355.  
  1356. The ABORT message is sent from the initiator to the target to clear the active
  1357. I/O process plus any queued I/O process for the I_T_x nexus.  The target shall
  1358. go to the BUS FREE phase following successful receipt of this message.  The
  1359. pending data, status, and queued I/O processes for any other I_T_x nexus shall
  1360. not be cleared.
  1361.  
  1362. If only an I_T nexus has been established, the target shall go to the BUS FREE
  1363. phase.  No status or message shall be sent for the current I/O process and no
  1364. other I/O process shall be affected.
  1365.  
  1366. IMPLEMENTORS NOTE:  The ABORT message in the case of only an I_T nexus is
  1367. useful to an initiator that cannot get an IDENTIFY message through to the
  1368. target due to parity errors and just needs to end the current connection.  Any
  1369. pending data, status, or queued I/O processes for the I_T nexus is not
  1370. affected.
  1371.  
  1372. It is not an error to issue this message to an I_T_x nexus that does not have
  1373. an active or queued I/O process.
  1374.  
  1375. Previously established conditions, including MODE SELECT parameters,
  1376. reservations, and extended contingent allegiance shall not be changed by the
  1377. ABORT message.
  1378.  
  1379. IMPLEMENTORS NOTES:  The BUS DEVICE RESET, CLEAR QUEUE, ABORT, and ABORT TAG
  1380. messages provide a means to clear one or more I/O processes prior to normal
  1381. termination.  The BUS DEVICE RESET message clears all I/O processes for all
  1382. initiators on all logical units and all target routines of the target.  The
  1383. CLEAR QUEUE message clears all I/O processes for all initiators on the
  1384. specified logical unit or target routine of the target.  The ABORT message
  1385. clears all I/O processes for the selecting initiator on the specified logical
  1386. unit or target routine of the target.  The ABORT TAG message clears the
  1387. current I/O process only.
  1388.  
  1389. 5.6.2. ABORT TAG
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. SCSI-2 draft proposed American National Standard        5-23      Revision 10c23
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410. Logical Characteristics                                                 3/9/90
  1411.  
  1412.  
  1413. The ABORT TAG message shall be implemented if tagged queuing is implemented.
  1414. The target shall go to the BUS FREE phase following successful receipt of this
  1415. message.  The target shall clear the current I/O process.  If the target has
  1416. already started execution of the I/O process, the execution shall be halted.
  1417. The medium contents may have been modified before the execution was halted.
  1418. In either case, any pending status or data for the I/O process shall be
  1419. cleared and no status or ending message shall be sent to the initiator.
  1420. Pending status, data, and commands for other active or queued I/O processes
  1421. shall not be affected.  Execution of other I/O processes queued for the I_T_x
  1422. nexus shall not be aborted.
  1423.  
  1424. Previously established conditions, including MODE SELECT parameters,
  1425. reservations, and extended contingent allegiance shall not be changed by the
  1426. ABORT TAG message.
  1427.  
  1428. 5.6.3. BUS DEVICE RESET
  1429.  
  1430. The BUS DEVICE RESET message is sent from an initiator to direct a target to
  1431. clear all I/O processes on that SCSI device.  This message forces a hard reset
  1432. condition to the selected SCSI device.  The target shall go to the BUS FREE
  1433. phase following successful receipt of this message.  The target shall create a
  1434. unit attention condition for all initiators (see 6.9).
  1435.  
  1436. 5.6.4. CLEAR QUEUE
  1437.  
  1438. The CLEAR QUEUE message shall be implemented if tagged queuing is implemented
  1439. and may be implemented if untagged queuing is implemented.  The target shall
  1440. go to the BUS FREE phase following successful receipt of this message.  The
  1441. target shall perform an action equivalent to receiving a series of ABORT
  1442. messages from each initiator.  All I/O processes, from all initiators, in the
  1443. queue for the specified logical unit or target routine shall be cleared from
  1444. the queue.  All active I/O processes shall be terminated.  The medium may have
  1445. been altered by partially executed commands.  All pending status and data for
  1446. that logical unit or target routine for all initiators shall be cleared.  No
  1447. status or message shall be sent for any of the I/O processes.  A unit
  1448. attention condition shall be generated for all other initiators with I/O
  1449. processes that either were active or were queued for that logical unit or
  1450. target routine.  When reporting the unit attention condition the additional
  1451. sense code shall be set to COMMANDS CLEARED BY ANOTHER INITIATOR.
  1452.  
  1453. Previously established conditions, including MODE SELECT parameters,
  1454. reservations, and extended contingent allegiance shall not be changed by the
  1455. CLEAR QUEUE message.
  1456.  
  1457. 5.6.5. COMMAND COMPLETE
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463. SCSI-2 draft proposed American National Standard        5-24      Revision 10c24
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471. Logical Characteristics                                                 3/9/90
  1472.  
  1473.  
  1474. The COMMAND COMPLETE message is sent from a target to an initiator to indicate
  1475. that the execution of an I/O process has completed and that valid status has
  1476. been sent to the initiator.  After successfully sending this message, the
  1477. target shall go to the BUS FREE phase by releasing the BSY signal.  The target
  1478. shall consider the message transmission to be successful when it detects the
  1479. negation of ACK for the COMMAND COMPLETE message with the ATN signal false.
  1480.  
  1481. IMPLEMENTORS NOTE:  The I/O process may have completed successfully or
  1482. unsuccessfully as indicated in the status.
  1483.  
  1484. 5.6.6. DISCONNECT
  1485.  
  1486. The DISCONNECT message is sent from a target to inform an initiator that the
  1487. present connection is going to be broken (the target plans to disconnect by
  1488. releasing the BSY signal), but that a later reconnect will be required in
  1489. order to complete the current I/O process.  This message shall not cause the
  1490. initiator to save the data pointer.  After successfully sending this message,
  1491. the target shall go to the BUS FREE phase by releasing the BSY signal.  The
  1492. target shall consider the message transmission to be successful when it
  1493. detects the negation of the ACK signal for the DISCONNECT message with the ATN
  1494. signal false.
  1495.  
  1496. Targets which break data transfers into multiple connections shall end each
  1497. successful connection (except possibly the last) with a SAVE DATA POINTER -
  1498. DISCONNECT message sequence.
  1499.  
  1500. This message may also be sent from an initiator to a target to instruct the
  1501. target to disconnect from the SCSI bus.  If this option is supported, and
  1502. after the DISCONNECT message is received, the target shall switch to MESSAGE
  1503. IN phase, send the DISCONNECT message to the initiator (possibly preceded by
  1504. SAVE DATA POINTER message), and then disconnect by releasing BSY.  After
  1505. releasing the BSY signal, the target shall not participate in another
  1506. ARBITRATION phase for at least a disconnection delay.  If this option is not
  1507. supported or the target cannot disconnect at the time when it receives the
  1508. DISCONNECT message from the initiator, the target shall respond by sending a
  1509. MESSAGE REJECT message to the initiator.
  1510.  
  1511. 5.6.7. IDENTIFY
  1512.  
  1513. The IDENTIFY message (Table 5-5) is sent by either the initiator or the target
  1514. to establish an I_T_L nexus or an I_T_R nexus.
  1515.  
  1516. IMPLEMENTORS NOTE:  Use of the IDENTIFY message to establish an I_T_R nexus
  1517. allows connection to one of up to eight target routines or functions in the
  1518. target itself.  These target routines are expected to be used for maintenance
  1519. and diagnostic purposes.
  1520.  
  1521.                      Table 5-5: IDENTIFY Message Format
  1522.  
  1523.  
  1524. SCSI-2 draft proposed American National Standard        5-25      Revision 10c25
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532. Logical Characteristics                                                 3/9/90
  1533.  
  1534.  
  1535. ==============================================================================
  1536.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1537. Byte |        |        |        |        |        |        |        |        |
  1538. ==============================================================================
  1539.  0   |Identify|DiscPriv| LUNTAR |Reserved|Reserved|          LUNTRN          |
  1540. ==============================================================================
  1541.  
  1542. The identify bit shall be set to one to specify that this is an IDENTIFY
  1543. message.
  1544.  
  1545. A disconnect privilege (DiscPriv) bit of one specifies that the initiator has
  1546. granted the target the privilege of disconnecting.  A DiscPriv bit of zero
  1547. specifies that the target shall not disconnect.  This bit is not defined and
  1548. shall be set to zero when an IDENTIFY message is sent by a target.
  1549.  
  1550. A logical unit target (LUNTAR) bit of zero specifies that the I/O process is
  1551. directed to or from a logical unit.  A LUNTAR bit of one specifies that the
  1552. I/O process is directed to or from a target routine.
  1553.  
  1554. The logical unit number target routine number (LUNTRN) field specifies a
  1555. logical unit number if the LUNTAR bit is zero.  The LUNTRN field specifies a
  1556. target routine number if the LUNTAR bit is one.  The response to an invalid
  1557. value in the LUNTRN field is described in 6.5.3.  Only the INQUIRY and REQUEST
  1558. SENSE commands are valid for target routines.  If a target receives any other
  1559. command for a target routine, it shall return CHECK CONDITION status and shall
  1560. set the sense key to ILLEGAL REQUEST.
  1561.  
  1562. An IDENTIFY message is invalid if a reserved bit is set to one or if the
  1563. LUNTAR bit is set to one and the target does not implement target routines.  A
  1564. device may respond to an invalid IDENTIFY message by immediately sending a
  1565. MESSAGE REJECT message or by returning CHECK CONDITION status.  If a CHECK
  1566. CONDITION status is returned, the sense key shall be set to ILLEGAL REQUEST
  1567. and the additional sense code shall be set to INVALID BITS IN IDENTIFY MESSAGE
  1568. FIELD.
  1569.  
  1570. Only one logical unit number or target routine number shall be identified per
  1571. I/O process.  The initiator may send one or more IDENTIFY messages during a
  1572. connection.  A second IDENTIFY message with a different value in either the
  1573. LUNTAR bit or LUNTRN field shall not be issued before a BUS FREE phase has
  1574. occurred;  if a target receives a second IDENTIFY message with a different
  1575. value in either of these fields, it shall go to BUS FREE phase (see unexpected
  1576. disconnect, 5.1.1).  Thus an initiator may change the DiscPriv bit, but may
  1577. not attempt to switch to another I/O process.  (See the DTDC field of the
  1578. disconnect-reconnect page (7.3.3.2) for additional controls over
  1579. disconnection.)
  1580.  
  1581. An implied RESTORE POINTERS message shall be performed by the initiator prior
  1582. to the assertion of the ACK signal on the next phase for an inbound IDENTIFY
  1583. message sent during reconnection.
  1584.  
  1585. SCSI-2 draft proposed American National Standard        5-26      Revision 10c26
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593. Logical Characteristics                                                 3/9/90
  1594.  
  1595.  
  1596.  
  1597. 5.6.8. IGNORE WIDE RESIDUE
  1598.  
  1599.                 Table 5-6: IGNORE WIDE RESIDUE Message Format
  1600.  
  1601. ==============================================================================
  1602.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1603. Byte |        |        |        |        |        |        |        |        |
  1604. ==============================================================================
  1605.  0   |                           Message Code (23h)                          |
  1606. -----|-----------------------------------------------------------------------|
  1607.  1   |                           Ignore                                      |
  1608. ==============================================================================
  1609.  
  1610.  
  1611. The IGNORE WIDE RESIDUE message (Table 5-6) shall be sent from a target to
  1612. indicate that the number of valid bytes sent during the last REQ/ACK handshake
  1613. and REQB/ACKB handshake of a DATA IN phase is less than the negotiated
  1614. transfer width.  The ignore field indicates the number of invalid data bytes
  1615. transferred.  This message shall be sent immediately following the DATA IN
  1616. phase and prior to any other messages.  The ignore field is defined as
  1617. follows:
  1618.  
  1619.                                  Invalid Data Bits
  1620.               Ignore    32-bit Transfers  16-bit Transfers
  1621.             ----------  ----------------  ----------------
  1622.                00h        Reserved          Reserved
  1623.                01h        DB(31-24)         DB(15-8)
  1624.                02h        DB(31-16)         Reserved
  1625.                03h        DB(31-8)          Reserved
  1626.             04h to FFh    Reserved          Reserved
  1627.  
  1628. Even though a byte is invalid its corresponding parity bit shall be valid for
  1629. the value transferred.  For 16-bit transfers, DB(31-16) are always invalid and
  1630. the corresponding parity bits are also invalid.
  1631.  
  1632. 5.6.9. INITIATE RECOVERY
  1633.  
  1634. A target that supports extended contingent allegiance shall inform the
  1635. initiator it is entering this condition by sending an INITIATE RECOVERY
  1636. message immediately following a CHECK CONDITION or COMMAND TERMINATED status.
  1637. The extended contingent allegiance condition remains in effect until
  1638. terminated as described in 6.7.
  1639.  
  1640. If an asynchronous event occurs, the target may enter an extended contingent
  1641. allegiance condition by becoming a temporary initiator and sending the
  1642. INITIATE RECOVERY message following the IDENTIFY message and any queue tag
  1643. message and before the COMMAND phase of the SEND command that is used to
  1644. perform the asynchronous event notification (see 6.5.5).  The successful
  1645.  
  1646. SCSI-2 draft proposed American National Standard        5-27      Revision 10c27
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. Logical Characteristics                                                 3/9/90
  1655.  
  1656. transmission of this message establishes the extended contingent allegiance
  1657. condition which remains in effect until terminated as described in 6.7.
  1658.  
  1659. IMPLEMENTORS NOTE:  If the target notifies multiple initiators of the
  1660. asynchronous event, it should include the INITIATE RECOVERY message in only
  1661. one of the notifications.
  1662.  
  1663. A MESSAGE REJECT response to an INITIATE RECOVERY message indicates that an
  1664. extended contingent allegiance condition shall not be established.  The
  1665. enabled or disabled state of an extended contingent allegiance (see the DQue
  1666. bit of the control mode page, 7.3.3.1) is not changed by the rejection of an
  1667. INITIATE RECOVERY message.
  1668.  
  1669. 5.6.10. INITIATOR DETECTED ERROR
  1670.  
  1671. The INITIATOR DETECTED ERROR message is sent from an initiator to inform a
  1672. target that an error has occurred that does not preclude the target from
  1673. retrying the operation.  The source of the error may either be related to
  1674. previous activities on the SCSI bus or may be internal to the initiator and
  1675. unrelated to any previous SCSI bus activity.  Although present pointer
  1676. integrity is not assured, a RESTORE POINTERS message or a disconnect followed
  1677. by a reconnect, shall cause the pointers to be restored to their defined prior
  1678. state.
  1679.  
  1680. 5.6.11. LINKED COMMAND COMPLETE
  1681.  
  1682. The LINKED COMMAND COMPLETE message is sent from a target to an initiator to
  1683. indicate that the execution of a linked command has completed and that status
  1684. has been sent.  The initiator shall then set the pointers to the initial state
  1685. for the next linked command.
  1686.  
  1687. 5.6.12. LINKED COMMAND COMPLETE (WITH FLAG)
  1688.  
  1689. The LINKED COMMAND COMPLETE (WITH FLAG) message is sent from a target to an
  1690. initiator to indicate that the execution of a linked command (with the flag
  1691. bit set to one) has completed and that status has been sent.  The initiator
  1692. shall then set the pointers to the initial state of the next linked command.
  1693. Typically this message would be used to cause an interrupt in the initiator
  1694. between two linked commands.
  1695.  
  1696. 5.6.13. MESSAGE PARITY ERROR
  1697.  
  1698. The MESSAGE PARITY ERROR message is sent from the initiator to the target to
  1699. indicate that the last message byte it received had a parity error.
  1700.  
  1701. In order to indicate its intentions of sending this message, the initiator
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707. SCSI-2 draft proposed American National Standard        5-28      Revision 10c28
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715. Logical Characteristics                                                 3/9/90
  1716.  
  1717. shall assert the ATN signal prior to its release of the ACK signal for the
  1718. REQ/ACK handshake of the message byte that has the parity error.  This
  1719. provides an interlock so that the target can determine which message byte has
  1720. the parity error.  If the target receives this message under any other
  1721. circumstance, it shall signal a catastrophic error condition by releasing the
  1722. BSY signal without any further information transfer attempt (see 5.1.1).
  1723.  
  1724. If the target returns to the MESSAGE IN phase before switching to some other
  1725. phase, after receiving the MESSAGE PARITY ERROR message, the target shall re-
  1726. send the entire message that had the parity error.
  1727.  
  1728. 5.6.14. MESSAGE REJECT
  1729.  
  1730. The MESSAGE REJECT message is sent from either the initiator or target to
  1731. indicate that the last message or message byte it received was inappropriate
  1732. or has not been implemented.
  1733.  
  1734. In order to indicate its intentions of sending this message, the initiator
  1735. shall assert the ATN signal prior to its release of the ACK signal for the
  1736. REQ/ACK handshake of the message byte that is to be rejected.  If the target
  1737. receives this message under any other circumstance, it shall reject this
  1738. message.
  1739.  
  1740. When a target sends this message, it shall change to MESSAGE IN phase and send
  1741. this message prior to requesting additional message bytes from the initiator.
  1742. This provides an interlock so that the initiator can determine which message
  1743. byte is rejected.
  1744.  
  1745. After a target sends a MESSAGE REJECT message and if the ATN signal is still
  1746. asserted, then it shall return to the MESSAGE OUT phase.  The subsequent
  1747. MESSAGE OUT phase shall begin with the first byte of a message.
  1748.  
  1749. 5.6.15. MODIFY DATA POINTER Message
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768. SCSI-2 draft proposed American National Standard        5-29      Revision 10c29
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776. Logical Characteristics                                                 3/9/90
  1777.  
  1778.  
  1779.                        Table 5-7: MODIFY DATA POINTER
  1780.  
  1781. ==============================================================================
  1782. Byte |  Value  |    Description                                              |
  1783. ==============================================================================
  1784.  0   |   01h   |    Extended message                                         |
  1785. -----|---------|-------------------------------------------------------------|
  1786.  1   |   05h   |    Extended message length                                  |
  1787. -----|---------|-------------------------------------------------------------|
  1788.  2   |   00h   |    MODIFY DATA POINTER code                                 |
  1789. -----|---------|-------------------------------------------------------------|
  1790.  3   |    x    |    Argument (Most Significant Byte)                         |
  1791. -----|---------|-------------------------------------------------------------|
  1792.  4   |    x    |    Argument                                                 |
  1793. -----|---------|-------------------------------------------------------------|
  1794.  5   |    x    |    Argument                                                 |
  1795. -----|---------|-------------------------------------------------------------|
  1796.  6   |    x    |    Argument (Least Significant Byte)                        |
  1797. ==============================================================================
  1798.  
  1799.  
  1800. The MODIFY DATA POINTER message (Table 5-7) is sent from the target to the
  1801. initiator and requests that the signed argument be added (two's complement) to
  1802. the value of the current data pointer.
  1803.  
  1804. 5.6.16. NO OPERATION
  1805.  
  1806. The NO OPERATION message is sent from an initiator in response to a target's
  1807. request for a message when the initiator does not currently have any other
  1808. valid message to send.
  1809.  
  1810. For example, if the target does not respond to the attention condition until a
  1811. later phase and at that time the original message is no longer valid the
  1812. initiator may send the NO OPERATION message when the target enters the MESSAGE
  1813. OUT phase.
  1814.  
  1815. 5.6.17. Queue Tag Messages
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829. SCSI-2 draft proposed American National Standard        5-30      Revision 10c30
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837. Logical Characteristics                                                 3/9/90
  1838.  
  1839.  
  1840.                      Table 5-8: Queue Tag Message Format
  1841.  
  1842. ==============================================================================
  1843.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1844. Byte |        |        |        |        |        |        |        |        |
  1845. ==============================================================================
  1846.  0   |                           Message Code (20h or 21h or 22h)            |
  1847. -----|-----------------------------------------------------------------------|
  1848.  1   |                           Queue Tag                                   |
  1849. ==============================================================================
  1850.  
  1851.  
  1852. Table 5-8 defines the format for the queue tag messages.  If the target
  1853. implements tagged queuing, all of the queue tag messages are mandatory:  HEAD
  1854. OF QUEUE TAG, ORDERED QUEUE TAG, and SIMPLE QUEUE TAG.  Tagged queuing is only
  1855. defined for logical units, not target routines.
  1856.  
  1857. If a target does not implement tagged queuing and a queue tag message is
  1858. received or if a queue tag message is received for a target routine, it shall
  1859. respond with a MESSAGE REJECT message and accept the I/O process as if it were
  1860. untagged.
  1861.  
  1862. The queue tag messages are used to specify an identifier, called a queue tag,
  1863. for an I/O process which establishes the I_T_L_Q nexus.  The queue tag field
  1864. is an 8-bit unsigned integer assigned by the initiator during an initial
  1865. connection.  The queue tag for every I/O process for each I_T_L nexus should
  1866. be unique.  If the target receives a queue tag that is currently in use for
  1867. the I_T_L nexus, then it shall respond as defined in 6.5.2.  A queue tag
  1868. becomes available for re-assignment when the I/O process ends.  The numeric
  1869. value of a queue tag has no effect on the order of execution.
  1870.  
  1871. IMPLEMENTORS NOTE:  For each logical unit on each target, each initiator has
  1872. up to 256 queue tags to assign to I/O processes.  Thus a target with eight
  1873. logical units could have up to 14336 I/O processes concurrently in existence
  1874. if there were seven initiators on the bus.
  1875.  
  1876. Whenever an initiator connects to a target, the appropriate queue tag message
  1877. shall be sent immediately following the IDENTIFY message and within the same
  1878. MESSAGE OUT phase to establish the I_T_L_Q nexus for the I/O process.  Only
  1879. one I_T_L_Q nexus may be established during a connection.  If a queue tag
  1880. message is not sent, then only an I_T_x nexus is established for the I/O
  1881. process (untagged command).
  1882.  
  1883. Whenever a target reconnects to an initiator to continue a tagged I/O process,
  1884. the SIMPLE QUEUE TAG message shall be sent immediately following the IDENTIFY
  1885. message and within the same MESSAGE IN phase to revive the I_T_L_Q nexus for
  1886. the I/O process.  Only one I_T_L_Q nexus may be revived during a reconnection.
  1887. If the SIMPLE QUEUE TAG message is not sent, then only an I_T_x nexus is
  1888. revived for the I/O process (untagged command).
  1889.  
  1890. SCSI-2 draft proposed American National Standard        5-31      Revision 10c31
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898. Logical Characteristics                                                 3/9/90
  1899.  
  1900.  
  1901. If a target attempts to reconnect using an invalid queue tag, then the
  1902. initiator should respond with an ABORT TAG message.
  1903.  
  1904. 5.6.17.1. HEAD OF QUEUE TAG
  1905. The HEAD OF QUEUE TAG message specifies that the I/O process be placed first
  1906. in that logical unit's command queue.  An I/O process already being executed
  1907. by the target shall not be pre-empted.  A subsequent I/O process received with
  1908. a HEAD OF QUEUE TAG message shall be placed at the head of the command queue
  1909. for execution in last-in, first-out order.
  1910.  
  1911. 5.6.17.2. ORDERED QUEUE TAG
  1912. The ORDERED QUEUE TAG message specifies that the I/O process be placed in that
  1913. logical unit's command queue for execution in the order received.  All queued
  1914. I/O processes for the logical unit received prior to this I/O process shall be
  1915. executed before this I/O process is executed.   All queued I/O processes
  1916. received after this I/O process shall be executed after this I/O process,
  1917. except for I/O processes received with a HEAD OF QUEUE TAG message.
  1918.  
  1919. 5.6.17.3. SIMPLE QUEUE TAG
  1920. The SIMPLE QUEUE TAG message specifies that the I/O process be placed in that
  1921. logical unit's command queue.  The order of execution is described in 6.8.
  1922.  
  1923. 5.6.18. RELEASE RECOVERY
  1924.  
  1925. The RELEASE RECOVERY message is sent from an initiator to a target to
  1926. terminate an extended contingent allegiance condition previously established
  1927. by an INITIATE RECOVERY message.  This message shall be sent immediately
  1928. following the IDENTIFY message in the same MESSAGE OUT phase.  The extended
  1929. contingent allegiance condition ends upon successful receipt of the RELEASE
  1930. RECOVERY message.  The target shall go to the BUS FREE phase following
  1931. successful receipt of this message.
  1932.  
  1933. If a RELEASE RECOVERY message is received by a target that implements extended
  1934. contingent allegiance when no extended contingent allegiance condition is
  1935. active, the message shall not be rejected and the target shall go to the BUS
  1936. FREE phase.
  1937.  
  1938. 5.6.19. RESTORE POINTERS
  1939.  
  1940. The RESTORE POINTERS message is sent from a target to direct the initiator to
  1941. copy the most recently saved command, data, and status pointers for the I/O
  1942. process to the corresponding active pointers.  The command and status pointers
  1943. shall be restored to the beginning of the present command and status areas.
  1944. The data pointer shall be restored to the value at the beginning of the data
  1945. area in the absence of a SAVE DATA POINTER message or to the value at the
  1946. point at which the last SAVE DATA POINTER message occurred for that nexus.
  1947.  
  1948. 5.6.20. SAVE DATA POINTER
  1949.  
  1950.  
  1951. SCSI-2 draft proposed American National Standard        5-32      Revision 10c32
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959. Logical Characteristics                                                 3/9/90
  1960.  
  1961.  
  1962. The SAVE DATA POINTER message is sent from a target to direct the initiator to
  1963. copy the active data pointer to the saved data pointer for the current I/O
  1964. process.  (See 5.4 for a definition of pointers.)
  1965.  
  1966. 5.6.21. SYNCHRONOUS DATA TRANSFER REQUEST Message
  1967.  
  1968.                 Table 5-9: SYNCHRONOUS DATA TRANSFER REQUEST
  1969.  
  1970. ==============================================================================
  1971. Byte |  Value  |    Description                                              |
  1972. ==============================================================================
  1973.  0   |   01h   |    Extended message                                         |
  1974. -----|---------|-------------------------------------------------------------|
  1975.  1   |   03h   |    Extended message length                                  |
  1976. -----|---------|-------------------------------------------------------------|
  1977.  2   |   01h   |    SYNCHRONOUS DATA TRANSFER REQUEST code                   |
  1978. -----|---------|-------------------------------------------------------------|
  1979.  3   |    m    |    Transfer period (m times 4 nanoseconds)                  |
  1980. -----|---------|-------------------------------------------------------------|
  1981.  4   |    x    |    REQ/ACK offset                                           |
  1982. ==============================================================================
  1983.  
  1984. A SYNCHRONOUS DATA TRANSFER REQUEST (SDTR) message (Table 5-9) exchange shall
  1985. be initiated by an SCSI device whenever a previously-arranged data transfer
  1986. agreement may have become invalid.  The agreement becomes invalid after any
  1987. condition which may leave the data transfer agreement in an indeterminate
  1988. state such as:
  1989. (1) after a hard reset condition
  1990. (2) after a BUS DEVICE RESET message and
  1991. (3) after a power cycle.
  1992.  
  1993. In addition, an SCSI device may initiate an SDTR message exchange whenever it
  1994. is appropriate to negotiate a new data transfer agreement (either synchronous
  1995. or asynchronous).  SCSI devices that are capable of synchronous data transfers
  1996. shall not respond to an SDTR message with a MESSAGE REJECT message.
  1997.  
  1998. IMPLEMENTORS NOTES:
  1999. (1)  Re-negotiation at every selection is not recommended, since a significant
  2000. performance impact is likely.
  2001. (2)  Due to historical problems with early host adapters that could not accept
  2002. an SDTR message, some targets may not initiate synchronous negotiation after a
  2003. power cycle as required by this standard.  Host adapters that support
  2004. synchronous mode may avoid the ensuing failure modes when the target is
  2005. independently power cycled by initiating a synchronous negotiation on each
  2006. REQUEST SENSE and INQUIRY command.  This approach increases the SCSI bus
  2007. overhead and is not recommended for new implementations.  The correct method
  2008. is to respond to an SDTR message with a MESSAGE REJECT message if the either
  2009. the initiator or target devices does not support synchronous transfers or does
  2010. not want to negotiate for synchronous transfers at the time.  Using the
  2011.  
  2012. SCSI-2 draft proposed American National Standard        5-33      Revision 10c33
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020. Logical Characteristics                                                 3/9/90
  2021.  
  2022. correct method assures compatibility with wide data transfers and future
  2023. enhancements.
  2024.  
  2025. The SDTR message exchange establishes the permissible transfer periods and the
  2026. REQ/ACK offsets for all logical units and target routines on the two devices.
  2027. This agreement only applies to data phases.
  2028.  
  2029. The transfer period is the minimum time allowed between leading edges of
  2030. successive REQ pulses and of successive ACK pulses to meet the device
  2031. requirements for successful reception of data.
  2032.  
  2033. The REQ/ACK offset is the maximum number of REQ pulses allowed to be
  2034. outstanding before the leading edge of its corresponding ACK pulse is received
  2035. at the target.  This value is chosen to prevent overflow conditions in the
  2036. device's reception buffer and offset counter.  A REQ/ACK offset value of zero
  2037. shall indicate asynchronous data transfer mode; a value of FFh shall indicate
  2038. unlimited REQ/ACK offset.
  2039.  
  2040. The originating device (the device that sends the first of the pair of SDTR
  2041. messages) sets its values according to the rules above to permit it to receive
  2042. data successfully.  If the responding device can also receive data
  2043. successfully with these values (or smaller transfer periods or larger REQ/ACK
  2044. offsets or both), it returns the same values in its SDTR message.  If it
  2045. requires a larger transfer period, a smaller REQ/ACK offset, or both in order
  2046. to receive data successfully, it substitutes values in its SDTR message as
  2047. required, returning unchanged any value not required to be changed.  Each
  2048. device when transmitting data shall respect the limits set by the other's SDTR
  2049. message, but it is permitted to transfer data with larger transfer periods,
  2050. smaller REQ/ACK offsets, or both than specified in the other's SDTR message.
  2051. The successful completion of an exchange of SDTR messages implies an agreement
  2052. as follows:
  2053.  
  2054. Responding Device SDTR response    Implied Agreement
  2055. -------------------------------    -------------------------------------------
  2056. (1) Non-zero REQ/ACK offset        Each device transmits data with a transfer
  2057. period equal to or greater than and a REQ/ACK offset equal to or less than the
  2058. values received in the other device's SDTR message.
  2059.  
  2060. (2) REQ/ACK offset equal to zero   Asynchronous transfer
  2061.  
  2062. (3) MESSAGE REJECT message         Asynchronous transfer
  2063.  
  2064. If the initiator recognizes that negotiation is required, it asserts the ATN
  2065. signal and sends a SDTR message to begin the negotiating process.  After
  2066. successfully completing the MESSAGE OUT phase, the target shall respond with
  2067. the proper SDTR message.  If an abnormal condition prevents the target from
  2068. returning an appropriate response, both devices shall go to asynchronous data
  2069. transfer mode for data transfers between the two devices.
  2070.  
  2071. Following target response (1) above, the implied agreement for synchronous
  2072.  
  2073. SCSI-2 draft proposed American National Standard        5-34      Revision 10c34
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081. Logical Characteristics                                                 3/9/90
  2082.  
  2083. operation shall be considered to be negated by both the initiator and the
  2084. target if the initiator asserts the ATN signal and the first message out is
  2085. either MESSAGE PARITY ERROR or MESSAGE REJECT. In this case, both devices
  2086. shall go to asynchronous data transfer mode for data transfers between the two
  2087. devices.  For the MESSAGE PARITY ERROR case, the implied agreement shall be
  2088. reinstated if a re-transmittal of the second of the pair of messages is
  2089. successfully accomplished.  After a vendor-specific number of retry attempts
  2090. (greater than zero), if the target receives a MESSAGE PARITY ERROR message, it
  2091. shall terminate the retry activity.  This may be done either by changing to
  2092. any other information transfer phase and transferring at least one byte of
  2093. information or by going to the BUS FREE phase (see 5.1.1).  The initiator
  2094. shall accept such action as aborting the negotiation, and both devices shall
  2095. go to asynchronous data transfer mode for data transfers between the two
  2096. devices.
  2097.  
  2098. If the target recognizes that negotiation is required, it sends an SDTR
  2099. message to the initiator.  Prior to releasing the ACK signal on the last byte
  2100. of the SDTR message from the target, the initiator shall assert the ATN signal
  2101. and respond with its SDTR message or with a MESSAGE REJECT message.  If an
  2102. abnormal condition prevents the initiator from returning an appropriate
  2103. response, both devices shall go to asynchronous data transfer mode for data
  2104. transfers between the two devices.
  2105.  
  2106. Following an initiator's responding SDTR message, an implied agreement for
  2107. synchronous operation shall not be considered to exist until the target leaves
  2108. the MESSAGE OUT phase, indicating that the target has accepted the
  2109. negotiation.  After a vendor-specific number of retry attempts (greater than
  2110. zero), if the target has not received the initiator's responding SDTR message,
  2111. it shall go to the BUS FREE phase without any further information transfer
  2112. attempt (see 5.1.1).  This indicates that a catastrophic error condition has
  2113. occurred.  Both devices shall go to asynchronous data transfer mode for data
  2114. transfers between the two devices.
  2115.  
  2116. If, following an initiator's responding SDTR message, the target shifts to
  2117. MESSAGE IN phase and the first message in is MESSAGE REJECT, the implied
  2118. agreement shall be considered to be negated and both devices shall go to
  2119. asynchronous data transfer mode for data transfers between the two devices.
  2120.  
  2121. The implied synchronous agreement shall remain in effect until a BUS DEVICE
  2122. RESET message is received, until a hard reset condition occurs, or until one
  2123. of the two SCSI devices elects to modify the agreement.  The default data
  2124. transfer mode is asynchronous data transfer mode.  The default data transfer
  2125. mode is entered at power on, after a BUS DEVICE RESET message, or after a hard
  2126. reset condition.
  2127.  
  2128. 5.6.22. TERMINATE I/O PROCESS
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134. SCSI-2 draft proposed American National Standard        5-35      Revision 10c35
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142. Logical Characteristics                                                 3/9/90
  2143.  
  2144.  
  2145. The TERMINATE I/O PROCESS message is sent from the initiator to the target to
  2146. advise the target to terminate the current I/O process without corrupting the
  2147. medium.  Upon successful receipt of this message the target shall terminate
  2148. the current I/O process as soon as possible and return COMMAND TERMINATED
  2149. status.  The sense key shall be set to NO SENSE and the additional sense code
  2150. and qualifier shall be set to I/O PROCESS TERMINATED.  The TERMINATE I/O
  2151. PROCESS message shall not affect pending status, data, and commands for other
  2152. queued or executing I/O processes.  However, continued execution and status of
  2153. other I/O processes queued for the I_T_x nexus may be affected by the queue
  2154. error recovery option specified in the control mode page (see 7.3.3.1).
  2155.  
  2156. If the I/O process that is being terminated has a data transfer associated
  2157. with it (i.e., DATA IN or DATA OUT phase), the valid bit in the sense data
  2158. shall be set to one and the information field shall be set as follows:
  2159. (1) If the command descriptor block specifies an allocation length or
  2160. parameter list length in bytes, the information field shall be set to the
  2161. difference (residue) between the transfer length and the number of bytes
  2162. successfully transferred.
  2163. (2) If the command descriptor block specifies a transfer length field, the
  2164. information field shall be set as defined in the REQUEST SENSE command (see
  2165. 7.2.14).
  2166.  
  2167. If the I/O process being terminated has no data transfer associated with it
  2168. the target shall set the valid bit in the sense data to zero and terminate the
  2169. I/O process with COMMAND TERMINATED status.  The sense key shall be set to NO
  2170. SENSE and the additional sense code and qualifier shall be set to I/O PROCESS
  2171. TERMINATED.
  2172.  
  2173. When any error condition is detected for an I/O process the target shall
  2174. ignore the TERMINATE I/O PROCESS message and terminate the I/O process with
  2175. the appropriate error status and sense data for the error condition.
  2176.  
  2177. If the target completes all processing for a command (i.e., all data has been
  2178. read, written, or processed) and a TERMINATE I/O PROCESS message is received
  2179. before the I/O process is terminated, the target shall ignore the TERMINATE
  2180. I/O PROCESS message and terminate the I/O process in the normal manner.
  2181.  
  2182. If the target receives a TERMINATE I/O PROCESS message before the command
  2183. descriptor block is transferred (i.e., before the COMMAND phase) or the
  2184. message is issued to an I_T_x nexus that does not have an active or queued I/O
  2185. process, the target shall set the valid bit in the sense data to zero and
  2186. terminate the I/O process with COMMAND TERMINATED status.  The sense key shall
  2187. be set to NO SENSE and the additional sense code and qualifier shall be set to
  2188. I/O PROCESS TERMINATED.
  2189.  
  2190. If the current I/O process is in the command queue (I_T_x nexus for untagged
  2191.  
  2192.  
  2193.  
  2194.  
  2195. SCSI-2 draft proposed American National Standard        5-36      Revision 10c36
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203. Logical Characteristics                                                 3/9/90
  2204.  
  2205. queuing or I_T_L_Q nexus for tagged queuing) and has not started execution,
  2206. the target shall either terminate the I/O process immediately or disconnect
  2207. and wait until the command is at the head of the queue (started executing)
  2208. then terminate the I/O process.  In either case, the target shall terminate
  2209. the I/O process with COMMAND TERMINATED status.  The sense key shall be set to
  2210. NO SENSE and the additional sense code and qualifier shall be set to I/O
  2211. PROCESS TERMINATED.  The valid bit shall be set to zero.
  2212.  
  2213. If the target does not support this message or is unable to stop the current
  2214. I/O process for the I_T_x nexus, it shall respond by sending a MESSAGE REJECT
  2215. message to the initiator and continuing the I/O process in a normal manner.
  2216.  
  2217. IMPLEMENTORS NOTE:  The TERMINATE I/O PROCESS message provides a means for the
  2218. initiator to request the target to reduce the transfer length of the current
  2219. command to the amount that has already been transferred.  The initiator can
  2220. use the sense data to determine the actual number of bytes or blocks that have
  2221. been transferred.  This message is normally used by the initiator to stop a
  2222. lengthy read, write, or verify operation when a higher- priority command is
  2223. available to be executed.  It is up to the initiator to complete the
  2224. terminated command at a later time, if required.
  2225.  
  2226. 5.6.23. WIDE DATA TRANSFER REQUEST Message
  2227.  
  2228.                     Table 5-10: WIDE DATA TRANSFER MESSAGE
  2229.  
  2230. ==============================================================================
  2231. Byte |  Value  |    Description                                              |
  2232. ==============================================================================
  2233.  0   |   01h   |    Extended message                                         |
  2234. -----|---------|-------------------------------------------------------------|
  2235.  1   |   02h   |    Extended message length                                  |
  2236. -----|---------|-------------------------------------------------------------|
  2237.  2   |   03h   |    WIDE DATA TRANSFER REQUEST code                          |
  2238. -----|---------|-------------------------------------------------------------|
  2239.  3   |    m    |    Transfer Width (2**m bytes)                              |
  2240. ==============================================================================
  2241.  
  2242.  
  2243. A WIDE DATA TRANSFER REQUEST (WDTR) message (Table 5-10) exchange shall be
  2244. initiated by an SCSI device whenever a previously-arranged transfer width
  2245. agreement may have become invalid.  The agreement becomes invalid after any
  2246. condition which may leave the data transfer agreement in an indeterminate
  2247. state such as:
  2248. (1) after a hard reset condition
  2249. (2) after a BUS DEVICE RESET message and
  2250. (3) after a power cycle.
  2251.  
  2252. In addition, an SCSI device may initiate an WDTR message exchange whenever it
  2253.  
  2254.  
  2255.  
  2256. SCSI-2 draft proposed American National Standard        5-37      Revision 10c37
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264. Logical Characteristics                                                 3/9/90
  2265.  
  2266. is appropriate to negotiate a new transfer width agreement.  SCSI devices that
  2267. are capable of wide data transfers (greater than eight bits) shall not respond
  2268. to an WDTR message with a MESSAGE REJECT message.
  2269.  
  2270. IMPLEMENTORS NOTE:  Re-negotiation at every selection is not recommended,
  2271. since a significant performance impact is likely.
  2272.  
  2273. The WDTR message exchange establishes an agreement between two SCSI devices on
  2274. the width of the data path to be used for DATA phase transfers between the two
  2275. devices.  This agreement applies to DATA IN and DATA OUT phases only.  All
  2276. other information transfer phases shall use an eight-bit data path.
  2277.  
  2278. If an SCSI device implements both wide data transfer option and synchronous
  2279. data transfer option, then it shall negotiate the wide data transfer agreement
  2280. prior to negotiating the synchronous data transfer agreement.  If a
  2281. synchronous data transfer agreement is in effect, then an SCSI device that
  2282. accepts a WDTR message shall reset the synchronous agreement to asynchronous
  2283. mode.
  2284.  
  2285. The transfer width that is established applies to all logical units on both
  2286. SCSI devices.  Valid transfer widths are 8 bits (m = 00h), 16 bits (m = 01h),
  2287. and 32 bits (m = 02h).  Values of m greater than 02h are reserved.
  2288.  
  2289. The originating SCSI device (the SCSI device that sends the first of the pair
  2290. of WDTR messages) sets its transfer width value to the maximum data path width
  2291. it elects to accommodate.  If the responding SCSI device can also accommodate
  2292. this transfer width, it returns the same value in its WDTR message.  If it
  2293. requires a smaller transfer width, it substitutes the smaller value in its
  2294. WDTR message.  The successful completion of an exchange of WDTR messages
  2295. implies an agreement as follows:
  2296.  
  2297. Responding Device WDTR Response    Implied Agreement
  2298. --------------------------------   -------------------------------------------
  2299. (1) Non-zero transfer width        Each device transmits and receives data
  2300. with a transfer width equal to the responding SCSI device's transfer width.
  2301.  
  2302. (2) Transfer width equal to zero   Eight-bit Data Transfer
  2303.  
  2304. (3) MESSAGE REJECT message         Eight-bit Data Transfer
  2305.  
  2306. If the initiator recognizes that negotiation is required, it asserts the ATN
  2307. signal and sends a WDTR message to begin the negotiating process.  After
  2308. successfully completing the MESSAGE OUT phase, the target shall respond with
  2309. the proper WDTR message.  If an abnormal condition prevents the target from
  2310. returning an appropriate response, both devices shall go to eight-bit data
  2311. transfer mode for data transfers between the two devices.
  2312.  
  2313. Following target response (1) above, the implied agreement for wide data
  2314.  
  2315.  
  2316.  
  2317. SCSI-2 draft proposed American National Standard        5-38      Revision 10c38
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325. Logical Characteristics                                                 3/9/90
  2326.  
  2327. transfers shall be considered to be negated by both the initiator and the
  2328. target if the initiator asserts ATN and the first message out is either
  2329. MESSAGE PARITY ERROR or MESSAGE REJECT.  In this case, both devices shall go
  2330. to eight-bit data transfer mode for data transfers between the two devices.
  2331. For the MESSAGE PARITY ERROR case, the implied agreement shall be reinstated
  2332. if a re-transmittal of the second of the pair of messages is successfully
  2333. accomplished.  After a vendor-specific number of retry attempts (greater than
  2334. zero), if the target receives a MESSAGE PARITY ERROR message, it shall
  2335. terminate the retry activity.  This may be done either by changing to any
  2336. other information transfer phase and transferring at least one byte of
  2337. information or by going to the BUS FREE phase (see 5.1.1).  The initiator
  2338. shall accept such action as aborting the negotiation, and both devices shall
  2339. go to eight-bit data transfer mode for data transfers between the two devices.
  2340.  
  2341.  
  2342. If the target recognizes that negotiation is required, it sends a WDTR message
  2343. to the initiator.  Prior to releasing the ACK signal on the last byte of the
  2344. WDTR message from the target, the initiator shall assert the ATN signal and
  2345. respond with its WDTR message or with a MESSAGE REJECT message.  If an
  2346. abnormal condition prevents the initiator from returning an appropriate
  2347. response, both devices shall go to eight-bit data transfer mode for data
  2348. transfers between the two devices.
  2349.  
  2350. Following an initiator's responding WDTR message, an implied agreement for
  2351. wide data transfer operation shall not be considered to exist until the target
  2352. leaves the MESSAGE OUT phase, indicating that the target has accepted the
  2353. negotiation.  After a vendor-specific number of retry attempts (greater than
  2354. zero), if the target has not received the initiator's responding WDTR message,
  2355. it shall go to the BUS FREE phase without any further information transfer
  2356. attempt (see 5.1.1).  This indicates that a catastrophic error condition has
  2357. occurred.  Both devices shall go to eight-bit data transfer mode for data
  2358. transfers between the two devices.
  2359.  
  2360. If, following an initiator's responding WDTR message, the target shifts to
  2361. MESSAGE IN phase and the first message in is MESSAGE REJECT, the implied
  2362. agreement shall be considered to be negated and both devices shall go to
  2363. eight-bit data transfer mode for data transfers between the two devices.
  2364.  
  2365. The implied transfer width agreement shall remain in effect until a BUS DEVICE
  2366. RESET message is received, until a hard reset condition occurs, or until one
  2367. of the two SCSI devices elects to modify the agreement.  The default data
  2368. transfer width is eight-bit data transfer mode.  The default data transfer
  2369. mode is entered at power on, after a BUS DEVICE RESET message, or after a hard
  2370. reset condition.
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378. SCSI-2 draft proposed American National Standard        5-39      Revision 10c39
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386. Logical Characteristics                                                 3/9/90
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.                      (This page is intentionally blank.)
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439. SCSI-2 draft proposed American National Standard        5-40      Revision 10c40
  2440.  
  2441.