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.008 < prev    next >
Text File  |  1991-08-11  |  262KB  |  6,040 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Direct-Access Devices                                                   3/9/90
  8.  
  9. 8. Direct-Access Devices
  10.  
  11. 8.1. Direct-Access Device Model
  12.  
  13. Direct-access devices store blocks of data for later retrieval.  Each block of
  14. data is stored at a unique logical block address.  An initiator issues WRITE
  15. commands to store the blocks of data (write operations) and READ commands to
  16. retrieve the blocks of data (read operations).  Other commands issued by the
  17. initiator to may also cause write and read operations to occur. A write
  18. operation causes a block of data to be written on the medium.  A read
  19. operation causes a block of data to be read from the medium.  A verify
  20. operation causes a block of data to be verified that it can be read without
  21. error from the medium.
  22.  
  23. Blocks of data are stored by a process that causes localized changes or
  24. transitions within the medium.  The changes made to the medium to store the
  25. blocks of data may be volatile (i.e., not retained through power cycles) or
  26. non-volatile (retained through power cycles).  The medium has may be divided
  27. in parts that are used to data blocks, parts that are reserved as spares for
  28. defect handling, and parts that are reserved for use by the controller for the
  29. management of the device.
  30.  
  31. 8.1.1. Removable Medium
  32.  
  33. The medium may be removable (i.e., a typically used in a floppy disk drive) or
  34. non-removable (i.e., typically used in a hard disk drive).  Removable medium
  35. is contained within a cartridge (or jacket) to prevent damage to the recording
  36. surfaces. The combination of medium and cartridge is often called a volume.
  37.  
  38. A volume has an attribute of being mounted or demounted on a suitable
  39. transport mechanism.  A volume is mounted when the direct-access device is
  40. capable of performing write or read operations to the medium.  A mounted
  41. volume may be not be accessible by an initiator if it is reserved by another
  42. initiator.  A volume is demounted at any other time (e.g., during loading,
  43. unloading, or storage).
  44.  
  45. An initiator may check whether a volume is mounted by issuing a TEST UNIT
  46. READY command.  A volume that is loaded may need a START STOP UNIT command
  47. issued to become accessible for write or read operations.
  48.  
  49. The PREVENT ALLOW MEDIUM REMOVAL command allows an initiator to restrict the
  50. demounting of the volume.  This is useful in maintaining system integrity. If
  51. the direct-access device implements cache memory, it must ensure that all
  52. logical blocks of the medium contain the most recent data prior to permitting
  53. demounting of the volume.  If the initiator issues a START STOP UNIT command
  54. to eject the cartridge, and the direct-access device is prevented from
  55. demounting by the PREVENT ALLOW MEDIUM REMOVAL command, the START STOP unit
  56. command is rejected by the direct-access device.
  57.  
  58. 8.1.2. Logical Blocks
  59.  
  60. SCSI-2 draft proposed American National Standard        8-1      Revision 10c1
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. Direct-Access Devices                                                   3/9/90
  69.  
  70.  
  71. Blocks of data are stored on the medium along with additional information that
  72. the controller uses to manage the storage and retrieval.  The format of the
  73. additional information is unique and is hidden from the initiator during
  74. normal read or write operations.  This additional information is often used to
  75. identify the physical location of the blocks of data, the address of the
  76. logical block, and to provide protection against the loss of the user data.
  77.  
  78. The address of the first logical block is zero.  The address of the last
  79. logical block is [n-1], where [n] is the number of logical blocks available on
  80. the medium.  A READ CAPACITY command may be issued to determine the value of
  81. [n-1].  If a command is issued which requests access to a logical block not
  82. within the capacity of the medium the command is terminated with CHECK
  83. CONDITION.
  84.  
  85. The number of bytes of data contained in a logical block is known as the block
  86. length.  Each logical block has a block length associated with it.  The block
  87. length may be different for each logical block on the medium.  However, in a
  88. typical device only one block length is used at a time.  The block descriptor
  89. in the MODE SENSE data describes the block lengths that are used on the
  90. medium.  An MODE SELECT command can be used to setup extents.  An extent is a
  91. specified number of logical blocks that have the specified block length.  The
  92. FORMAT UNIT command is typically required to change the block length of
  93. devices that support variable block lengths and make the extents that were
  94. setup active.
  95.  
  96. The location of a logical block on the medium does not have a relationship to
  97. the location of any other logical block. However, in a typical device the
  98. logical blocks are located in an ascending order.  The time to access the
  99. logical block at address [x] and then the logical block at address [x+1] may
  100. not be less than time to access [x] and then [x+100].  The READ CAPACITY with
  101. a PMI bit of one is useful in determining where longer access times occur.
  102.  
  103. 8.1.3. Ready State
  104.  
  105. A direct-access device is ready when medium access commands can be executed.
  106. A device using removable media is usually not ready until a volume is mounted.
  107. Such a device normally returns CHECK CONDITION status and sets the sense key
  108. to NOT READY.
  109.  
  110. A direct-access device may be switched from being ready to being not ready by
  111. using the START STOP UNIT command.  An initiator may need to issue a START
  112. UNIT command to bring a device ready.
  113.  
  114. 8.1.4. Initialization
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121. SCSI-2 draft proposed American National Standard        8-2      Revision 10c2
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129. Direct-Access Devices                                                   3/9/90
  130.  
  131.  
  132. Many direct-access devices must be initialized prior to write or read
  133. operations.  This initialization is usually performed by a FORMAT UNIT
  134. command.  Parameters related to the geometry and performance characteristics
  135. can be set with the MODE SELECT command prior to the format operation.  Some
  136. devices are initialized by means not specified in this standard.  The time at
  137. which this occurs is specific to the implementation of the direct-access
  138. device.
  139.  
  140. Devices using non-volatile medium typically save the parameters and only need
  141. to be initialized once.  However, some mode parameters may need to be
  142. initialized after each power-on and reset.  A catastrophic failure of the
  143. direct-access device may require the FORMAT UNIT command to be reissued.
  144.  
  145. Devices that do not use non-volatile medium may need to be initialized at each
  146. power-on prior read or write operations being performed.  Mode parameters may
  147. also need initialization.
  148.  
  149. 8.1.5. Medium Defects
  150.  
  151. Any medium has the potential for defects which can cause user data to be lost.
  152. Therefore, each logical block may contain information which allows the
  153. detection of changes to the user data caused by defects in the medium or other
  154. phenomena, and may also allow the data to be reconstructed following the
  155. detection of such a change.  On some devices, the initiator has some control
  156. some through use of the mode parameters.  Some devices may allow the initiator
  157. to examine and modify the additional information by using the READ LONG and
  158. WRITE LONG commands.  Some media having a very low probability of defects may
  159. not require these structures.
  160.  
  161. Defects may also be detected and managed during execution of the FORMAT UNIT
  162. command.  The FORMAT UNIT command defines four sources of defect information.
  163. These defects may be reassigned or avoided during the initialization process
  164. so that they do not appear in a logical block.
  165.  
  166. Defects may also be avoided after initialization.  The initiator issues a
  167. REASSIGN BLOCKS command to request that the specified logical block address be
  168. reassigned to a different part of the medium.  This operation can be repeated
  169. if a new defect appears at a later time.  The total number of defects that may
  170. be handled in this manner can be specified in the mode parameters.
  171.  
  172. Defect management on direct-access devices is usually vendor specific.
  173. Devices not using removable medium typically optimize the defect management
  174. for capacity or performance or both.  Devices that use removable medium
  175. typically do not support defect management (e.g., some floppy disk drives) or
  176. use defect management that is based on the ability to interchange the medium.
  177.  
  178. 8.1.6. Data Cache
  179.  
  180.  
  181.  
  182. SCSI-2 draft proposed American National Standard        8-3      Revision 10c3
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190. Direct-Access Devices                                                   3/9/90
  191.  
  192.  
  193. Some direct-access devices implement cache memory.  A cache memory is usually
  194. an area of temporary storage in the direct-access device with a fast access
  195. time that is used to enhance performance.  It exists separately from the
  196. blocks of data stored and is normally not directly accessible by the
  197. initiator.  Use of cache memory for write or read operations typically reduces
  198. the access time to a logical block and can increase the overall data
  199. throughput.
  200.  
  201. During read operations the direct-access device uses the cache memory to keep
  202. blocks of data that the initiator may request at some future time. The
  203. algorithm used to manage the cache memory is not part of this standard.
  204. However, there are parameters provided by which the initiator may advise the
  205. direct-access device about its future requests, or restrict the use of cache
  206. memory for a particular request.
  207.  
  208. During write operations the direct-access device uses the cache memory to
  209. buffer data for later storage on the medium.  This is typically called a
  210. write-back caching algorithm.  Thus the command may complete prior to blocks
  211. of data being written to the medium.  As a result of using write-back caching
  212. there is a period of time during which the blocks of data may be lost due to a
  213. power or hardware failure.  There is also the possibility of an error
  214. occurring during the write operation.  If an error occurred during the write,
  215. it may be reported as a deferred error on a later command.  However, there are
  216. parameters provided by which the the initiator may request the use of write-
  217. through caching thereby preventing these circumstances from arising.
  218.  
  219. When the cache memory fills up with blocks of data that are being kept for
  220. possible future access, new blocks of data that are to be kept must replace
  221. those currently in cache memory.  The disable page out (DPO) bit is used to
  222. control replacement of logical blocks in the cache.  For write operations,
  223. setting this bit to one advises the direct-access device to not replace
  224. existing blocks in the cache memory with the write data.  For read operations,
  225. setting this bit to one causes blocks of data that are being read to not
  226. replace existing ones in the cache memory.
  227.  
  228. Sometimes the initiator may wish to have the blocks of data read from the
  229. medium instead of from the cache memory.  The force unit access (FUA) bit is
  230. used to indicate that the direct-access device shall access the physical
  231. medium.  For a write operation, setting FUA to one causes the direct-access
  232. device to complete the data write to the physical medium before completing the
  233. command.  For a read operation, setting FUA to one causes the logical blocks
  234. to be retrieved from the physical medium.
  235.  
  236. Note that when the DPO and FUA bits are both set to one, write and read
  237. operations bypass the cache memory.
  238.  
  239. For the VERIFY command, an FUA is implied, since the blocks of data stored on
  240. the medium are being verified.  Further, a SYNCHRONIZE CACHE operation (see
  241. below) is also implied to flush an unwritten blocks of data still in the cache
  242.  
  243. SCSI-2 draft proposed American National Standard        8-4      Revision 10c4
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251. Direct-Access Devices                                                   3/9/90
  252.  
  253. memory.  These blocks of data must be stored on the medium before the verify
  254. operation can begin.  The DPO bit is still provided since the VERIFY command
  255. may still cause the replacement of blocks in the cache.  The above also
  256. applies to the WRITE AND VERIFY command.
  257.  
  258. Certain special commands may be implemented by the direct-access device that
  259. allow the initiator to control other behavior of the cache memory:
  260. - LOCK UNLOCK CACHE controls whether certain logical blocks will be held in
  261. the data cache for future use.  Locking a logical block prevents its
  262. replacement by a future access.  Unlocking a logical block exposes it to
  263. possible replacement by a future access.  (See 8.2.2)
  264. - PRE-FETCH causes a set of logical blocks requested by the initiator to be
  265. read into the data cache for possible future access.  The blocks fetched are
  266. subject to later replacement unless they are locked (see 8.2.3)
  267. - SYNCHRONIZE CACHE forces any pending write data in the requested set of
  268. logical blocks to be stored in the physical medium.  This command can be used
  269. to ensure that the data was written and any errors reported.  (see 8.2.18)
  270. - The MODE SELECT command defines a page for the control of cache behavior and
  271. handles certain basic elements of cache replacement algorithms (see 8.3.3.1).
  272.  
  273. 8.1.7. Reservation
  274.  
  275. The access enabled or access disabled condition determines when an initiator
  276. may store or retrieve user data all or part of the medium.  Access may be
  277. restricted for read operations, write operations, or both.  This attribute may
  278. be controlled by an external mechanism or by the RESERVE and RELEASE commands
  279. (see 8.2.12 and 8.2.11).
  280.  
  281. The RESERVE and RELEASE commands define how different types of restricted
  282. access may be achieved, and to whom the access is restricted.  This section
  283. describes the interaction of the initiator that requested the reservation, and
  284. the other initiators.
  285.  
  286. An initiator uses reservations to gain a level of exclusivity in access to all
  287. or part of the medium for itself or another initiator.  It is expected that
  288. the reservation will be retained until released.  The direct-access device
  289. must ensure that the initiator with the reservation is able to access the
  290. reserved media within the operating parameters established by that initiator.
  291.  
  292.  
  293. The following list explains the targets actions in a situation where a
  294. reservation exists for various commands.  Unless otherwise noted, an initiator
  295. that issues any command to a direct-access device that has a logical unit
  296. reservation to another initiator, incurs a reservation conflict.
  297.  
  298. The CHANGE DEFINITION command is dealt with as follows.  If any initiator has
  299. an extent reservation on a direct-access device, no other initiator may affect
  300. the operating definition of that initiator by use of this command.  If the
  301. direct-access device allows different operating definitions for each
  302. initiator, then there is no conflict; otherwise, a reservation conflict
  303.  
  304. SCSI-2 draft proposed American National Standard        8-5      Revision 10c5
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312. Direct-Access Devices                                                   3/9/90
  313.  
  314. occurs.
  315.  
  316. The COMPARE, COPY, and COPY AND VERIFY commands are evaluated for reservation
  317. conflict as if they were normal write and read operations even when a
  318. direct-access device is requested to copy to or from itself, those write and
  319. read accesses.  For example, if a COPY is issued to logical unit 0 that
  320. requests the direct-access device to copy from logical unit 0 to logical unit
  321. 1, access to logical unit 1 must also be evaluated for conflict.
  322.  
  323. The FORMAT UNIT, PREVENT ALLOW MEDIUM REMOVAL, REZERO UNIT, and START STOP
  324. UNIT commands will generate a reservation conflict if any other initiator has
  325. an extent reservation on a direct-access device.
  326.  
  327. The INQUIRY and REQUEST SENSE commands are not affected by any kind of
  328. reservation.
  329.  
  330. The LOG SELECT, LOG SENSE, MODE SENSE, TEST UNIT READY, READ CAPACITY (PMI set
  331. to zero), READ BUFFER, WRITE BUFFER, and READ DEFECT DATA commands are not
  332. affected by extent reservations.
  333.  
  334. The SEEK, LOCK UNLOCK CACHE, PRE-FETCH, and SYNCHRONIZE CACHE commands are
  335. evaluated for reservation conflict as if they were normal write or read
  336. operations.
  337.  
  338. The MODE SELECT command is dealt with as follows. If an initiator has an
  339. extent reservation on a direct-access device, and another initiator attempts
  340. one of these command, a reservation conflict occurs if the command affects the
  341. manner in which access of the extent by the first initiator is performed.  If
  342. the command does not affect access to the extent, or parameters are saved for
  343. each initiator, then a conflict does not occur.
  344.  
  345. The SEND DIAGNOSTIC, RECEIVE DIAGNOSTIC RESULTS commands conflict with an
  346. extent reservation only if they affect access to the extent (as with MODE
  347. SELECT).
  348.  
  349. The REASSIGN BLOCKS command may not reassign a block that is in an extent
  350. reserved to another initiator.
  351.  
  352. The SET LIMITS command generates a reservation conflict if the logical blocks
  353. specified are within an extent reserved to another initiator.
  354.  
  355. ALL other commands are that request read or write operations are evaluated for
  356. reservation conflict as described in the RESERVE command.
  357.  
  358. When a system is integrated with more than one initiator, there must be
  359. agreement between the initiators as to how media is reserved and released
  360. during operations, otherwise an initiator may be locked out of access to a
  361. target in the middle of an operation.  For example, initiator 'A' is
  362. performing writes to a direct-access device that are being cached.  Then,
  363. initiator 'B' issues a RESERVE command to the direct-access device.  As a
  364.  
  365. SCSI-2 draft proposed American National Standard        8-6      Revision 10c6
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373. Direct-Access Devices                                                   3/9/90
  374.  
  375. result, initiator 'A' is locked out of issuing a SYNCHRONIZE CACHE command to
  376. ensure the integrity of the writes.  To prevent this from happening, initiator
  377. 'A' should issue a RESERVE prior to the cached write commands.
  378.  
  379. 8.1.8. Seek and Rezero
  380.  
  381. The SEEK command provides a way for the initiator to position the device in
  382. preparation for access to a particular logical block at some later time.
  383. Since this positioning action is implicit in other commands, the SEEK command
  384. may not be useful with some direct-access devices.
  385.  
  386. The REZERO UNIT command is provided to bring the direct-access device to a
  387. known condition.  This standard does not specify the condition.  The REZERO
  388. UNIT command is used in some devices to position the actuator at cylinder
  389. zero.  Some devices return GOOD status without attempting any action.
  390.  
  391. 8.1.9. Notched Drives
  392.  
  393. A notched (also called partitioned or zoned) drive has areas of the medium in
  394. which the drive geometry changes.  In the simplest case, the entire medium
  395. consists of a single notch.  Multiple notches are often used to increase
  396. capacity of the drive.  The notch page is used to indicate the notch for
  397. assignment of values to the parameters in the format device page.  By
  398. sequencing the notch page through each notch, the format device parameters of
  399. each notch are set.  This is usually done prior to initialization by the
  400. FORMAT UNIT command.
  401.  
  402. 8.1.10. Rotational Position Locking
  403.  
  404. Rotational position locking is an optional feature implemented in some
  405. direct-access devices to allow the synchronization of spindles between a
  406. number of devices.  The rotational position offset feature allows devices to
  407. synchronize spindles at offsets from index.  This may be useful in improving
  408. performance in systems that implement arrays of devices.
  409.  
  410. 8.1.11. Relative Addressing
  411.  
  412. Relative addressing is a technique useful in accessing structured data in a
  413. uniform manner.  Relative addressing is only allowed when commands are linked.
  414. Section 6.4.3 gives an example of relative addressing and linking for SEARCH
  415. DATA commands appropriate to direct-access devices.
  416.  
  417. The SET LIMITS command is provided to define the limits of a linked chain of
  418. relative addressing commands.  This gives an additional protection against
  419. exceeding a particular set of blocks.  The SET LIMITS command has no effect on
  420. any other initiator.
  421.  
  422. 8.1.12. Error Reporting
  423.  
  424.  
  425.  
  426. SCSI-2 draft proposed American National Standard        8-7      Revision 10c7
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434. Direct-Access Devices                                                   3/9/90
  435.  
  436.  
  437. If any of the following conditions occur during the execution of a command the
  438. target shall return CHECK CONDITION status.  The appropriate sense key and
  439. additional sense code should be set.  The following table illustrates some
  440. error conditions and the applicable sense keys.  The table does not provide an
  441. exhaustive enumeration of all conditions that may cause the CHECK CONDITION
  442. status.
  443.  
  444. Condition                                         Sense Key
  445. ----------------------------------------------    ----------------------------
  446. Invalid logical block address                     ILLEGAL REQUEST
  447.  
  448. Unsupported option requested                      ILLEGAL REQUEST
  449.  
  450. Target reset or medium change since
  451. last command from this initiator                  UNIT ATTENTION
  452.  
  453. Self diagnostic failed                            HARDWARE ERROR
  454.  
  455. Unrecovered read error                            MEDIUM ERROR
  456.                                                   HARDWARE ERROR
  457.  
  458. Recovered read error                              RECOVERED ERROR
  459.  
  460. Overrun or other error that might
  461. be resolved by repeating the command              ABORTED COMMAND
  462.  
  463. Attempt to write on write protected medium        DATA PROTECT
  464.  
  465.  
  466. In the case of an invalid logical block address, the sense data information
  467. field shall be set to the logical block address of the first invalid address.
  468.  
  469. In the case of an attempt to read a blank or previously unwritten block, the
  470. information field shall be set to the logical block address of the first blank
  471. block encountered.  The data read up to that block shall be transferred
  472. (optical memory and write-once devices only).
  473.  
  474. In the case of an attempt to write a previously written block and blank
  475. checking is enabled, the information field shall be set to the logical block
  476. address of the first non-blank block encountered (optical memory and write-
  477. once devices only).
  478.  
  479. 8.1.13. Examples
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487. SCSI-2 draft proposed American National Standard        8-8      Revision 10c8
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495. Direct-Access Devices                                                   3/9/90
  496.  
  497.  
  498. The following examples show some typical variations of the direct-access
  499. device.  Other variations are possible.
  500.  
  501. 8.1.13.1. Rotating Media
  502. The typical application of a direct-access device is a disk drive.  The medium
  503. is a disk coated with a material in which flux changes may be induced.  The
  504. disk drive allows direct and random access to the medium.  This is done using
  505. a actuator which positions the read-write head, and a rotating disk. Data is
  506. stored and retrieved through the interaction of the read-write head and the
  507. disk.
  508.  
  509. The disk is typically divided into cylinders.  Each cylinder is typically
  510. divided into tracks.  Each track is typically divided into sectors.  A
  511. cylinder is a set of tracks than can be accessed without movement of the
  512. actuator.  A track is a recording path over which the read-write head travels
  513. during one rotation of the disk.  A sector is a part of a track that contains
  514. the stored data blocks.
  515.  
  516. A logical block is stored in one or more sectors, or a sector may store more
  517. than one logical block.  A sector is typically made up of a header, data and a
  518. trailer.  The header contains a preamble used to synchronize read circuits to
  519. the data, an address field to identify the sector, flags to use for defect
  520. management, and a checksum that validates the header.  The data contains the
  521. block of data.  The trailer contains the checksum and the error correction
  522. information if it is used.  The checksum or the error correction information
  523. allows the correction data for medium defects.
  524.  
  525. A disk drive is typically ready when the disks are rotating at the correct
  526. speed and the read-write circuitry is powered and ready to access the disks.
  527. Some disks, particularly removable disks, require the user to issue load or
  528. start commands to bring the disk drive to the ready state.
  529.  
  530. A disk drive will typically have to be formatted prior to the initial access.
  531. Exceptions to this are drives that are formatted at the factory and some
  532. optical drives with pre-formatted media (see 12.1).  A disk drive format will
  533. typically create the headers for each sector and initialize the data field.
  534. The MODE SELECT command is often used at format time to establish the geometry
  535. (number of heads and tracks, sectors per track, etc.) and defect management
  536. scheme.  Disk drives are usually non-volatile.
  537.  
  538. The defect management scheme of a disk drive is often shielded from the user,
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548. SCSI-2 draft proposed American National Standard        8-9      Revision 10c9
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556. Direct-Access Devices                                                   3/9/90
  557.  
  558. though some aspects can be evaluated and controlled by the initiator.  The
  559. direct-access device will usually reserve some sectors and tracks for
  560. recording defect tables and for reassigning defective blocks.  The READ LONG
  561. and WRITE LONG commands will typically access the user data and checksum
  562. portions of the data field so that defects may be induced by the initiator to
  563. test the defect detection logic of the direct-access device.
  564.  
  565. Notches find their most typical use in a rotating disk drive.  On a disk, the
  566. inner tracks are physically shorter than the outer tracks.  As a result, if
  567. each track is made to store the same number of data bits, the data is packed
  568. more densely on the inner tracks than the outer tracks.  By using notches, the
  569. outer tracks may be made to contain a different number of sectors than the
  570. inner tracks, balancing the data density.  This results in increased capacity.
  571.  
  572. 8.1.13.2. Sequential Media
  573. Some tape devices are implemented as a direct access device so that they can
  574. be used in disk oriented operating system environments.  These devices are
  575. sometimes referred to as 'random access tape' or 'floppy tape'.  These devices
  576. might be thought of as a disk drive with one or a few very long tracks.
  577. Access time to a logical block is usually longer than for a disk drive, since
  578. the tape must be fast forwarded or rewound to the block.  As a result, the
  579. SEEK command will often be more useful for a tape than for a disk.  The only
  580. way an initiator may determine if a direct-access device is a tape is to use
  581. the medium type code returned by the MODE SENSE command.
  582.  
  583. 8.1.13.3. Memory Media
  584. Memory media includes devices which are traditionally used for primary storage
  585. within computer systems, such as solid state static or dynamic random access
  586. memories (SRAM or DRAM), or magnetic core or bubble memory.  These devices are
  587. typically non-mechanical and therefore the entire physical medium may be
  588. accessed in virtually the same access time.  The data is typically accessed as
  589. a bit or byte and this also speeds access time.  Memory devices typically
  590. store less data than disks or tapes, and are usually volatile when  not
  591. protected by battery backup.
  592.  
  593.  
  594. 8.2. Commands for Direct-Access Devices.
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609. SCSI-2 draft proposed American National Standard        8-10      Revision 10c10
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617. Direct-Access Devices                                                   3/9/90
  618.  
  619.  
  620. The commands for direct-access devices shall be as shown in Table 8-1.
  621.  
  622.               Table 8-1: Commands for Direct-Access Devices
  623.  
  624. ==============================================================================
  625.                                     Operation
  626. Command Name                          Code      Type    Section
  627. ------------------------------------------------------------------------------
  628. CHANGE DEFINITION                      40h       O       7.2.1
  629. COMPARE                                39h       O       7.2.2
  630. COPY                                   18h       O       7.2.3
  631. COPY AND VERIFY                        3Ah       O       7.2.4
  632. FORMAT UNIT                            04h       M       8.2.1
  633. INQUIRY                                12h       M       7.2.5
  634. LOCK-UNLOCK CACHE                      36h       O       8.2.2
  635. LOG SELECT                             4Ch       O       7.2.6
  636. LOG SENSE                              4Dh       O       7.2.7
  637. MODE SELECT(6)                         15h       O       7.2.8
  638. MODE SELECT(10)                        55h       O       7.2.9
  639. MODE SENSE(6)                          1Ah       O       7.2.10
  640. MODE SENSE(10)                         5Ah       O       7.2.11
  641. PRE-FETCH                              34h       O       8.2.3
  642. PREVENT-ALLOW MEDIUM REMOVAL           1Eh       O       8.2.4
  643. READ(6)                                08h       M       8.2.5
  644. READ(10)                               28h       M       8.2.6
  645. READ BUFFER                            3Ch       O       7.2.12
  646. READ CAPACITY                          25h       M       8.2.7
  647. READ DEFECT DATA                       37h       O       8.2.8
  648. READ LONG                              3Eh       O       8.2.9
  649. REASSIGN BLOCKS                        07h       O       8.2.10
  650. RECEIVE DIAGNOSTIC RESULTS             1Ch       O       7.2.13
  651. RELEASE                                17h       M       8.2.11
  652. REQUEST SENSE                          03h       M       7.2.14
  653. RESERVE                                16h       M       8.2.12
  654. REZERO UNIT                            01h       O       8.2.13
  655. SEARCH DATA EQUAL                      31h       O       8.2.14.1
  656. SEARCH DATA HIGH                       30h       O       8.2.14.2
  657. SEARCH DATA LOW                        32h       O       8.2.14.3
  658. SEEK(6)                                0Bh       O       8.2.15
  659. SEEK(10)                               2Bh       O       8.2.15
  660. SEND DIAGNOSTIC                        1Dh       M       7.2.15
  661. SET LIMITS                             33h       O       8.2.16
  662. START STOP UNIT                        1Bh       O       8.2.17
  663. SYNCHRONIZE CACHE                      35h       O       8.2.18
  664. TEST UNIT READY                        00h       M       7.2.16
  665. VERIFY                                 2Fh       O       8.2.19
  666. ==============================================================================
  667.  
  668. Table 8-1 continued
  669.  
  670. SCSI-2 draft proposed American National Standard        8-11      Revision 10c11
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678. Direct-Access Devices                                                   3/9/90
  679.  
  680.  
  681. ==============================================================================
  682.                                     Operation
  683. Command Name                          Code      Type    Section
  684. ------------------------------------------------------------------------------
  685. WRITE(6)                               0Ah       M       8.2.20
  686. WRITE(10)                              2Ah       M       8.2.21
  687. WRITE AND VERIFY                       2Eh       O       8.2.22
  688. WRITE BUFFER                           3Bh       O       7.2.17
  689. WRITE LONG                             3Fh       O       8.2.23
  690. WRITE SAME                             41h       O       8.2.24
  691. ==============================================================================
  692.  
  693.  
  694.  
  695. Key: M  =  Command implementation is mandatory.
  696.      O  =  Command implementation is optional.
  697.  
  698. The following operation codes are vendor-specific: 02h, 05h, 06h, 09h, 0Ch,
  699. 0Dh, 0Eh, 0Fh, 10h, 11h, 13h, 14h, 19h, 20h, 21h, 22h, 23h, 24h, 26h, 27h,
  700. 29h, 2Ch, 2Dh and C0h through FFh.  All remaining operation codes for direct-
  701. access devices are reserved for future standardization.
  702.  
  703. 8.2.1. FORMAT UNIT Command
  704.  
  705.  
  706.                        Table 8-2: FORMAT UNIT Command
  707.  
  708. ==============================================================================
  709.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  710. Byte |        |        |        |        |        |        |        |        |
  711. ==============================================================================
  712.  0   |                           Operation Code (04h)                        |
  713. -----|-----------------------------------------------------------------------|
  714.  1   | Logical Unit Number      | FmtData| CmpLst |   Defect List Format     |
  715. -----|-----------------------------------------------------------------------|
  716.  2   |                           Vendor-Specific                             |
  717. -----|-----------------------------------------------------------------------|
  718.  3   | (MSB)                                                                 |
  719. -----|---                        Interleave                               ---|
  720.  4   |                                                                 (LSB) |
  721. -----|-----------------------------------------------------------------------|
  722.  5   |                           Control                                     |
  723. ==============================================================================
  724.  
  725.  
  726. The FORMAT UNIT command (Table 8-2) formats the medium into initiator
  727.  
  728.  
  729.  
  730.  
  731. SCSI-2 draft proposed American National Standard        8-12      Revision 10c12
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739. Direct-Access Devices                                                   3/9/90
  740.  
  741. addressable logical blocks per the initiator defined options.  In addition,
  742. the medium may be certified and control structures may be created for the
  743. management of the medium and defects.  There is no guarantee that the medium
  744. has or has not been altered.
  745.  
  746. The simplest mandatory form of the FORMAT UNIT command (with no format data)
  747. accomplishes medium formatting with little initiator control over defect
  748. management.  The target implementation determines the degree of defect
  749. management that is to be performed.  Two additional mandatory forms of this
  750. command increase the initiator's control over defect management.  Several
  751. optional forms of this command further increase the initiator's control over
  752. defect management, by allowing the initiator to specify which defect list(s)
  753. are to be used, to specify defect locations (in several formats), to enable
  754. target certification, and to specify what to do in the event that defect lists
  755. are not accessible.
  756.  
  757. The FORMAT UNIT command shall be rejected with RESERVATION CONFLICT status if
  758. the logical unit is reserved, or any extent reservation, from any initiator,
  759. is active in the specified logical unit.
  760.  
  761. During the format operation, the target shall respond to commands as follows:
  762. (1) In response to all commands except REQUEST SENSE and INQUIRY, the target
  763. shall return CHECK CONDITION status unless a reservation conflict exists in
  764. which case RESERVATION CONFLICT status shall be returned.
  765. (2) In response to the INQUIRY command, the target shall respond as commanded.
  766. (3) In response to the REQUEST SENSE command, unless an error has occurred,
  767. the target shall return a sense key of NOT READY and an additional sense code
  768. of LOGICAL UNIT NOT READY FORMAT IN PROGRESS, with the sense key specific
  769. bytes set for progress indication (as described in 7.2.14.1).  Refer to
  770. 7.2.14.2 for a description of deferred error handling which may occur during
  771. the format operation.
  772.  
  773. IMPLEMENTORS NOTE:  It is recommended that MODE SELECT parameters (if any) be
  774. set prior to issuing the FORMAT UNIT command.
  775.  
  776. During the execution of the FORMAT UNIT command, the target may perform a
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792. SCSI-2 draft proposed American National Standard        8-13      Revision 10c13
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800. Direct-Access Devices                                                   3/9/90
  801.  
  802. medium defect management algorithm (which can be controlled by the initiator,
  803. using optional forms of this command).  Four sources of defect location
  804. information (hereafter called defects) are defined as follows:
  805.  
  806. Primary defect list (Plist).  This is the list of defects, usually supplied by
  807. the original manufacturer of the device or medium, that are considered as
  808. permanent defects.  The Plist is located outside of the initiator-accessible
  809. logical block space.  The Plist is accessible by the target (to reference
  810. while formatting), but it is not normally accessible by the initiator except
  811. through the READ DEFECT DATA command.  Once created, the original Plist shall
  812. not be subject to change.
  813.  
  814. Target certification list (Clist).  This list includes defects detected by the
  815. target during an optional certification process executed during the FORMAT
  816. UNIT command.  This list shall be added to the Glist.
  817.  
  818. Data defect list (Dlist).  This list of defect descriptors may be supplied to
  819. the target by the initiator in the DATA OUT phase of the FORMAT UNIT command.
  820. This list shall be added to the Glist.  The defect list length in the defect
  821. list header may be zero, in which case there is no Dlist.
  822.  
  823. Grown defect list (Glist).  The Glist includes all defects sent by the
  824. initiator or detected by the target.  The Glist does not include the Plist.
  825. If the CmpLst bit is zero the Glist shall include Dlists provided to the
  826. target during the previous and the current FORMAT UNIT commands.  The Glist
  827. shall also include:
  828. (1) Defects detected by the format operation during medium certification.
  829. (2) Defects previously identified with a REASSIGN BLOCKS command.
  830. (3) Defects previously detected by the target and automatically reallocated.
  831.  
  832. A format data (FmtData) bit of one indicates that the FORMAT UNIT parameter
  833. list (see Table 8-3) shall be transferred during the DATA OUT phase.   The
  834. DATA OUT phase consists of a defect list header (see Table 8-4), followed by
  835. an initialization pattern descriptor, followed by zero or more defect
  836. descriptors.  Each defect descriptor identifies a location on the medium that
  837. the target shall map out of the user-accessible area.
  838.  
  839. A FmtData bit of zero indicates that a DATA OUT phase shall not occur.  The
  840. source of defect information is not specified.
  841.  
  842. A complete list (CmpLst) bit of one indicates that the defect list sent by the
  843. initiator is a complete list of defects.  Any existing defect list except the
  844. Plist shall be ignored by the target.  As a result a new Glist is constructed
  845. which contains the Dlist (if it is sent by the initiator), and the Clist (if
  846. certification is enabled).  The target may add any defects it detects during
  847. the format operation to this Dlist.
  848.  
  849. A CmpLst bit of zero indicates that the defect list sent by the initiator is
  850.  
  851.  
  852.  
  853. SCSI-2 draft proposed American National Standard        8-14      Revision 10c14
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861. Direct-Access Devices                                                   3/9/90
  862.  
  863. an addition to existing list of defects.  As a result a new Glist is
  864. constructed which contains the existing Glist, the Dlist (if it is sent by the
  865. initiator) and the Clist (if certification is enabled).  The target may add
  866. any defects it detects during the format operation to this Dlist.
  867.  
  868. The defect list format field specifies which defect descriptor is used if the
  869. FmtData bit is one (see Table 8-5).
  870.  
  871. The interleave field specifies the interleave that is used when performing the
  872. format operation.  This allows the logical blocks to be related in a way that
  873. facilitates matching the transfer rate  between the initiator and the
  874. peripheral.  An interleave of zero specifies that the target use its default
  875. interleave.  An interleave of one specifies that consecutive logical blocks be
  876. placed in contiguous ascending order.  All other values are vendor specific.
  877.  
  878.                     Table 8-3: FORMAT UNIT Parameter List
  879.  
  880. ==============================================================================
  881.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  882. Byte |        |        |        |        |        |        |        |        |
  883. ==============================================================================
  884.      |                           Defect List Header                          |
  885. ==============================================================================
  886.      |                           Initialization Pattern Descriptor (if any)  |
  887. ==============================================================================
  888.      |                           Defect Descriptor(s) (if any)               |
  889. ==============================================================================
  890.     |                           Defect Descriptor 0                         |
  891.      |                     (See specific table for length.)                  |
  892. -----|- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -|
  893.     |                           Defect Descriptor n                         |
  894.      |                     (See specific table for length.)                  |
  895. ==============================================================================
  896.  
  897.  
  898.                         Table 8-4: Defect List Header
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914. SCSI-2 draft proposed American National Standard        8-15      Revision 10c15
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922. Direct-Access Devices                                                   3/9/90
  923.  
  924.  
  925. ==============================================================================
  926.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  927. Byte |        |        |        |        |        |        |        |        |
  928. ==============================================================================
  929.  0   |                           Reserved                                    |
  930. -----|-----------------------------------------------------------------------|
  931.  1   |  FOV   |  DPRY  |  DCRT  |  STPF  |   IP   |   DSP  |  Immed |   VS   |
  932. -----|-----------------------------------------------------------------------|
  933.  2   | (MSB)                                                                 |
  934. -----|---                        Defect List Length                       ---|
  935.  3   |                                                                 (LSB) |
  936. ==============================================================================
  937.  
  938.  
  939. The  defect list header (TABLE 8-4) provides several optional format control
  940. bits. Targets that implement these bits give the initiator additional control
  941. over the use of the four defect sources, and the formatting operation. If the
  942. initiator attempts to select any function not implemented by the target, the
  943. target shall terminate the command with CHECK CONDITION status.  The sense key
  944. shall be set to ILLEGAL REQUEST and the additional sense code shall be set to
  945. INVALID FIELD IN PARAMETER LIST.
  946.  
  947. A format options valid (FOV) bit of zero indicates that the target shall use
  948. its default settings for the DPRY, DCRT, STPF, IP and  DSP bits (see below).
  949. The initiator shall set these bits to zero.  If any of these bits are not
  950. zero, the target shall terminate the command with CHECK CONDITION status.  The
  951. sense key shall be set to ILLEGAL REQUEST and the additional sense code  shall
  952. be set to INVALID FIELD IN PARAMETER LIST.
  953.  
  954. A FOV bit of one indicates that the target shall examine the setting of the
  955. DPRY, DCRT, STPF, IP and DSP bits.  When FOV is one the DPRY, DCRT, STPF, IP
  956. and DSP bits are defined below.
  957.  
  958. A disable primary (DPRY) bit of zero indicates that the target shall not use
  959. portions of the medium identified as defective in the primary defect Plist for
  960. initiator addressable logical blocks.  If the target cannot locate the Plist
  961. or it cannot determine whether a Plist exists, it shall perform the action
  962. specified by  the STPF bit.  A DPRY bit of one indicates that the target shall
  963. not use the Plist to identify defective areas of the medium.  The Plist is not
  964. deleted.
  965.  
  966. A disable certification (DCRT) bit of zero indicates that the target shall
  967. perform a vendor-specific medium certification operation to generate a Clist.
  968. A DCRT bit of one indicates that the target shall not perform any vendor-
  969. specific medium certification process or format verification operation while
  970. executing the FORMAT UNIT command.
  971.  
  972. The stop format (STPF) bit controls the behavior of the target when one of the
  973.  
  974.  
  975. SCSI-2 draft proposed American National Standard        8-16      Revision 10c16
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983. Direct-Access Devices                                                   3/9/90
  984.  
  985. following events occurs:
  986. (1) The target has been requested to use the primary defect list (DPRY is  set
  987. to zero), or the grown defect list (CmpLst is set to zero) and the target
  988. cannot locate the list nor determine whether the list exists.
  989. (2) The target has been requested to use the primary defect list (DPRY is set
  990. to zero) or the grown defect list (CmpLst is set to zero), and the target
  991. encounters an error while accessing the defect list.
  992.  
  993. A STPF bit of zero indicates that, if one or both of the above conditions
  994. occurs, the target shall continue to execute the FORMAT UNIT command.  The
  995. target shall return CHECK CONDITION status at the completion of the FORMAT
  996. UNIT command.  The sense key shall be set to RECOVERED ERROR and the
  997. additional sense code shall be set to to either DEFECT LIST NOT FOUND if
  998. condition one occurred, or DEFECT LIST ERROR if condition two occurred.
  999.  
  1000. A STPF bit of one indicates that, if one or both of the above conditions
  1001. occurs, the target shall terminate the FORMAT UNIT command with CHECK
  1002. CONDITION status.  The sense key shall be set to MEDIUM ERROR and the
  1003. additional sense code shall be set to to either DEFECT LIST NOT FOUND if
  1004. condition one occurred, or DEFECT LIST ERROR if condition two occurred.
  1005.  
  1006. IMPLEMENTORS NOTE: The use of the FmtData bit, the CmpLst bit, and the defect
  1007. header allow the initiator to control the source of the defect lists used by
  1008. the FORMAT UNIT command. Setting the defect list length to zero allows the
  1009. initiator to control the use of Plist and Clist without having to specify a
  1010. Dlist.
  1011.  
  1012. Table 8-5 defines the implementation requirements for the FORMAT UNIT command.
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036. SCSI-2 draft proposed American National Standard        8-17      Revision 10c17
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044. Direct-Access Devices                                                   3/9/90
  1045.  
  1046.  
  1047.       Table 8-5: FORMAT UNIT Defect Descriptor Format and Requirements
  1048.  
  1049. ==============================================================================
  1050. FmtData
  1051. | CmpLst
  1052. | |  Defect       Defect
  1053. | |  List         List    Command
  1054. | |  Format       Length  Type       Comments
  1055. - -  ------       ------  ---------
  1056. ------------------------------------------
  1057. 0 0   000b         N/A    Mandatory  Target-defined use of defect sources.
  1058. ------------------------------------------------------------------------------
  1059. BLOCK FORMAT:
  1060.  
  1061. 1 0   000b         Zero   Mandatory  (1),(3)
  1062.  
  1063. 1 1   000b         Zero   Mandatory  (1),(4)
  1064.  
  1065. 1 0   000b          >0    Optional   (2),(3)
  1066.  
  1067. 1 1   000b          >0    Optional   (2),(4)
  1068. ------------------------------------------------------------------------------
  1069. BYTES FROM INDEX FORMAT:
  1070.  
  1071. 1 0   100b         Zero   Optional   (1),(3)
  1072.  
  1073. 1 1   100b         Zero   Optional   (1),(4)
  1074.  
  1075. 1 0   100b          >0    Optional   (2),(3)
  1076.  
  1077. 1 1   100b          >0    Optional   (2),(4)
  1078. ------------------------------------------------------------------------------
  1079. PHYSICAL SECTOR FORMAT:
  1080.  
  1081. 1 0   101b         Zero   Optional   (1),(3)
  1082.  
  1083. 1 1   101b         Zero   Optional   (1),(4)
  1084.  
  1085. 1 0   101b          >0    Optional   (2),(3)
  1086.  
  1087. 1 1   101b          >0    Optional   (2),(4)
  1088. ------------------------------------------------------------------------------
  1089. 1 0   110b                Vendor-Specific
  1090. 1 1   110b                Vendor-Specific
  1091.  
  1092. All other codes           Reserved
  1093.  
  1094. NOTE: All options described above cause a new Glist to be created during the
  1095. execution of the FORMAT UNIT command as described in the text above.
  1096.  
  1097. SCSI-2 draft proposed American National Standard        8-18      Revision 10c18
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105. Direct-Access Devices                                                   3/9/90
  1106.  
  1107.  
  1108. ==============================================================================
  1109. = .aw on
  1110.  
  1111. NOTES:
  1112. (1) No Dlist is transferred to the target during the DATA OUT phase.
  1113. (2) A Dlist is transferred to the target during the DATA OUT phase. Add the
  1114. Dlist defects to the new Glist.
  1115. (3) Use the existing Glist as a defect source.  Add existing Glist defects to
  1116. the new Glist.
  1117. (4) Discard the existing Glist. Do not add existing Glist defects to the new
  1118. Glist.
  1119.  
  1120. A disable saving parameters (DSP) bit of one, specifies that the target shall
  1121. not save the MODE SELECT savable parameters to non-volatile memory during the
  1122. format operation.  A DSP bit of zero specifies that the target shall save all
  1123. the MODE SELECT savable parameters for all initiators to non- volatile memory
  1124. during the format operation.
  1125.  
  1126. An immediate (Immed) bit of zero indicates that status shall be returned after
  1127. the format operation has completed.  An Immed bit value of one indicates that
  1128. the target shall return status as soon as the command descriptor block has
  1129. been validated, and the entire defect list has been transferred.
  1130.  
  1131. The defect list length field in the defect list header specifies the total
  1132. length in bytes of the defect descriptors that follow and does not include the
  1133. initialization pattern descriptor or initialization pattern, if any.  The
  1134. length of the defect descriptors varies with the format of the defect list.
  1135. The three formats for the defect descriptor(s) field in the defect lists are
  1136. shown in Tables 8-6, 8-7, and 8-8.  In Table 8-6, the defect list length is
  1137. equal to four times the number of defect descriptors.  In Tables 8-7 and 8-8,
  1138. the defect list length is equal to eight times the number of defect
  1139. descriptors.
  1140.  
  1141. 8.2.1.1. Defect List Formats
  1142. This section describes the defect list formats used in the FORMAT UNIT, READ
  1143. DEFECT DATA and translate page of the SEND DIAGNOSTIC and RECEIVE DIAGNOSTIC
  1144. RESULTS commands.
  1145.  
  1146. IMPLEMENTORS NOTE:  The selected reporting format must account for variables
  1147. which can impact the information in the returned.  For example, the specific
  1148. location of a defect, while constant in angular and radial location on the
  1149. device, may change in reported location a format operation with different
  1150. geometry parameters is performed.  It is the responsibility of the initiator
  1151. to use a defect list format appropriate for the intended operation with the
  1152. current or future geometry parameters.  If the target is able to detect that
  1153. the selected defect list format would provide inconsistent results, the target
  1154. may return CHECK CONDITION status.
  1155.  
  1156.                  Table 8-6: Defect Descriptor - Block Format
  1157.  
  1158. SCSI-2 draft proposed American National Standard        8-19      Revision 10c19
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166. Direct-Access Devices                                                   3/9/90
  1167.  
  1168.  
  1169. ==============================================================================
  1170. Byte |                        Defect Descriptor                              |
  1171. ==============================================================================
  1172.  0   | (MSB)                                                                 |
  1173. - - -|- -                     Defective Block Address                     - -|
  1174.  3   |                                                                 (LSB) |
  1175. ==============================================================================
  1176.  
  1177. Each block format defect descriptor specifies a four-byte defective block
  1178. address that contains the defect.  The defect descriptors should be in
  1179. ascending order.  More than one physical or logical block may be affected by
  1180. each defect descriptor.
  1181.  
  1182. A target may return CHECK CONDITION if the defect descriptors are not in
  1183. ascending order.
  1184.  
  1185.  
  1186.            Table 8-7: Defect Descriptor - Bytes From Index Format
  1187.  
  1188. ==============================================================================
  1189. Byte |                        Defect Descriptor                              |
  1190. ==============================================================================
  1191.  0   | (MSB)                                                                 |
  1192. - - -|- -                        Cylinder Number of Defect                - -|
  1193.  2   |                                                                 (LSB) |
  1194. -----|-----------------------------------------------------------------------|
  1195.  3   |                           Head Number of Defect                       |
  1196. -----|-----------------------------------------------------------------------|
  1197.  4   | (MSB)                                                                 |
  1198. - - -|- -                        Defect Bytes from Index                  - -|
  1199.  7   |                                                                 (LSB) |
  1200. ==============================================================================
  1201.  
  1202.  
  1203. Each bytes from index defect descriptor specifies the location of a defect
  1204. which is no more than eight-bytes in length.  Each descriptor is comprised of
  1205. the cylinder number of defect, the head number of defect, and the defect bytes
  1206. from index to the defect.  The defect descriptors shall be in ascending order.
  1207. The cylinder number of defect is the most significant part of the address and
  1208. the defect bytes from index is the least significant part of the address. More
  1209. than one physical or logical block may be affected by each defect.
  1210.  
  1211. A defect bytes from index of FFFFFFFFh indicates that the entire track shall
  1212. be considered defective.
  1213.  
  1214.             Table 8-8: Defect Descriptor - Physical Sector Format
  1215.  
  1216.  
  1217.  
  1218.  
  1219. SCSI-2 draft proposed American National Standard        8-20      Revision 10c20
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227. Direct-Access Devices                                                   3/9/90
  1228.  
  1229.  
  1230. ==============================================================================
  1231. Byte |                        Defect Descriptor                              |
  1232. ==============================================================================
  1233.  0   | (MSB)                                                                 |
  1234. - - -|- -                        Cylinder Number of Defect                - -|
  1235.  2   |                                                                 (LSB) |
  1236. -----|-----------------------------------------------------------------------|
  1237.  3   |                           Head Number of Defect                       |
  1238. -----|-----------------------------------------------------------------------|
  1239.  4   | (MSB)                                                                 |
  1240. - - -|- -                        Defective Sector Number                  - -|
  1241.  7   |                                                                 (LSB) |
  1242. ==============================================================================
  1243.  
  1244.  
  1245. Each physical sector defect descriptor specifies the location of a defect that
  1246. is the length of a sector.  Each descriptor is comprised of a cylinder number
  1247. of defect, the head number of defect, and the defective sector number.  The
  1248. defect descriptors shall be in ascending order.  The cylinder number of defect
  1249. is the most significant part of the address and the defective sector number is
  1250. the least significant part of the address.  More than one block may be
  1251. affected by each defect descriptor.
  1252.  
  1253. A defective sector number of FFFFFFFFh indicates that the entire track shall
  1254. be considered defective.
  1255.  
  1256. 8.2.1.2. Initialization Pattern Option
  1257. The initialization pattern option specifies that the logical blocks contain
  1258. the specified initialization pattern.  The initialization pattern descriptor
  1259. (Table 8-9) is sent to the target as part of the FORMAT UNIT parameter list.
  1260.  
  1261.                   Table 8-9: Initialization Pattern Descriptor
  1262.  
  1263. ==============================================================================
  1264.  0   |   IP Modifier   |                    Reserved                         |
  1265. -----|-----------------------------------------------------------------------|
  1266.  1   |                           Pattern Type                                |
  1267. -----|-----------------------------------------------------------------------|
  1268.  2   | (MSB)                                                                 |
  1269. -----|---                Initialization Pattern Length                    ---|
  1270.  3   |                                                                 (LSB) |
  1271. -----|-----------------------------------------------------------------------|
  1272.  0 - |                   Initialization Pattern                              |
  1273.   n  |                                                                       |
  1274. ==============================================================================
  1275.  
  1276.  
  1277. IMPLEMENTORS NOTE:  The initialization pattern option is not intended for
  1278. media analysis or certification.  This option may only initialize the
  1279.  
  1280. SCSI-2 draft proposed American National Standard        8-21      Revision 10c21
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288. Direct-Access Devices                                                   3/9/90
  1289.  
  1290. initiator accessible area of the media to the specified pattern and may not
  1291. write to any initiator inaccessible areas of the disk.
  1292.  
  1293. An initialization pattern (IP) bit of one indicates that an initialization
  1294. pattern descriptor is included in the FORMAT UNIT parameter list immediately
  1295. following the defect list header.  An IP bit of zero indicates that an
  1296. initialization pattern descriptor is not included and that the target shall
  1297. use its default initialization pattern.
  1298.  
  1299. The IP modifier field specifies the type and location of a header that
  1300. modifies the initialization pattern (Table 8-10).
  1301.  
  1302.                  Table 8-10: Initialization Pattern Modifier
  1303.  
  1304. ==============================================================================
  1305.  IP Modifier    Description
  1306. ------------------------------------------------------------------------------
  1307. 0     0        No header. The target shall not modify the the initialization
  1308. pattern.
  1309. 0     1        The target shall overwrite the initialization pattern to write
  1310. the logical block address in the first four bytes of the logical block.  The
  1311. logical block address shall be written with the most significant byte first.
  1312. 1     0        The target shall overwrite the initialization pattern to write
  1313. the logical block address in the first four bytes of each physical block
  1314. contained within the logical block.  The lowest numbered logical block or part
  1315. thereof that occurs within the physical block is used.  The logical block
  1316. address shall be written with the most significant byte first.
  1317. 1     1        Reserved.
  1318. ==============================================================================
  1319.  
  1320.  
  1321. The initialization pattern type field indicates the type of pattern the target
  1322. shall use to initialize each logical block within the initiator accessible
  1323. portion of the medium (Table 8-11).  All bytes within a logical block shall be
  1324. written with the initialization pattern.  The initialization pattern is
  1325. modified by the IP modifier field as described above in Table 8-10.
  1326.  
  1327.                    Table 8-11: Initialization Pattern Type
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341. SCSI-2 draft proposed American National Standard        8-22      Revision 10c22
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349. Direct-Access Devices                                                   3/9/90
  1350.  
  1351.  
  1352. ==============================================================================
  1353. Pattern Type  Note  Description
  1354. ------------------------------------------------------------------------------
  1355. 00h      (1)   Use default pattern
  1356. 01h      (2)   Repeat the initialization pattern as required to fill the
  1357. logical block
  1358. 02-7Fh   none  Reserved
  1359. 80-FFh   none  Vendor-specific
  1360. ==============================================================================
  1361.  
  1362.  
  1363. NOTES:
  1364. (1)  If the initialization pattern length is not zero the target shall
  1365. terminate the command with CHECK CONDITION status.  The sense key shall be set
  1366. to ILLEGAL REQUEST and the additional sense code shall be set to INVALID FIELD
  1367. IN PARAMETER LIST.
  1368. (2)  If the initialization pattern length is zero the target shall  terminate
  1369. the command with CHECK CONDITION status.  The sense key shall be set to
  1370. ILLEGAL REQUEST and the additional sense code shall be set to INVALID FIELD IN
  1371. PARAMETER LIST.
  1372.  
  1373. The initialization pattern length field indicates the number of bytes
  1374. contained in the initialization pattern.  If the length exceeds the current
  1375. logical block size the target shall terminate the command with CHECK CONDITION
  1376. status.  The sense key shall be set to ILLEGAL REQUEST and the additional
  1377. sense code shall be set to INVALID FIELD IN PARAMETER LIST.  The pattern is
  1378. modified by the IP modifier field.
  1379.  
  1380.  
  1381. 8.2.2. LOCK UNLOCK CACHE Command
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. SCSI-2 draft proposed American National Standard        8-23      Revision 10c23
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410. Direct-Access Devices                                                   3/9/90
  1411.  
  1412.  
  1413.  
  1414.                     Table 8-12: LOCK UNLOCK CACHE Command
  1415.  
  1416. ==============================================================================
  1417.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1418. Byte |        |        |        |        |        |        |        |        |
  1419. ==============================================================================
  1420.  0   |                           Operation Code (36h)                        |
  1421. -----|-----------------------------------------------------------------------|
  1422.  1   | Logical Unit Number      |         Reserved         |  Lock  | RelAdr |
  1423. -----|-----------------------------------------------------------------------|
  1424.  2   | (MSB)                                                                 |
  1425. - - -|- -                        Logical Block Address                    - -|
  1426.  5   |                                                                 (LSB) |
  1427. -----|-----------------------------------------------------------------------|
  1428.  6   |                           Reserved                                    |
  1429. -----|-----------------------------------------------------------------------|
  1430.  7   | (MSB)                                                                 |
  1431. -----|---                        Number of Blocks                         ---|
  1432.  8   |                                                                 (LSB) |
  1433. -----|-----------------------------------------------------------------------|
  1434.  9   |                           Control                                     |
  1435. ==============================================================================
  1436.  
  1437.  
  1438. The LOCK UNLOCK CACHE command (Table 8-12) requests that the target disallow
  1439. or allow logical blocks within the specified range to be removed from the
  1440. cache memory by the target's cache replacement algorithm.  Locked logical
  1441. blocks may be written to the medium when modified, but a copy of the modified
  1442. logical block shall remain in the cache memory.
  1443.  
  1444. A lock bit of one indicates that any logical block in the specified range that
  1445. is currently present in the cache memory shall be locked into cache memory.
  1446. Only logical blocks that are already present in the cache memory are actually
  1447. locked.  A lock bit of zero indicates that all logical blocks in the specified
  1448. range that are currently locked into the cache memory shall be unlocked, but
  1449. not necessarily removed.
  1450.  
  1451. A relative address (RelAdr) bit of one indicates that the logical block
  1452. address field is a two's complement displacement.  This negative or positive
  1453. displacement is to be added to the logical block address last accessed on the
  1454. logical unit to form the logical block address for this command.  This feature
  1455. is only available when linking commands.  The feature requires that a previous
  1456. command in the linked group have accessed a block of data on the logical unit.
  1457.  
  1458. A RelAdr bit of zero indicates that the logical block address field specifies
  1459. the first logical block of the range of logical blocks to be operated on by
  1460. this command.
  1461.  
  1462.  
  1463. SCSI-2 draft proposed American National Standard        8-24      Revision 10c24
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471. Direct-Access Devices                                                   3/9/90
  1472.  
  1473. The number of blocks specifies the total number of contiguous logical blocks
  1474. within the range.  A number of blocks field of zero indicates that all
  1475. remaining logical blocks on the logical unit shall be within the range.
  1476.  
  1477. Multiple locks may be in effect from more than one initiator.  Locks from
  1478. different initiators may overlap.  An unlock of an overlapped area does not
  1479. release the lock of another initiator.
  1480.  
  1481. 8.2.3. PRE-FETCH Command
  1482.  
  1483.  
  1484.                         Table 8-13: PRE-FETCH Command
  1485.  
  1486. ==============================================================================
  1487.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1488. Byte |        |        |        |        |        |        |        |        |
  1489. ==============================================================================
  1490.  0   |                           Operation Code (34h)                        |
  1491. -----|-----------------------------------------------------------------------|
  1492.  1   | Logical Unit Number      |         Reserved         | Immed  | RelAdr |
  1493. -----|-----------------------------------------------------------------------|
  1494.  2   | (MSB)                                                                 |
  1495. - - -|- -                        Logical Block Address                    - -|
  1496.  5   |                                                                 (LSB) |
  1497. -----|-----------------------------------------------------------------------|
  1498.  6   |                           Reserved                                    |
  1499. -----|-----------------------------------------------------------------------|
  1500.  7   | (MSB)                                                                 |
  1501. -----|---                        Transfer Length                             |
  1502.  8   |                                                                 (LSB) |
  1503. -----|-----------------------------------------------------------------------|
  1504.  9   |                           Control                                     |
  1505. ==============================================================================
  1506.  
  1507.  
  1508. The PRE-FETCH command (Table 8-13) requests the target to transfer the
  1509. specified logical blocks to the cache memory.  No data shall be transferred to
  1510. the initiator.
  1511.  
  1512. An immediate (Immed) bit of one indicates that status shall be returned as
  1513. soon as the command descriptor block has been validated.  An Immed bit of zero
  1514. indicates that status shall be returned after the operation is complete.
  1515.  
  1516. See 8.2.2 for a definition of the RelAdr bit and the logical block address
  1517. field.
  1518.  
  1519. The transfer length field specifies the number of contiguous logical blocks of
  1520.  
  1521.  
  1522.  
  1523.  
  1524. SCSI-2 draft proposed American National Standard        8-25      Revision 10c25
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532. Direct-Access Devices                                                   3/9/90
  1533.  
  1534. data that shall be transferred to the target's cache memory.  A transfer
  1535. length of zero indicates that the contiguous logical blocks up to and
  1536. including the last logical block of the logical unit shall be transferred to
  1537. the target's cache memory.  Any other value indicates the number of logical
  1538. blocks that shall be transferred.  The target may elect to not transfer
  1539. logical blocks that already are contained in the cache memory.
  1540.  
  1541. If the Immed bit is zero and the specified logical blocks were successfully
  1542. transferred to the cache memory the target shall return CONDITION MET status.
  1543. If the link bit (see 6.2.7) is one the target shall return INTERMEDIATE-
  1544. CONDITION MET status.
  1545.  
  1546. If Immed is one and the unlocked cache memory has sufficient capacity to
  1547. accept all of the specified logical blocks the target shall return CONDITION
  1548. MET status.  If the link bit (see 6.2.7) is one the target shall return
  1549. INTERMEDIATE-CONDITION MET status.
  1550.  
  1551. If Immed is one and the unlocked cache memory does not have sufficient
  1552. capacity to accept all of the specified logical blocks the target shall return
  1553. GOOD status.  The target shall transfer to cache memory as many logical blocks
  1554. as will fit.  If the link bit (see 6.2.7) is one the target shall return
  1555. INTERMEDIATE status.
  1556.  
  1557. 8.2.4. PREVENT ALLOW MEDIUM REMOVAL Command
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585. SCSI-2 draft proposed American National Standard        8-26      Revision 10c26
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.  
  1593. Direct-Access Devices                                                   3/9/90
  1594.  
  1595.  
  1596.  
  1597.                Table 8-14: PREVENT ALLOW MEDIUM REMOVAL Command
  1598.  
  1599. ==============================================================================
  1600.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1601. Byte |        |        |        |        |        |        |        |        |
  1602. ==============================================================================
  1603.  0   |                           Operation Code (1Eh)                        |
  1604. -----|-----------------------------------------------------------------------|
  1605.  1   | Logical Unit Number      |                  Reserved                  |
  1606. -----|-----------------------------------------------------------------------|
  1607.  2   |                           Reserved                                    |
  1608. -----|-----------------------------------------------------------------------|
  1609.  3   |                           Reserved                                    |
  1610. -----|-----------------------------------------------------------------------|
  1611.  4   |                           Reserved                           | Prevent|
  1612. -----|-----------------------------------------------------------------------|
  1613.  5   |                           Control                                     |
  1614. ==============================================================================
  1615.  
  1616.  
  1617. The PREVENT ALLOW MEDIUM REMOVAL command (Table 8-14) requests that the target
  1618. enable or disable the removal of the medium in the logical unit.  This
  1619. mechanism is independent of device reservations and the target shall not allow
  1620. medium removal if any initiator currently has medium removal prevented.
  1621.  
  1622. The prevention of medium removal shall begin when any initiator issues a
  1623. PREVENT ALLOW MEDIUM REMOVAL command with a prevent bit of one (medium removal
  1624. prevented).  The prevention of medium removal for the logical unit shall
  1625. terminate:
  1626. (1) after all initiators that have medium removal prevented issue PREVENT
  1627. ALLOW MEDIUM REMOVAL commands with a prevent bit of zero, and the target has
  1628. successfully performed a synchronize cache operation.
  1629. (2) upon the receipt of a BUS DEVICE RESET message from any initiator, or
  1630. (3) upon a hard RESET condition.
  1631.  
  1632. While a prevention of medium removal condition is in effect the target shall
  1633. inhibit mechanisms that normally allow removal of the medium by an operator.
  1634.  
  1635. 8.2.5. READ(6) Command
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646. SCSI-2 draft proposed American National Standard        8-27      Revision 10c27
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654. Direct-Access Devices                                                   3/9/90
  1655.  
  1656.  
  1657.  
  1658.                          Table 8-15: READ(6) Command
  1659.  
  1660. ==============================================================================
  1661.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1662. Byte |        |        |        |        |        |        |        |        |
  1663. ==============================================================================
  1664.  0   |                           Operation Code (08h)                        |
  1665. -----|-----------------------------------------------------------------------|
  1666.  1   | Logical Unit Number      | (MSB)                                      |
  1667. -----|------------------------------                                      ---|
  1668.  2   |                           Logical Block Address                       |
  1669. -----|---                                                                 ---|
  1670.  3   |                                                                 (LSB) |
  1671. -----|-----------------------------------------------------------------------|
  1672.  4   |                           Transfer Length                             |
  1673. -----|-----------------------------------------------------------------------|
  1674.  5   |                           Control                                     |
  1675. ==============================================================================
  1676.  
  1677.  
  1678. The READ(6) command (Table 8-15) requests that the target transfer data to the
  1679. initiator.  The most recent data value written in the addressed logical block
  1680. shall be returned.
  1681.  
  1682. The cache control bits (see 8.2.6) are not provided for this command.  Targets
  1683. with cache memory may have values for the cache control bits which may affect
  1684. the READ(6) command, however no default value is defined by this standard.  If
  1685. explicit control is required, the READ(10) command should be used.
  1686.  
  1687. The logical block address field specifies the logical block at which the read
  1688. operation shall begin.
  1689.  
  1690. The transfer length field specifies the number of contiguous logical blocks of
  1691. data to transferred.  A transfer length of zero indicates that 256 logical
  1692. blocks shall be transferred.  Any other value indicates the number of logical
  1693. blocks that shall be transferred.
  1694.  
  1695.  
  1696. 8.2.6. READ(10) Command
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707. SCSI-2 draft proposed American National Standard        8-28      Revision 10c28
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715. Direct-Access Devices                                                   3/9/90
  1716.  
  1717.  
  1718.  
  1719.                          Table 8-16: READ(10) Command
  1720.  
  1721. ==============================================================================
  1722.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1723. Byte |        |        |        |        |        |        |        |        |
  1724. ==============================================================================
  1725.  0   |                           Operation Code (28h)                        |
  1726. -----|-----------------------------------------------------------------------|
  1727.  1   |   Logical Unit Number    |   DPO  |   FUA  |     Reserved    | RelAdr |
  1728. -----|-----------------------------------------------------------------------|
  1729.  2   | (MSB)                                                                 |
  1730. - - -|- -                        Logical Block Address                    - -|
  1731.  5   |                                                                 (LSB) |
  1732. -----|-----------------------------------------------------------------------|
  1733.  6   |                           Reserved                                    |
  1734. -----|-----------------------------------------------------------------------|
  1735.  7   | (MSB)                                                                 |
  1736. -----|---                        Transfer Length                             |
  1737.  8   |                                                                 (LSB) |
  1738. -----|-----------------------------------------------------------------------|
  1739.  9   |                           Control                                     |
  1740. ==============================================================================
  1741.  
  1742.  
  1743. The READ(10) command (Table 8-16) requests that the target transfer data to
  1744. the initiator.  The most recent data value written in the addressed logical
  1745. block shall be returned.
  1746.  
  1747. A disable page out (DPO) bit of one indicates that the target shall assign the
  1748. logical blocks accessed by this command the lowest priority for being fetched
  1749. into or retained by the cache.  A DPO bit of one overrides any retention
  1750. priority specified in the cache page (see 8.3.3.1).  A DPO bit of zero
  1751. indicates the priority shall be determined by the retention priority fields in
  1752. the cache page.  All other aspects of the algorithm implementing the cache
  1753. memory replacement strategy are not defined by this standard.
  1754.  
  1755. IMPLEMENTORS NOTE:  The DPO bit is used to control replacement of logical
  1756. blocks in the cache memory when the host has information on the future usage
  1757. of the logical blocks.  If the the DPO bit is set to one, the host knows the
  1758. logical blocks accessed by the command are not likely to be accessed again in
  1759. the near future and should not be put in the cache memory nor retained by the
  1760. cache memory.  If the DPO bit is zero, the host expects that logical blocks
  1761. accessed by this command are likely to be accessed again in the near future.
  1762.  
  1763. A force unit access (FUA) bit of one indicates that the target shall access
  1764.  
  1765.  
  1766.  
  1767.  
  1768. SCSI-2 draft proposed American National Standard        8-29      Revision 10c29
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776. Direct-Access Devices                                                   3/9/90
  1777.  
  1778. the media in performing the command prior to returning GOOD status.   Read
  1779. commands shall access the specified logical blocks from the media (i.e.,  the
  1780. data is not directly retrieved from the cache).  In the case where the cache
  1781. contains a more recent version of a logical block than the media, the logical
  1782. block shall first be written to the media.  Write commands shall not return
  1783. GOOD status until the logical blocks have actually been written on the media
  1784. (i.e.,  the data is not write cached).
  1785.  
  1786. An FUA bit of zero indicates that the target may satisfy the command by
  1787. accessing the cache memory.  For read operations, any logical blocks that are
  1788. contained in the cache memory may be transferred to the initiator directly
  1789. from the cache memory.  For write operations, logical blocks may be
  1790. transferred directly to the cache memory.  GOOD status may be returned to the
  1791. initiator prior to writing the logical blocks to the medium.  Any errors which
  1792. occur after the GOOD status is returned is a deferred error and information
  1793. regarding the error is not reported until a subsequent command.
  1794.  
  1795. See 8.2.2 for a definition of the RelAdr bit and the logical block address
  1796. field.
  1797.  
  1798. The transfer length field specifies the number of contiguous logical blocks of
  1799. data that shall be transferred.  A transfer length of zero indicates that no
  1800. logical blocks shall be transferred.  This condition shall not be considered
  1801. an error.  Any other value indicates the number of logical blocks that shall
  1802. be transferred.
  1803.  
  1804. 8.2.7. READ CAPACITY Command
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829. SCSI-2 draft proposed American National Standard        8-30      Revision 10c30
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837. Direct-Access Devices                                                   3/9/90
  1838.  
  1839.  
  1840.  
  1841.                       Table 8-17: READ CAPACITY Command
  1842.  
  1843. ==============================================================================
  1844.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1845. Byte |        |        |        |        |        |        |        |        |
  1846. ==============================================================================
  1847.  0   |                           Operation Code (25h)                        |
  1848. -----|-----------------------------------------------------------------------|
  1849.  1   | Logical Unit Number      |             Reserved              | RelAdr |
  1850. -----|-----------------------------------------------------------------------|
  1851.  2   | (MSB)                                                                 |
  1852. - - -|- -                        Logical Block Address                    - -|
  1853.  5   |                                                                 (LSB) |
  1854. -----|-----------------------------------------------------------------------|
  1855.  6   |                           Reserved                                    |
  1856. -----|-----------------------------------------------------------------------|
  1857.  7   |                           Reserved                                    |
  1858. -----|-----------------------------------------------------------------------|
  1859.  8   |                           Reserved                           |  PMI   |
  1860. -----|-----------------------------------------------------------------------|
  1861.  9   |                           Control                                     |
  1862. ==============================================================================
  1863.  
  1864.  
  1865. The READ CAPACITY command (Table 8-17) provides a means for the initiator to
  1866. request information regarding the capacity of the logical unit.
  1867.  
  1868. See 8.2.2 for a definition of the RelAdr bit and the logical block address
  1869. field.
  1870.  
  1871. The logical block address shall be zero if the PMI bit is zero.  If the PMI
  1872. bit is zero and the logical block address is not zero, the target shall return
  1873. a CHECK CONDITION status, the sense key shall be set to ILLEGAL REQUEST and
  1874. the additional sense code set to ILLEGAL FIELD IN CDB.
  1875.  
  1876. A partial medium indicator (PMI) bit of zero indicates that the returned
  1877. logical block address and the block length in bytes are that of the last
  1878. logical block of the logical unit.
  1879.  
  1880. A PMI bit of one indicates that the returned logical block address and block
  1881. length in bytes are that of the logical block address after which a
  1882. substantial delay in data transfer will be encountered.  This returned logical
  1883. block address shall be greater than or equal to the logical block address
  1884. specified by the RelAdr and logical block address fields in the command
  1885. descriptor block.
  1886.  
  1887. IMPLEMENTORS NOTE:  This function is intended to assist storage management
  1888. software in determining whether there is sufficient space on the current
  1889.  
  1890. SCSI-2 draft proposed American National Standard        8-31      Revision 10c31
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898. Direct-Access Devices                                                   3/9/90
  1899.  
  1900. track, cylinder, etc. to contain a frequently accessed data structure such as
  1901. a file directory or file index without incurring an access delay.
  1902.  
  1903. The READ CAPACITY data (Table 8-18) shall be sent during the DATA IN phase of
  1904. the command.
  1905.  
  1906.                         Table 8-18: READ CAPACITY Data
  1907.  
  1908. ==============================================================================
  1909. Byte |                        Description                                    |
  1910. ==============================================================================
  1911.  0   | (MSB)                                                                 |
  1912. - - -|- -                        Returned Logical Block Address           - -|
  1913.  3   |                                                                 (LSB) |
  1914. -----|-----------------------------------------------------------------------|
  1915.  4   | (MSB)                                                                 |
  1916. - - -|- -                        Block Length In Bytes                    - -|
  1917.  7   |                                                                 (LSB) |
  1918. ==============================================================================
  1919.  
  1920.  
  1921. 8.2.8. READ DEFECT DATA Command
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951. SCSI-2 draft proposed American National Standard        8-32      Revision 10c32
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959. Direct-Access Devices                                                   3/9/90
  1960.  
  1961.  
  1962.  
  1963.                      Table 8-19: READ DEFECT DATA Command
  1964.  
  1965. ==============================================================================
  1966.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  1967. Byte |        |        |        |        |        |        |        |        |
  1968. ==============================================================================
  1969.  0   |                           Operation Code (37h)                        |
  1970. -----|-----------------------------------------------------------------------|
  1971.  1   | Logical Unit Number      |                  Reserved                  |
  1972. -----|-----------------------------------------------------------------------|
  1973.  2   |          Reserved        | PList  | GList  | Defect List Format       |
  1974. -----|-----------------------------------------------------------------------|
  1975.  3   |                                                                       |
  1976. - - -|- -                        Reserved                                 - -|
  1977.  6   |                                                                       |
  1978. -----|-----------------------------------------------------------------------|
  1979.  7   | (MSB)                                                                 |
  1980. -----|---                        Allocation Length                           |
  1981.  8   |                                                                 (LSB) |
  1982. -----|-----------------------------------------------------------------------|
  1983.  9   |                           Control                                     |
  1984. ==============================================================================
  1985.  
  1986.  
  1987. The READ DEFECT DATA command (Table 8-19) requests that the target transfer
  1988. the medium defect data to the initiator.  If the target is unable to access
  1989. any medium defect data it shall terminate the command with CHECK CONDITION
  1990. status.  The sense key shall be set to either MEDIUM ERROR if a medium error
  1991. occurred or NO SENSE if the list does not exist and the additional sense code
  1992. shall be set to DEFECT LIST NOT FOUND.
  1993.  
  1994. IMPLEMENTORS NOTE:  Some targets may not be able to return medium defect data
  1995. until after a FORMAT UNIT command has been successfully completed.
  1996.  
  1997. A primary defect list (PList) bit of one requests that the target return the
  1998. primary list of defects.  A PList bit of zero requests that the target not
  1999. return the primary list of defects.
  2000.  
  2001. A grown defect list (GList) bit of one requests that the target return the
  2002. grown defect list.  A GList bit of zero requests that the target not return
  2003. the grown defect list.
  2004.  
  2005. A PList bit of one and a GList bit of one requests that the target return the
  2006. primary and the grown defect lists.  The  order in which the lists are
  2007. returned is vendor-specific.  Whether the lists are merged or not is vendor-
  2008. specific.
  2009.  
  2010. A PList bit of zero and a GList bit of zero requests that the target return
  2011.  
  2012. SCSI-2 draft proposed American National Standard        8-33      Revision 10c33
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020. Direct-Access Devices                                                   3/9/90
  2021.  
  2022. only the defect list header.
  2023.  
  2024. The defect list format field is used by the initiator to indicate the
  2025. preferred format for the defect list.  This field is intended for those
  2026. targets capable of returning more than one format, as defined in the FORMAT
  2027. UNIT command (see 8.2.1.2, defect list format).  A target unable to return the
  2028. requested format shall return the defect list in its default format (see the
  2029. defect list format field in the defect list header below).
  2030.  
  2031. If the requested defect list format and the returned defect list format are
  2032. not the same the target shall transfer the defect data and then terminate the
  2033. command with CHECK CONDITION status.  The sense key shall be set to RECOVERED
  2034. ERROR and the additional sense code shall be set to DEFECT LIST NOT FOUND.
  2035.  
  2036. The READ DEFECT DATA defect list (Table 8-20) contains a four-byte header,
  2037. followed by zero or more defect descriptors.
  2038.  
  2039.                    Table 8-20: READ DEFECT DATA Defect List
  2040.  
  2041. ==============================================================================
  2042.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2043. Byte |        |        |        |        |        |        |        |        |
  2044. ==============================================================================
  2045.  0   |                           Reserved                                    |
  2046. -----|-----------------------------------------------------------------------|
  2047.  1   |          Reserved        | PList  | GList  | Defect List Format       |
  2048. -----|-----------------------------------------------------------------------|
  2049.  2   | (MSB)                                                                 |
  2050. -----|---                        Defect List Length                          |
  2051.  3   |                                                                 (LSB) |
  2052. ==============================================================================
  2053.                               Defect Descriptors
  2054. ==============================================================================
  2055.  0-n |                                                                       |
  2056. ==============================================================================
  2057.  
  2058.  
  2059. A PList bit of one indicates that the data returned contains the primary
  2060. defect list.  A PList bit of zero indicates that the data returned does not
  2061. contain the primary defect list.
  2062.  
  2063. A GList bit of one indicates that the data returned contains the grown defect
  2064. list.  A GList bit of zero indicates that the data returned does not contain
  2065. the grown defect list.
  2066.  
  2067. The defect list format field indicates the format of the defect descriptors
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073. SCSI-2 draft proposed American National Standard        8-34      Revision 10c34
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081. Direct-Access Devices                                                   3/9/90
  2082.  
  2083. returned by the target.  This field is defined in the FORMAT UNIT command (see
  2084. 8.2.1.2).
  2085.  
  2086. IMPLEMENTORS NOTE:  The use of the block format is not recommended. There is
  2087. no universal model that sensibly defines the meaning of the logical block
  2088. address of a defect.  In the usual case a defect that has been reassigned no
  2089. longer has a logical block address.
  2090.  
  2091. Defect descriptors returned in the block format are vendor-specific.  Defect
  2092. descriptors returned in the physical sector format may or may not include
  2093. defects in areas not accessible to the initiator.  Defect descriptors returned
  2094. in bytes-from-index format shall comprise a complete list of defects.  A
  2095. complete list of defects may include defects in areas not within the capacity
  2096. returned in the READ CAPACITY command.
  2097.  
  2098. The defect list length field specifies the length in bytes of the defect
  2099. descriptors that follow.  The defect list length is equal to four or eight
  2100. times the number of defect descriptors depending on the format of the returned
  2101. descriptors (see Tables 8-8, 8-9 and 8-10 in the FORMAT UNIT command).
  2102.  
  2103. If the allocation length is insufficient to transfer all of the defect
  2104. descriptors, the defect list length shall not be adjusted to reflect the
  2105. truncation.  The target shall not create CHECK CONDITION status.  The
  2106. initiator is responsible for comparing the defect list length and the
  2107. allocation length to ensure that a partial list was not received.
  2108.  
  2109. IMPLEMENTORS NOTE:  The initiator can determine the length of the defect list
  2110. by sending the READ DEFECT DATA command with an allocation length of   four.
  2111. The target will return the defect list header which contains the length of the
  2112. defect list.
  2113.  
  2114. The defect descriptors may or may not be sent in ascending order.  The
  2115. initiator can determine the exact number of defects by dividing the defect
  2116. list length by the length of a single defect descriptor for the returned
  2117. format.
  2118.  
  2119. 8.2.9. READ LONG Command
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134. SCSI-2 draft proposed American National Standard        8-35      Revision 10c35
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142. Direct-Access Devices                                                   3/9/90
  2143.  
  2144.  
  2145.  
  2146.                         Table 8-21: READ LONG Command
  2147.  
  2148. ==============================================================================
  2149.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2150. Byte |        |        |        |        |        |        |        |        |
  2151. ==============================================================================
  2152.  0   |                           Operation Code (3Eh)                        |
  2153. -----|-----------------------------------------------------------------------|
  2154.  1   |  Logical Unit Number      |        Reserved         | CORRCT | RelAdr |
  2155. -----|-----------------------------------------------------------------------|
  2156.  2   | (MSB)                                                                 |
  2157. - - -|- -                        Logical Block Address                    - -|
  2158.  5   |                                                                 (LSB) |
  2159. -----|-----------------------------------------------------------------------|
  2160.  6   |                           Reserved                                    |
  2161. -----|-----------------------------------------------------------------------|
  2162.  7   | (MSB)                                                                 |
  2163. -----|---                        Byte Transfer Length                        |
  2164.  8   |                                                                 (LSB) |
  2165. -----|-----------------------------------------------------------------------|
  2166.  9   |                           Control                                     |
  2167. ==============================================================================
  2168.  
  2169.  
  2170. The READ LONG command (Table 8-21) requests that the target transfer data to
  2171. the initiator.  The data passed during the READ LONG command is implementation
  2172. specific, but shall include the data bytes and the ECC bytes recorded on the
  2173. medium.  The most recent data written in the addressed logical block shall be
  2174. returned.
  2175.  
  2176. IMPLEMENTORS NOTE:  Any other bytes that can be corrected by ECC should be
  2177. included (e.g., data synchronization mark within the area covered by ECC).  It
  2178. is not important for the ECC bytes to be at the end of the data bytes, however
  2179. they should be in the same order as they are on the media.
  2180.  
  2181. A corrected (CORRCT) bit of zero causes a logical block to be read without any
  2182. correction made by the target.  A CORRCT bit of one causes the data to be
  2183. corrected by ECC before being transferred to the initiator.
  2184.  
  2185. See 8.2.2 for a definition of the RelAdr bit and the logical block address
  2186. field.
  2187.  
  2188. The byte transfer length field should exactly specify the number of bytes of
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195. SCSI-2 draft proposed American National Standard        8-36      Revision 10c36
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203. Direct-Access Devices                                                   3/9/90
  2204.  
  2205. data that are available for transfer.  If a non-zero byte transfer length does
  2206. not exactly match the available data length, the target shall terminate the
  2207. command with CHECK CONDITION status, the sense key shall be set to ILLEGAL
  2208. REQUEST and an additional sense code set to INVALID FIELD IN CDB.  The valid
  2209. and ILI bits shall be set to one and the information field shall be set to the
  2210. difference (residue) of the requested length minus the actual length in bytes.
  2211. Negative values shall be indicated by two's complement notation.
  2212.  
  2213. A byte transfer length of zero indicates that no bytes shall be transferred
  2214. and shall not be considered an error.
  2215.  
  2216. 8.2.10. REASSIGN BLOCKS Command
  2217.  
  2218.  
  2219.                      Table 8-22: REASSIGN BLOCKS Command
  2220.  
  2221. ==============================================================================
  2222.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2223. Byte |        |        |        |        |        |        |        |        |
  2224. ==============================================================================
  2225.  0   |                           Operation Code (07h)                        |
  2226. -----|-----------------------------------------------------------------------|
  2227.  1   | Logical Unit Number      |                  Reserved                  |
  2228. -----|-----------------------------------------------------------------------|
  2229.  2   |                           Reserved                                    |
  2230. -----|-----------------------------------------------------------------------|
  2231.  3   |                           Reserved                                    |
  2232. -----|-----------------------------------------------------------------------|
  2233.  4   |                           Reserved                                    |
  2234. -----|-----------------------------------------------------------------------|
  2235.  5   |                           Control                                     |
  2236. ==============================================================================
  2237.  
  2238.  
  2239. The REASSIGN BLOCKS command (Table 8-22) requests the target to reassign the
  2240. defective logical blocks to another area on the medium set aside for this
  2241. purpose.  The target should also record the location of the defective logical
  2242. blocks to the grown defect list if such a list is supported.  More than one
  2243. physical or logical block may be relocated by each defect descriptor sent by
  2244. the initiator.  This command does not alter the contents or location of the
  2245. Plist (see 8.2.1, FORMAT UNIT command).
  2246.  
  2247. The initiator transfers a defect list that contains the logical block
  2248. addresses to be reassigned.  The target shall reassign the physical medium
  2249. used for each logical block address in the list.  The data contained in the
  2250. logical blocks specified in the defect list may be altered, but the data in
  2251. all other logical blocks on the medium shall be preserved.
  2252.  
  2253. IMPLEMENTORS NOTE:  The effect of specifying a logical block to be reassigned
  2254.  
  2255.  
  2256. SCSI-2 draft proposed American National Standard        8-37      Revision 10c37
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264. Direct-Access Devices                                                   3/9/90
  2265.  
  2266. that previously has been reassigned is to reassign the block again.  Over the
  2267. life of the medium, a logical block can be assigned to multiple physical
  2268. addresses until no more spare locations remain on the medium.
  2269.  
  2270. The REASSIGN BLOCKS defect list (Table 8-23) contains a four-byte header
  2271. followed by one or more defect descriptors.  The length of each defect
  2272. descriptor is four bytes.
  2273.  
  2274.                    Table 8-23: REASSIGN BLOCKS Defect List
  2275.  
  2276. ==============================================================================
  2277. Byte |                        Defect List Header                             |
  2278. ==============================================================================
  2279.  0   |                           Reserved                                    |
  2280. -----|-----------------------------------------------------------------------|
  2281.  1   |                           Reserved                                    |
  2282. -----|-----------------------------------------------------------------------|
  2283.  2   | (MSB)                                                                 |
  2284. -----|---                        Defect List Length                       ---|
  2285.  3   |                                                                 (LSB) |
  2286. ==============================================================================
  2287.      |                        Defect Descriptor(s)                           |
  2288. ==============================================================================
  2289.  0   | (MSB)                                                                 |
  2290. - - -|- -                     Defect Logical Block Address                - -|
  2291.  3   |                                                                 (LSB) |
  2292. ==============================================================================
  2293.  
  2294.  
  2295. The defect list length field specifies the total length in bytes of the defect
  2296. descriptors that follow.  The defect list length is equal to four times the
  2297. number of defect descriptors and does not include the defect list header
  2298. length.
  2299.  
  2300. The defect descriptor specifies a four-byte defect logical block address that
  2301. contains the defect.  The defect descriptors shall be in ascending order.
  2302.  
  2303. If the logical unit has insufficient capacity to reassign all of the logical
  2304. blocks specified in the defect descriptors, the command shall terminate with
  2305. CHECK CONDITION status, the sense key shall be set to HARDWARE ERROR and the
  2306. additional sense code set to NO DEFECT SPARE LOCATION AVAILABLE.
  2307.  
  2308. If the logical unit is unable to successfully complete a REASSIGN BLOCKS
  2309. command, the command shall terminate with CHECK CONDITION status with the
  2310. appropriate sense information.  The logical block address of the first defect
  2311. descriptor not reassigned shall be returned in the command-specific
  2312. information field of the sense data.  If information about the first defect
  2313. descriptor not reassigned is not available, or if all the defects have been
  2314. reassigned, this field shall be set to FFFFFFFFh.
  2315.  
  2316.  
  2317. SCSI-2 draft proposed American National Standard        8-38      Revision 10c38
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325. Direct-Access Devices                                                   3/9/90
  2326.  
  2327. If the REASSIGN BLOCKS command failed due to an unexpected unrecoverable read
  2328. error that would cause the loss of data in a block not specified in the defect
  2329. list, the logical block address of the unrecoverable block shall be returned
  2330. in the information field of the sense data and the valid bit shall be set to
  2331. one.
  2332.  
  2333. IMPLEMENTORS NOTE: If the REASSIGN BLOCKS command returns CHECK CONDITION
  2334. status and the sense data command-specific information field contains a valid
  2335. logical block address, the initiator should remove all defect descriptors from
  2336. the defect list prior to the one returned in the command- specific information
  2337. field. If the sense key is MEDIUM ERROR and the valid bit is one (the
  2338. information field contains the valid block address) the initiator should
  2339. insert that new defective logical block address into the defect list and
  2340. reissue the REASSIGN BLOCKS command with the new defect list.  Otherwise, the
  2341. initiator should perform any corrective action indicated by the sense data and
  2342. then reissue the REASSIGN BLOCKS command with the new defect list.
  2343.  
  2344. 8.2.11. RELEASE Command
  2345.  
  2346.  
  2347.                          Table 8-24: RELEASE Command
  2348.  
  2349. ==============================================================================
  2350.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2351. Byte |        |        |        |        |        |        |        |        |
  2352. ==============================================================================
  2353.  0   |                           Operation Code (17h)                        |
  2354. -----|-----------------------------------------------------------------------|
  2355.  1   | Logical Unit Number      | 3rdPty | Third Party Device ID    | Extent |
  2356. -----|-----------------------------------------------------------------------|
  2357.  2   |                           Reservation Identification                  |
  2358. -----|-----------------------------------------------------------------------|
  2359.  3   |                           Reserved                                    |
  2360. -----|-----------------------------------------------------------------------|
  2361.  4   |                           Reserved                                    |
  2362. -----|-----------------------------------------------------------------------|
  2363.  5   |                           Control                                     |
  2364. ==============================================================================
  2365.  
  2366.  
  2367. The RESERVE and RELEASE commands provide the basic mechanism for contention
  2368. resolution in multiple-initiator systems.  The RELEASE command (Table 8-24) is
  2369. used to release a previously reserved logical unit, or, if the extent release
  2370. option is implemented, to release previously reserved extents within a logical
  2371. unit.  It is not an error for an initiator to attempt to release a reservation
  2372. that is not currently valid.  In this case, the target shall return GOOD
  2373. status without altering any other reservation.
  2374.  
  2375. IMPLEMENTORS NOTE: The reservation queuing option in X3.131-1986 has been
  2376. removed from SCSI-2.
  2377.  
  2378. SCSI-2 draft proposed American National Standard        8-39      Revision 10c39
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386. Direct-Access Devices                                                   3/9/90
  2387.  
  2388.  
  2389. 8.2.11.1. Logical Unit Release (Mandatory)
  2390. If the extent bit is zero, this command shall cause the target to terminate
  2391. all non-third-party logical unit and extent reservations that are active from
  2392. the initiator to the specified logical unit.  The reservation ID field in the
  2393. command descriptor block is ignored by the target.
  2394.  
  2395. 8.2.11.2. Extent Release (Optional)
  2396. If the extent bit is one and the extent release option is not implemented,
  2397. then the RELEASE command shall be terminated with CHECK CONDITION status and
  2398. the sense key shall be set to ILLEGAL REQUEST.  This option shall be
  2399. implemented if the extent reservation option (see 8.2.12.2) is implemented.
  2400.  
  2401. If the extent bit is one and the extent release option is implemented, this
  2402. command shall cause any reservation from the requesting initiator with a
  2403. matching reservation identification to be terminated.  Other reservations from
  2404. the requesting initiator shall remain in effect.
  2405.  
  2406. 8.2.11.3. Third-Party Release (Mandatory)
  2407. Third-party release allows an initiator to release a logical unit or extents
  2408. within a logical unit that were previously reserved using third-party
  2409. reservation (see 8.2.12.3).  Third-party release shall be implemented and is
  2410. intended for use in multiple-initiator systems that use the COPY command.
  2411.  
  2412. If the third-party (3rdPty) bit is zero, then a third-party release is not
  2413. requested.  If the 3rdPty bit is one then the target shall release the
  2414. specified logical unit or extents, but only if the reservation was made using
  2415. a third-party reservation by the initiator that is requesting the release for
  2416. the same SCSI device as specified in the third-party device ID field.
  2417.  
  2418. If the 3rdPty bit is one the target shall not modify the mode parameters for
  2419. commands received from the third-party device even if the target implements
  2420. the transfer of mode parameters with a third-party RESERVE command.
  2421.  
  2422. IMPLEMENTORS NOTE:  If a target implements independent storage of mode
  2423. parameters for each initiator, a third-party RESERVE command copies the
  2424. current mode parameters for the initiator that sent the RESERVE command to the
  2425. current mode parameters for the initiator specified as the third-party device
  2426. (usually a copy master device).  A unit attention condition notifies the
  2427. third-party of the changed mode parameters due to the the reservation.  A
  2428. successful third-party RELEASE command  does not return the third-party
  2429. devices' current mode parameters back to their previous values.  The third-
  2430. party device can issue MODE SENSE and MODE SELECT commands to query and modify
  2431. the mode parameters.
  2432.  
  2433. 8.2.12. RESERVE Command
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439. SCSI-2 draft proposed American National Standard        8-40      Revision 10c40
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447. Direct-Access Devices                                                   3/9/90
  2448.  
  2449.  
  2450.  
  2451.                          Table 8-25: RESERVE Command
  2452.  
  2453. ==============================================================================
  2454.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2455. Byte |        |        |        |        |        |        |        |        |
  2456. ==============================================================================
  2457.  0   |                           Operation Code (16h)                        |
  2458. -----|-----------------------------------------------------------------------|
  2459.  1   | Logical Unit Number      | 3rdPty | Third Party Device ID    | Extent |
  2460. -----|-----------------------------------------------------------------------|
  2461.  2   |                           Reservation Identification                  |
  2462. -----|-----------------------------------------------------------------------|
  2463.  3   | (MSB)                                                                 |
  2464. -----|---                        Extent List Length                       ---|
  2465.  4   |                                                                 (LSB) |
  2466. -----|-----------------------------------------------------------------------|
  2467.  5   |                           Control                                     |
  2468. ==============================================================================
  2469.  
  2470.  
  2471. The RESERVE and RELEASE commands provide the basic mechanism for contention
  2472. resolution in multiple-initiator systems.  The RESERVE command (Table 8-25) is
  2473. used to reserve a logical unit or, if the extent reservation option is
  2474. implemented, extents within a logical unit.  The third-party reservation
  2475. allows logical units or extents to be reserved for another specified SCSI
  2476. device.
  2477.  
  2478. IMPLEMENTORS NOTE: The reservation queuing option in X3.131-1986 has been
  2479. removed from SCSI-2.
  2480.  
  2481. 8.2.12.1. Logical Unit Reservation (Mandatory).
  2482.  
  2483. If the extent bit is zero, this command shall request that the entire logical
  2484. unit be reserved for the exclusive use of the initiator until the reservation
  2485. is superseded by another valid RESERVE command from the initiator that made
  2486. the reservation or until released by a RELEASE command from the same initiator
  2487. that made the reservation, by a BUS DEVICE RESET message from any initiator,
  2488. by a hard RESET condition, or by a power on cycle.  A logical unit reservation
  2489. shall not be granted if the logical unit or any extent is reserved by another
  2490. initiator.  It shall be permissible for an initiator to reserve a logical unit
  2491. that is currently reserved by that initiator.  If the extent bit is zero, the
  2492. reservation identification and the extent list length shall be ignored.
  2493.  
  2494. If the logical unit, or any extent within the logical unit is reserved for
  2495. another initiator, the target shall return RESERVATION CONFLICT status.
  2496.  
  2497. If, after honoring the reservation, any other initiator attempts to perform
  2498.  
  2499.  
  2500. SCSI-2 draft proposed American National Standard        8-41      Revision 10c41
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508. Direct-Access Devices                                                   3/9/90
  2509.  
  2510. any command on the reserved logical unit other than an INQUIRY, REQUEST SENSE,
  2511. ALLOW MEDIUM REMOVAL, RESERVE, or a RELEASE command then the command shall be
  2512. rejected with RESERVATION CONFLICT status.
  2513.  
  2514. 8.2.12.2. Extent Reservation (Optional)
  2515. The reservation identification field provides a means for an initiator to
  2516. identify each extent reservation.  This allows an initiator in a multiple
  2517. tasking environment, to have multiple reservations outstanding.  The
  2518. reservation identification is used in the RELEASE command to specify which
  2519. reservation is to be released.  It is also used in superseding RESERVE
  2520. commands to specify which reservation is to be superseded.
  2521.  
  2522. If the extent reservation option is implemented, then the extent release
  2523. option (see 8.2.11.2) shall also be implemented.  These options permit
  2524. multiple extents within the logical unit to be reserved, each with a separate
  2525. reservation type.
  2526.  
  2527. If the extent bit is one, and the extent reservation option is implemented,
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561. SCSI-2 draft proposed American National Standard        8-42      Revision 10c42
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569. Direct-Access Devices                                                   3/9/90
  2570.  
  2571. then the target shall process the reservation request as follows:
  2572. (1) The extent list shall be checked for the number of extents in the
  2573. reservation request.  If the extent list length is zero, no current
  2574. reservations shall be changed, no new reservations shall be created, and this
  2575. condition shall not be treated as an error.  If the extent list contains more
  2576. extents than are supported on the logical unit, the command shall be
  2577. terminated with CHECK CONDITION status and the sense key shall be set to
  2578. ILLEGAL REQUEST.  If the extent list contains more extents than are currently
  2579. available on the logical unit, then the target shall return a RESERVATION
  2580. CONFLICT status.
  2581. (2) The extent list shall be checked for valid extent logical block addresses.
  2582. If any logical block address is invalid for this logical unit, the command
  2583. shall be terminated with CHECK CONDITION status and the sense key shall be set
  2584. to ILLEGAL REQUEST.  The extent list shall be checked for invalid extent
  2585. overlaps (as defined by reservation type) with other extent descriptors in the
  2586. extent list and if invalid overlaps are found, the command shall be terminated
  2587. with CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST.
  2588. (3) If the requested reservation does not conflict with an existing
  2589. reservation, the extents specified shall be reserved until superseded by
  2590. another valid RESERVE command from the initiator that made the reservation or
  2591. until released by a RELEASE command from the same initiator, by a BUS DEVICE
  2592. RESET message from any initiator, or by a hard RESET condition.  If either of
  2593. the last two conditions occur, the next command from each initiator shall be
  2594. terminated with CHECK CONDITION status and the sense key shall be set to UNIT
  2595. ATTENTION.
  2596. (4) If the reservation request conflicts with an existing reservation, then
  2597. the target shall return a RESERVATION CONFLICT status.
  2598.  
  2599. If the extent bit is one, and the extent reservation option is not
  2600. implemented, then the RESERVE command shall be rejected with CHECK CONDITION
  2601. status and the sense key shall be set to ILLEGAL REQUEST.
  2602.  
  2603.                 Table 8-26: Data Format of Extent Descriptors
  2604.  
  2605. ==============================================================================
  2606.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2607. Byte |        |        |        |        |        |        |        |        |
  2608. ==============================================================================
  2609.  0   |               Reserved                     | RelAdr | Reservation Type|
  2610. -----|-----------------------------------------------------------------------|
  2611.  1   | (MSB)                                                                 |
  2612. - - -|- -                        Number of Blocks                         - -|
  2613.  3   |                                                                 (LSB) |
  2614. -----|-----------------------------------------------------------------------|
  2615.  4   | (MSB)                                                                 |
  2616. - - -|- -                        Logical Block Address                    - -|
  2617.  7   |                                                                 (LSB) |
  2618. ==============================================================================
  2619.  
  2620. The size of the extent list shall be defined by the extent list length field.
  2621.  
  2622. SCSI-2 draft proposed American National Standard        8-43      Revision 10c43
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630. Direct-Access Devices                                                   3/9/90
  2631.  
  2632. The extent list shall consist of zero or more descriptors as shown in Table
  2633. 8-26.  Each extent descriptor defines an extent beginning at the specified
  2634. logical block address for the specified number of blocks.  If the number of
  2635. blocks is zero, the extent shall begin at the specified logical block address
  2636. and continue through the last logical block address on the logical unit.
  2637.  
  2638. The reservation type field shall determine the type of reservation to be
  2639. effected for each extent.  Four types of reservations are possible as follows:
  2640.  
  2641.                         DB(1) DB(0)  Reservation Type
  2642.                         ----- -----  ----------------
  2643.                           1     0    Read Exclusive
  2644.                           0     1    Write Exclusive
  2645.                           1     1    Exclusive Access
  2646.                           0     0    Read Shared
  2647.  
  2648. Read Exclusive.  While this reservation is active, no other initiator shall be
  2649. permitted read operations to the indicated extent.  This reservation shall not
  2650. inhibit write operations from any initiator or conflict with a write exclusive
  2651. reservation; however, read exclusive, exclusive access, and read shared
  2652. reservations that overlap this extent shall conflict with this reservation.
  2653.  
  2654. Write Exclusive.  While this reservation is active, no other initiator shall
  2655. be permitted write operations to the indicated extent.  This reservation shall
  2656. not inhibit read operations from any initiator or conflict with a read
  2657. exclusive reservation from any initiator.  This reservation shall conflict
  2658. with write exclusive, exclusive access, and read shared reservations that
  2659. overlap this extent.
  2660.  
  2661. Exclusive Access.  While this reservation is active, no other initiator shall
  2662. be permitted any access to the indicated extent.  All reservation types that
  2663. overlap this extent shall conflict with this reservation.
  2664.  
  2665. Read Shared.  While this reservation is active, no write operations shall be
  2666. permitted by any initiator to the indicated extent.  This reservation shall
  2667. not inhibit read operations from any initiator or conflict with a read shared
  2668. reservation.  Read exclusive, write exclusive, and exclusive access
  2669. reservations that overlap with this extent shall conflict with this
  2670. reservation.
  2671.  
  2672. If the relative address bit is one, the logical block address in the extent
  2673. descriptor shall be treated as a two's complement displacement.  This
  2674. displacement shall be added to the logical block address last accessed on the
  2675. logical unit to form the logical block address for this extent.  This feature
  2676. is only available when linking commands and requires that a previous command
  2677. in the linked group has accessed a logical block on the logical unit; if not,
  2678. the RESERVE command shall be terminated with CHECK CONDITION status and the
  2679. sense key shall be set to ILLEGAL REQUEST.
  2680.  
  2681. If an initiator attempts a command to a logical block that has been reserved
  2682.  
  2683. SCSI-2 draft proposed American National Standard        8-44      Revision 10c44
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691. Direct-Access Devices                                                   3/9/90
  2692.  
  2693. and that access is prohibited by the reservation, the command shall not be
  2694. performed and the command shall be terminated with a RESERVATION CONFLICT
  2695. status.  If a reservation conflict precludes any part of the command, none of
  2696. the command shall be performed.  COPY commands shall be terminated with CHECK
  2697. CONDITION status and the sense key shall be set to DATA PROTECT if any part of
  2698. the copy operation is prohibited by an active reservation.  If any extent in a
  2699. logical unit is reserved in any way, by any initiator, a FORMAT UNIT command
  2700. shall be rejected with a RESERVATION CONFLICT status.
  2701.  
  2702. 8.2.12.3. Third Party Reservation (Mandatory).
  2703. The third-party reservation for the RESERVE command allows an initiator to
  2704. reserve a logical unit or extents within a logical unit for another SCSI
  2705. device.  This is intended for use in multiple-initiator systems that use the
  2706. COPY command.  Third-party reservation is required.
  2707.  
  2708. If the third-party (3rdPty) bit is zero, then a third-party reservation is not
  2709. requested.  If the 3rdPty bit is one then the target shall reserve the
  2710. specified logical unit or extents for the SCSI device specified in the third-
  2711. party device ID field.  The target shall preserve the reservation until it is
  2712. superseded by another valid RESERVE command from the initiator that made the
  2713. reservation or until it is released by the same initiator, by a BUS DEVICE
  2714. reset message from any initiator, or a hard reset condition.  The target shall
  2715. ignore any attempt to release the reservation made by any other initiator.
  2716.  
  2717. If independent sets of parameters are implemented, a third party reservation
  2718. shall cause the target to transfer the set of parameters in effect for the
  2719. initiator of the RESERVE command to the parameters used for commands from the
  2720. third party device.  Any subsequent command issued by the third-party device
  2721. is executed according to the mode parameters in effect for the initiator that
  2722. sent the RESERVE command.
  2723.  
  2724. IMPLEMENTORS NOTE:  This transfer of the mode parameters is applicable to
  2725. target devices which store mode information independently for different
  2726. initiators.  This mechanism allows an initiator to set the mode parameters of
  2727. a target for the use of a copy master (i.e., the third-party device).  The
  2728. third-party copy master may subsequently issue a MODE SELECT command to modify
  2729. the mode parameters.
  2730.  
  2731. 8.2.12.4. Superseding Reservations (Mandatory)
  2732. An initiator that holds a current reservation (unit or extent) may modify that
  2733. reservation by issuing another RESERVE command (unit or extent) to the same
  2734. logical unit.  The superseding RESERVE command shall release the previous
  2735. reservation state (unit or extent) when the new reservation request is
  2736. granted.  If the superseding reservation is for an extent reservation and the
  2737. current reservation is also an extent reservation, the current extent
  2738. reservation identification value is used for the superseding reservation.  The
  2739. current reservation shall not be modified if the superseding reservation
  2740. request cannot be granted.  If the superseding reservation cannot be granted
  2741. because of conflicts with a previous reservation (other than the reservation
  2742. being superseded), then the target shall return RESERVATION CONFLICT status.
  2743.  
  2744. SCSI-2 draft proposed American National Standard        8-45      Revision 10c45
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752. Direct-Access Devices                                                   3/9/90
  2753.  
  2754.  
  2755. IMPLEMENTORS NOTE:  Superseding reservations allow the SCSI device ID to be
  2756. changed on a reservation using the third-party reservation option.  This
  2757. capability is necessary for certain situations when using COMPARE, COPY, and
  2758. COPY AND VERIFY commands.
  2759.  
  2760. 8.2.13. REZERO UNIT Command
  2761.  
  2762.  
  2763.                        Table 8-27: REZERO UNIT Command
  2764.  
  2765. ==============================================================================
  2766.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2767. Byte |        |        |        |        |        |        |        |        |
  2768. ==============================================================================
  2769.  0   |                           Operation Code (01h)                        |
  2770. -----|-----------------------------------------------------------------------|
  2771.  1   | Logical Unit Number      |                  Reserved                  |
  2772. -----|-----------------------------------------------------------------------|
  2773.  2   |                           Reserved                                    |
  2774. -----|-----------------------------------------------------------------------|
  2775.  3   |                           Reserved                                    |
  2776. -----|-----------------------------------------------------------------------|
  2777.  4   |                           Reserved                                    |
  2778. -----|-----------------------------------------------------------------------|
  2779.  5   |                           Control                                     |
  2780. ==============================================================================
  2781.  
  2782.  
  2783. The REZERO UNIT command (Table 8-27) requests that the target set the logical
  2784. unit to a specific state.  See vendor specifications for details.
  2785.  
  2786. 8.2.14. SEARCH DATA Commands
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805. SCSI-2 draft proposed American National Standard        8-46      Revision 10c46
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813. Direct-Access Devices                                                   3/9/90
  2814.  
  2815.  
  2816.  
  2817.                        Table 8-28: SEARCH DATA Commands
  2818.  
  2819. ==============================================================================
  2820.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  2821. Byte |        |        |        |        |        |        |        |        |
  2822. ==============================================================================
  2823.  0   |                           Operation Code (31h 30h 32h)                |
  2824. -----|-----------------------------------------------------------------------|
  2825.  1   | Logical Unit Number      | Invert |     Reserved    | SpnDat | RelAdr |
  2826. -----|-----------------------------------------------------------------------|
  2827.  2   | (MSB)                                                                 |
  2828. - - -|- -                        Logical Block Address                    - -|
  2829.  5   |                                                                 (LSB) |
  2830. -----|-----------------------------------------------------------------------|
  2831.  6   |                           Reserved                                    |
  2832. -----|-----------------------------------------------------------------------|
  2833.  7   | (MSB)                                                                 |
  2834. -----|---                        Number of Blocks to Search               ---|
  2835.  8   |                                                                 (LSB) |
  2836. -----|-----------------------------------------------------------------------|
  2837.  9   |                           Control                                     |
  2838. ==============================================================================
  2839.  
  2840.  
  2841. The SEARCH DATA commands (Table 8-28) search one or more logical blocks for
  2842. equality or inequality to a data pattern.  The concept of records within a
  2843. logical block is used to allow multiple records within a logical block to be
  2844. searched.
  2845.  
  2846. The invert bit determines whether the search condition is to be inverted.  See
  2847. 8.2.14.1 through 8.2.14.3 for a description of the search conditions for the
  2848. individual SEARCH DATA commands.
  2849.  
  2850. A spanned data (SpnDat) bit of zero indicates that each record shall be wholly
  2851. contained within a single block.  Any space at the end of a block that is
  2852. smaller than the record length is ignored by the SEARCH DATA commands.   A
  2853. SpnDat bit of one indicates that records span block boundaries (i.e.,  record
  2854. may start in one block and end in the next or a subsequent block.
  2855.  
  2856. The number of blocks to search field specifies the maximum number of
  2857. contiguous logical blocks to be searched.  A value of zero indicates that no
  2858. logical blocks shall be searched. This condition shall not be considered an
  2859. error.  Any other value indicates the maximum number of logical blocks that
  2860. shall be searched.
  2861.  
  2862. A link bit (see 6.2.7) of zero indicates a non-linked command and if the
  2863.  
  2864.  
  2865.  
  2866. SCSI-2 draft proposed American National Standard        8-47      Revision 10c47
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874. Direct-Access Devices                                                   3/9/90
  2875.  
  2876. search is satisfied, the command shall be terminated with a CONDITION MET
  2877. status.  A REQUEST SENSE command can then be issued to determine the logical
  2878. block address and record offset of the matching record.  If the search is not
  2879. satisfied and no error occurs, the command shall be terminated with GOOD
  2880. status.
  2881.  
  2882. A link bit (see 6.2.7) of one indicates a command is linked to the SEARCH DATA
  2883. command and if the search is satisfied, INTERMEDIATE-CONDITION MET status is
  2884. returned and the next command is executed.  If the RelAdr bit in the next
  2885. command is one, the logical block address of the next command is used as a
  2886. displacement from the logical block address at which the search was satisfied.
  2887. If a linked search is not satisfied, the command is terminated with CHECK
  2888. CONDITION status.  A REQUEST SENSE command may then be issued.
  2889.  
  2890. A REQUEST SENSE command following a satisfied SEARCH DATA command shall:
  2891. (1) Return a sense key of EQUAL if the search was satisfied by an exact match.
  2892. If the search was satisfied by an inequality then a sense key of NO SENSE
  2893. shall be returned.
  2894. (2) Return the valid bit set to one.
  2895. (3) Return the logical block address of the logical block containing the first
  2896. matching record in the information field.
  2897. (4) Return the record offset of the matching record in the command-specific
  2898. information field.
  2899.  
  2900. A REQUEST SENSE command following a SEARCH DATA command that is not satisfied
  2901. shall:
  2902. (1) Return a sense key of NO SENSE, if no errors occurred during the command
  2903. execution.
  2904. (2) Return the valid bit set to zero.
  2905.  
  2906. The SEARCH DATA parameter list (Table 8-29) contains a fourteen-byte header,
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927. SCSI-2 draft proposed American National Standard        8-48      Revision 10c48
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935. Direct-Access Devices                                                   3/9/90
  2936.  
  2937. followed by one or more search argument descriptors.
  2938.  
  2939.                     Table 8-29: SEARCH DATA Parameter List
  2940.  
  2941. ==============================================================================
  2942. Byte |                        Parameter List Header                          |
  2943. ==============================================================================
  2944.  0   | (MSB)                                                                 |
  2945. - - -|- -                        Logical Record Length                    - -|
  2946.  3   |                                                                 (LSB) |
  2947. -----|-----------------------------------------------------------------------|
  2948.  4   | (MSB)                                                                 |
  2949. - - -|- -                        First Record Offset                      - -|
  2950.  7   |                                                                 (LSB) |
  2951. -----|-----------------------------------------------------------------------|
  2952.  8   | (MSB)                                                                 |
  2953. - - -|- -                        Number of Records                        - -|
  2954. 11   |                                                                 (LSB) |
  2955. -----|-----------------------------------------------------------------------|
  2956. 12   | (MSB)                                                                 |
  2957. -----|---                        Search Argument Length                   ---|
  2958. 13   |                                                                 (LSB) |
  2959. ==============================================================================
  2960.      |                        Search Argument Descriptor(s)                  |
  2961. ==============================================================================
  2962.  0   | (MSB)                                                                 |
  2963. - - -|- -                        Displacement                             - -|
  2964.  3   |                                                                 (LSB) |
  2965. -----|-----------------------------------------------------------------------|
  2966.  4   | (MSB)                                                                 |
  2967. -----|---                        Pattern Length                           ---|
  2968.  5   |                                                                 (LSB) |
  2969. -----|-----------------------------------------------------------------------|
  2970. 6 - n|                           Pattern                                     |
  2971. ==============================================================================
  2972.  
  2973.  
  2974. The logical record length field specifies the record length in bytes.
  2975.  
  2976. The first record offset field specifies the number of bytes that shall be
  2977. ignored in the first logical block before the search begins.  If the value of
  2978. the first record offset field shall is larger than the logical block length
  2979. the target shall terminate the command with a CHECK CONDITION status, set the
  2980. sense key to ILLEGAL REQUEST and set the additional sense code to INVALID
  2981. FIELD IN PARAMETERS LIST.  Subsequent logical blocks shall be searched
  2982. beginning with the first byte in the logical block.  This permits one or more
  2983. records to be skipped initially.
  2984.  
  2985. The number of records field specifies the maximum number of records that shall
  2986.  
  2987.  
  2988. SCSI-2 draft proposed American National Standard        8-49      Revision 10c49
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996. Direct-Access Devices                                                   3/9/90
  2997.  
  2998. be searched by this command.  An search shall terminate when the search
  2999. pattern is found or when the number of records is exhausted or when the number
  3000. of blocks to search is exhausted.
  3001.  
  3002. The search argument length field specifies the length in bytes of all the
  3003. search argument descriptors that follow.
  3004.  
  3005. IMPLEMENTORS NOTE:  Since the pattern length can vary, there is no fixed
  3006. multiple of the search argument descriptor to determine the search argument
  3007. length.
  3008.  
  3009. The search argument descriptors specify one or more search conditions to
  3010. execute within a single record in order to satisfy the search.  Each search
  3011. argument descriptor is made up of a displacement field, a pattern length
  3012. field, and a pattern field.
  3013.  
  3014. The displacement field specifies the displacement in bytes of the first byte
  3015. of the data to be compared from the start of the logical record.
  3016.  
  3017. The pattern length field specifies the length in bytes of the pattern that
  3018. follows.
  3019.  
  3020. The pattern field specifies the data to compare to the logical record.
  3021.  
  3022. 8.2.14.1. SEARCH DATA EQUAL Command
  3023. The SEARCH DATA EQUAL command (Table 8-28, operation code 31h) shall be
  3024. satisfied by the first logical record searched that contains data that
  3025. satisfies all of the search argument descriptor(s).  If the invert bit in the
  3026. command descriptor block is zero, the search argument descriptor(s) shall be
  3027. satisfied by data in the logical record being equal to the data in the
  3028. pattern.  If the invert bit is one, the search argument descriptor(s) shall be
  3029. satisfied by data in the logical record being not equal to the data in the
  3030. pattern.  (See 8.2.14.)
  3031.  
  3032. 8.2.14.2. SEARCH DATA HIGH Command
  3033. The SEARCH DATA HIGH command (Table 8-28, operation code 30h) shall be
  3034. satisfied by the first logical record searched that contains data that
  3035. satisfies all of the search argument descriptor(s).  If the invert bit in the
  3036. command descriptor block is zero, the search argument descriptor(s) shall be
  3037. satisfied by data in the logical record being greater than the data in the
  3038. pattern.  If the invert bit is one, the search argument descriptor(s) shall be
  3039. satisfied by data in the logical record being less than or equal to the data
  3040. in the pattern.  (See 8.2.14.)
  3041.  
  3042. 8.2.14.3. SEARCH DATA LOW Command
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049. SCSI-2 draft proposed American National Standard        8-50      Revision 10c50
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057. Direct-Access Devices                                                   3/9/90
  3058.  
  3059. The SEARCH DATA LOW command (Table 8-28, operation code 32h) shall be
  3060. satisfied by the first logical record searched that contains data that
  3061. satisfies all of the search argument descriptor(s).  If the invert bit in the
  3062. command descriptor block is zero, the search argument descriptor(s) shall be
  3063. satisfied by data in the logical record being less than the data in the
  3064. pattern.  If the invert bit is one, the search argument descriptor(s) shall be
  3065. satisfied by data in the logical record being greater than or equal to the
  3066. data in the pattern.  (See 8.2.14.)
  3067.  
  3068. 8.2.15. SEEK(6) and SEEK(10) Commands
  3069.  
  3070.  
  3071.                          Table 8-30: SEEK(6) Command
  3072.  
  3073. ==============================================================================
  3074.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3075. Byte |        |        |        |        |        |        |        |        |
  3076. ==============================================================================
  3077.  0   |                           Operation Code (0Bh)                        |
  3078. -----|-----------------------------------------------------------------------|
  3079.  1   | Logical Unit Number      | (MSB)                                      |
  3080. -----|------------------------------                                      ---|
  3081.  2   |                           Logical Block Address                       |
  3082. -----|---                                                                 ---|
  3083.  3   |                                                                 (LSB) |
  3084. -----|-----------------------------------------------------------------------|
  3085.  4   |                           Reserved                                    |
  3086. -----|-----------------------------------------------------------------------|
  3087.  5   |                           Control                                     |
  3088. ==============================================================================
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110. SCSI-2 draft proposed American National Standard        8-51      Revision 10c51
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118. Direct-Access Devices                                                   3/9/90
  3119.  
  3120.                          Table 8-31: SEEK(10) Command
  3121.  
  3122. ==============================================================================
  3123.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3124. Byte |        |        |        |        |        |        |        |        |
  3125. ==============================================================================
  3126.  0   |                           Operation Code (2Bh)                        |
  3127. -----|-----------------------------------------------------------------------|
  3128.  1   | Logical Unit Number      |                  Reserved                  |
  3129. -----|-----------------------------------------------------------------------|
  3130.  2   | (MSB)                                                                 |
  3131. - - -|- -                        Logical Block Address                    - -|
  3132.  5   |                                                                 (LSB) |
  3133. -----|-----------------------------------------------------------------------|
  3134.  6   |                           Reserved                                    |
  3135. -----|-----------------------------------------------------------------------|
  3136.  7   |                           Reserved                                    |
  3137. -----|-----------------------------------------------------------------------|
  3138.  8   |                           Reserved                                    |
  3139. -----|-----------------------------------------------------------------------|
  3140.  9   |                           Control                                     |
  3141. ==============================================================================
  3142.  
  3143.  
  3144. The SEEK(6) (Table 8-30) and SEEK(10) (Table 8-31) commands request that the
  3145. logical unit seek to the specified logical block address.
  3146.  
  3147. 8.2.16. SET LIMITS Command
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171. SCSI-2 draft proposed American National Standard        8-52      Revision 10c52
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179. Direct-Access Devices                                                   3/9/90
  3180.  
  3181.  
  3182.  
  3183.                         Table 8-32: SET LIMITS Command
  3184.  
  3185. ==============================================================================
  3186.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3187. Byte |        |        |        |        |        |        |        |        |
  3188. ==============================================================================
  3189.  0   |                           Operation Code (33h)                        |
  3190. -----|-----------------------------------------------------------------------|
  3191.  1   | Logical Unit Number      |         Reserved         | RdInh  | WrInh  |
  3192. -----|-----------------------------------------------------------------------|
  3193.  2   | (MSB)                                                                 |
  3194. - - -|- -                        Logical Block Address                    - -|
  3195.  5   |                                                                 (LSB) |
  3196. -----|-----------------------------------------------------------------------|
  3197.  6   |                           Reserved                                    |
  3198. -----|-----------------------------------------------------------------------|
  3199.  7   | (MSB)                                                                 |
  3200. -----|---                        Number of Blocks                         ---|
  3201.  8   |                                                                 (LSB) |
  3202. -----|-----------------------------------------------------------------------|
  3203.  9   |                           Control                                     |
  3204. ==============================================================================
  3205.  
  3206.  
  3207. The SET LIMITS command (Table 8-32) defines the range within which subsequent
  3208. linked commands may operate.  A second SET LIMITS command may not be linked to
  3209. a chain of commands in which a SET LIMITS command has already been issued.
  3210.  
  3211. The read inhibit (RdInh) bit of one indicates that read operations within the
  3212. range shall be inhibited.
  3213.  
  3214. A write inhibit (WrInh) bit of one indicates that write operations within the
  3215. range shall be inhibited.
  3216.  
  3217. The logical block address field specifies the starting address for the range.
  3218.  
  3219. The number of blocks field specifies the number of logical blocks within the
  3220. range.  A number of blocks of zero indicates that the range shall extend to
  3221. the last logical block on the logical unit.
  3222.  
  3223. Any attempt to access outside of the restricted range or any attempt to
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232. SCSI-2 draft proposed American National Standard        8-53      Revision 10c53
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240. Direct-Access Devices                                                   3/9/90
  3241.  
  3242. perform an inhibited operation within the restricted range shall not be
  3243. performed.  The command shall be terminated with CHECK CONDITION status and
  3244. the sense key shall be set to DATA PROTECT.  A second SET LIMITS command
  3245. within a linked list of commands shall be rejected with CHECK CONDITION status
  3246. and the sense key shall be set to DATA PROTECT.
  3247.  
  3248. 8.2.17. START STOP UNIT Command
  3249.  
  3250.  
  3251.                      Table 8-33: START STOP UNIT Command
  3252.  
  3253. ==============================================================================
  3254.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3255. Byte |        |        |        |        |        |        |        |        |
  3256. ==============================================================================
  3257.  0   |                           Operation Code (1Bh)                        |
  3258. -----|-----------------------------------------------------------------------|
  3259.  1   | Logical Unit Number      |                  Reserved         | Immed  |
  3260. -----|-----------------------------------------------------------------------|
  3261.  2   |                           Reserved                                    |
  3262. -----|-----------------------------------------------------------------------|
  3263.  3   |                           Reserved                                    |
  3264. -----|-----------------------------------------------------------------------|
  3265.  4   |                           Reserved                  |  LoEj  |  Start |
  3266. -----|-----------------------------------------------------------------------|
  3267.  5   |                           Control                                     |
  3268. ==============================================================================
  3269.  
  3270.  
  3271. The START STOP UNIT command (Table 8-33) requests that the target enable or
  3272. disable the logical unit for media access operations.
  3273.  
  3274. An immediate (Immed) bit of one indicates that status shall be returned as
  3275. soon as the command descriptor block has been validated.  An Immed bit of zero
  3276. indicates that status shall be returned after the operation is completed.
  3277.  
  3278. A load eject (LoEj) bit of zero requests that no action be taken regarding
  3279. loading or ejecting the medium.  A LoEj bit of one requests that the medium
  3280. shall be be unloaded if the start bit is zero.  A LoEj bit of one requests
  3281. that the medium is to be loaded if the start bit is one.
  3282.  
  3283. A start bit of one requests the logical unit be made ready for use.  A start
  3284. bit of zero requests that the logical unit be stopped (media cannot be
  3285. accessed by the initiator).
  3286.  
  3287. Targets that contain cache memory shall implicitly perform a SYNCHRONIZE CACHE
  3288. command for the entire medium prior to executing the STOP UNIT command.
  3289.  
  3290. 8.2.18. SYNCHRONIZE CACHE Command
  3291.  
  3292.  
  3293. SCSI-2 draft proposed American National Standard        8-54      Revision 10c54
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301. Direct-Access Devices                                                   3/9/90
  3302.  
  3303.  
  3304.  
  3305.                     Table 8-34: SYNCHRONIZE CACHE Command
  3306.  
  3307. ==============================================================================
  3308.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3309. Byte |        |        |        |        |        |        |        |        |
  3310. ==============================================================================
  3311.  0   |                           Operation Code (35h)                        |
  3312. -----|-----------------------------------------------------------------------|
  3313.  1   | Logical Unit Number       |         Reserved        | Immed  | RelAdr |
  3314. -----|-----------------------------------------------------------------------|
  3315.  2   | (MSB)                                                                 |
  3316. - - -|- -                        Logical Block Address                    - -|
  3317.  5   |                                                                 (LSB) |
  3318. -----|-----------------------------------------------------------------------|
  3319.  6   |                           Reserved                                    |
  3320. -----|-----------------------------------------------------------------------|
  3321.  7   | (MSB)                                                                 |
  3322. -----|---                        Number of Blocks                         ---|
  3323.  8   |                                                                 (LSB) |
  3324. -----|-----------------------------------------------------------------------|
  3325.  9   |                           Control                                     |
  3326. ==============================================================================
  3327.  
  3328.  
  3329. The SYNCHRONIZE CACHE command (Table 8-34) ensures that logical blocks in the
  3330. cache memory, within the specified range, have their most recent data value
  3331. recorded on the physical medium.  If a more recent data value for a logical
  3332. block within the specified range exists in the cache memory than on the
  3333. physical medium, then the logical block from the cache memory shall be written
  3334. to the physical medium.  Logical blocks are not necessarily removed from the
  3335. cache memory as a result of the synchronize cache operation.
  3336.  
  3337. An immediate (Immed) bit of one indicates that the target shall return status
  3338. as soon as the command descriptor block has been validated.  An Immed bit of
  3339. zero indicates that the status shall not be returned until the operation has
  3340. been completed. If the Immed bit is one and the target does not support it and
  3341. the command shall terminate with CHECK CONDITION status.  The sense key shall
  3342. be set to ILLEGAL REQUEST and the additional sense code shall be set to
  3343. INVALID FIELD IN CDB.
  3344.  
  3345. See 8.2.2 for a definition of the RelAdr bit and the logical block address
  3346. field.
  3347.  
  3348. The number of blocks field specifies the total number of contiguous logical
  3349. blocks within the range.  A number of blocks of zero indicates that all
  3350. remaining logical blocks on the logical unit shall be within the range.
  3351.  
  3352. A logical block within the specified range that is not in cache memory is not
  3353.  
  3354. SCSI-2 draft proposed American National Standard        8-55      Revision 10c55
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362. Direct-Access Devices                                                   3/9/90
  3363.  
  3364. considered an error.
  3365.  
  3366.  
  3367. 8.2.19. VERIFY Command
  3368.  
  3369.  
  3370.                           Table 8-35: VERIFY Command
  3371.  
  3372. ==============================================================================
  3373.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3374. Byte |        |        |        |        |        |        |        |        |
  3375. ==============================================================================
  3376.  0   |                           Operation Code (2Fh)                        |
  3377. -----|-----------------------------------------------------------------------|
  3378.  1   |   Logical Unit Number    |   DPO  |Reserved|Reserved| BytChk | RelAdr |
  3379. -----|-----------------------------------------------------------------------|
  3380.  2   | (MSB)                                                                 |
  3381. - - -|- -                        Logical Block Address                    - -|
  3382.  5   |                                                                 (LSB) |
  3383. -----|-----------------------------------------------------------------------|
  3384.  6   |                           Reserved                                    |
  3385. -----|-----------------------------------------------------------------------|
  3386.  7   | (MSB)                                                                 |
  3387. -----|---                        Verification Length                         |
  3388.  8   |                                                                 (LSB) |
  3389. -----|-----------------------------------------------------------------------|
  3390.  9   |                           Control                                     |
  3391. ==============================================================================
  3392.  
  3393.  
  3394. The VERIFY command (Table 8-35) requests that the target verify the data
  3395. written on the medium.
  3396.  
  3397. If the MODE SELECT command is implemented, and the verify error recovery
  3398. parameters page is also implemented, then the current settings in that page
  3399. specifies the verification error criteria. If the verify error recovery
  3400. parameters page is not implemented, then the verification criteria is vendor-
  3401. specific.
  3402.  
  3403. A byte check (BytChk) bit of zero causes a medium verification to be performed
  3404. with no data comparison.  A BytChk bit of one causes a byte-by-byte compare of
  3405. data written on the medium and the data transferred from the initiator.  If
  3406. the compare is unsuccessful for any reason, the target shall return CHECK
  3407. CONDITION status with the sense key set to MISCOMPARE.
  3408.  
  3409. See 8.2.2 for a definition of the RelAdr bit and the logical block address
  3410. field.
  3411.  
  3412. The verification length field specifies the number of contiguous logical
  3413.  
  3414.  
  3415. SCSI-2 draft proposed American National Standard        8-56      Revision 10c56
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423. Direct-Access Devices                                                   3/9/90
  3424.  
  3425. blocks of data that shall be verified.  A transfer length of zero indicates
  3426. that no logical blocks shall be verified.  This condition shall not be
  3427. considered as an error.  Any other value indicates the number of logical
  3428. blocks that shall be verified.
  3429.  
  3430. See 8.2.6 for a description of the cache control bit (DPO).
  3431.  
  3432. 8.2.20. WRITE(6) Command
  3433.  
  3434.  
  3435.                          Table 8-36: WRITE(6) Command
  3436.  
  3437. ==============================================================================
  3438.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3439. Byte |        |        |        |        |        |        |        |        |
  3440. ==============================================================================
  3441.  0   |                           Operation Code (0Ah)                        |
  3442. -----|-----------------------------------------------------------------------|
  3443.  1   | Logical Unit Number      | (MSB)                                      |
  3444. -----|------------------------------                                      ---|
  3445.  2   |                           Logical Block Address                       |
  3446. -----|---                                                                 ---|
  3447.  3   |                                                                 (LSB) |
  3448. -----|-----------------------------------------------------------------------|
  3449.  4   |                           Transfer Length                             |
  3450. -----|-----------------------------------------------------------------------|
  3451.  5   |                           Control                                     |
  3452. ==============================================================================
  3453.  
  3454.  
  3455. The WRITE(6) command (Table 8-36) requests that the target write the data
  3456. transferred by the initiator to the medium.
  3457.  
  3458. The cache control bits (see 8.2.6) are not provided for this command.  Targets
  3459. with cache memory may have values for the cache control bits which may affect
  3460. the WRITE(6) command, however no default value is defined by this standard.
  3461. If explicit control is required, the WRITE(10) command should be used.
  3462.  
  3463. The logical block address field specifies the logical block at which the write
  3464. operation shall begin.
  3465.  
  3466. The transfer length field specifies the number of contiguous logical blocks of
  3467. data to transferred.  A transfer length of zero indicates that 256 logical
  3468. blocks shall be transferred.  Any other value indicates the number of logical
  3469. blocks that shall be transferred.
  3470.  
  3471. 8.2.21. WRITE(10) Command
  3472.  
  3473.  
  3474.  
  3475.  
  3476. SCSI-2 draft proposed American National Standard        8-57      Revision 10c57
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484. Direct-Access Devices                                                   3/9/90
  3485.  
  3486.  
  3487.  
  3488.                         Table 8-37: WRITE(10) Command
  3489.  
  3490. ==============================================================================
  3491.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3492. Byte |        |        |        |        |        |        |        |        |
  3493. ==============================================================================
  3494.  0   |                           Operation Code (2Ah)                        |
  3495. -----|-----------------------------------------------------------------------|
  3496.  1   | Logical Unit Number      |   DPO  |   FUA  |Reserved|Reserved| RelAdr |
  3497. -----|-----------------------------------------------------------------------|
  3498.  2   | (MSB)                                                                 |
  3499. - - -|- -                        Logical Block Address                    - -|
  3500.  5   |                                                                 (LSB) |
  3501. -----|-----------------------------------------------------------------------|
  3502.  6   |                           Reserved                                    |
  3503. -----|-----------------------------------------------------------------------|
  3504.  7   | (MSB)                                                                 |
  3505. -----|---                        Transfer Length                             |
  3506.  8   |                                                                 (LSB) |
  3507. -----|-----------------------------------------------------------------------|
  3508.  9   |                           Control                                     |
  3509. ==============================================================================
  3510.  
  3511.  
  3512. The WRITE(10) command (Table 8-37) requests that the target write the data
  3513. transferred by the initiator to the medium.
  3514.  
  3515. See READ(10) command (8.2.6) for a definition of the cache control bits (DPO
  3516. and FUA).
  3517.  
  3518. See 8.2.2 for a definition of the RelAdr bit and the logical block address
  3519. field.
  3520.  
  3521. The transfer length field specifies the number of contiguous logical blocks of
  3522. data that shall be transferred.  A transfer length of zero indicates that no
  3523. logical blocks shall be transferred.  This condition shall not be considered
  3524. an error and no data shall be written.  Any other value indicates the number
  3525. of logical blocks that shall be transferred.
  3526.  
  3527. 8.2.22. WRITE AND VERIFY Command
  3528.  
  3529.  
  3530.  
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537. SCSI-2 draft proposed American National Standard        8-58      Revision 10c58
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545. Direct-Access Devices                                                   3/9/90
  3546.  
  3547.  
  3548.  
  3549.                      Table 8-38: WRITE AND VERIFY Command
  3550.  
  3551. ==============================================================================
  3552.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3553. Byte |        |        |        |        |        |        |        |        |
  3554. ==============================================================================
  3555.  0   |                           Operation Code (2Eh)                        |
  3556. -----|-----------------------------------------------------------------------|
  3557.  1   |   Logical Unit Number    |   DPO  |Reserved|Reserved| BytChk | RelAdr |
  3558. -----|-----------------------------------------------------------------------|
  3559.  2   | (MSB)                                                                 |
  3560. - - -|- -                        Logical Block Address                    - -|
  3561.  5   |                                                                 (LSB) |
  3562. -----|-----------------------------------------------------------------------|
  3563.  6   |                           Reserved                                    |
  3564. -----|-----------------------------------------------------------------------|
  3565.  7   | (MSB)                                                                 |
  3566. -----|---                        Transfer Length                             |
  3567.  8   |                                                                 (LSB) |
  3568. -----|-----------------------------------------------------------------------|
  3569.  9   |                           Control                                     |
  3570. ==============================================================================
  3571.  
  3572.  
  3573. The WRITE AND VERIFY command (Table 8-38) requests that the target write the
  3574. data transferred from the initiator to the medium and then verify that the
  3575. data is correctly written. The data is only transferred once from the
  3576. initiator to the target.
  3577.  
  3578. If the MODE SELECT command is implemented, and the verify error recovery page
  3579. is also implemented (see 8.3.3.8), then the current settings in that page
  3580. along with the AWRE bit from the read-write error recovery page specify the
  3581. verification error criteria. If these pages are not implemented, then the
  3582. verification criteria is vendor-specific.
  3583.  
  3584. A byte check (BytChk) bit of zero requests a medium verification to be
  3585. performed with no data comparison.  A BytChk bit of one requests a byte-by-
  3586. byte compare of data written on the medium and the data transferred from the
  3587. initiator.  If the compare is unsuccessful for any reason, the target shall
  3588. return CHECK CONDITION status with the sense key set to MISCOMPARE.
  3589.  
  3590. See 8.2.2 for a definition of the RelAdr bit and the logical block address
  3591. field.
  3592.  
  3593. See WRITE(10) command (8.2.21) for a definition of the transfer length field.
  3594.  
  3595. See 8.2.6 for a description of the cache control bit (DPO).
  3596.  
  3597.  
  3598. SCSI-2 draft proposed American National Standard        8-59      Revision 10c59
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606. Direct-Access Devices                                                   3/9/90
  3607.  
  3608. IMPLEMENTORS NOTE: The WRITE AND VERIFY command specifically states that the
  3609. data are not to be transferred twice (i.e., once for the write pass, and once
  3610. for the verify pass) when performing a byte compare.  If there is a need for
  3611. two transfers to occur (e.g., to ensure the integrity of the path to the
  3612. media), then the initiator should issue a WRITE command with a LINK bit of one
  3613. followed by a VERIFY command with a BytCmp bit of one, transferring the same
  3614. data on each command.
  3615.  
  3616. 8.2.23. WRITE LONG Command
  3617.  
  3618.  
  3619.                         Table 8-39: WRITE LONG Command
  3620.  
  3621. ==============================================================================
  3622.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3623. Byte |        |        |        |        |        |        |        |        |
  3624. ==============================================================================
  3625.  0   |                           Operation Code (3Fh)                        |
  3626. -----|-----------------------------------------------------------------------|
  3627.  1   | Logical Unit Number      |              Reserved             | RelAdr |
  3628. -----|-----------------------------------------------------------------------|
  3629.  2   | (MSB)                                                                 |
  3630. - - -|- -                        Logical Block Address                    - -|
  3631.  5   |                                                                 (LSB) |
  3632. -----|-----------------------------------------------------------------------|
  3633.  6   |                           Reserved                                    |
  3634. -----|-----------------------------------------------------------------------|
  3635.  7   | (MSB)                                                                 |
  3636. -----|---                        Byte Transfer Length                        |
  3637.  8   |                                                                 (LSB) |
  3638. -----|-----------------------------------------------------------------------|
  3639.  9   |                           Control                                     |
  3640. ==============================================================================
  3641.  
  3642.  
  3643. The WRITE LONG command (Table 8-39) requests that the target write the data
  3644. transferred by the initiator to the medium.  The data passed during the WRITE
  3645. LONG command is implementation specific, but shall include the data bytes and
  3646. the ECC bytes.
  3647.  
  3648. IMPLEMENTORS NOTE:  Any other bytes that can be corrected by ECC should be
  3649. included (e.g., a data synchronization mark within the area covered by ECC).
  3650. The READ LONG command is usually issued before issuing a WRITE LONG command.
  3651. The WRITE LONG data should be the same length and in the same order as the
  3652. data returned by the READ LONG command.
  3653.  
  3654. See 8.2.2 for a definition of the RelAdr bit and the logical block address
  3655. field.
  3656.  
  3657. The byte transfer length field should specify the number of bytes of data that
  3658.  
  3659. SCSI-2 draft proposed American National Standard        8-60      Revision 10c60
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667. Direct-Access Devices                                                   3/9/90
  3668.  
  3669. the target would return for the READ LONG command.  If a non-zero byte
  3670. transfer length does not exactly match the data length the target would return
  3671. for the READ LONG command, then the target shall terminate the command with
  3672. CHECK CONDITION status and a sense key of ILLEGAL REQUEST and an additional
  3673. sense code of INVALID FIELD IN CDB. The ILI and valid bits shall be set to one
  3674. and the information field shall be set to the difference (residue) of the
  3675. requested length minus the actual length in bytes. Negative values shall be
  3676. indicated by two's complement notation.  A transfer length of zero indicates
  3677. that no bytes shall be transferred and shall not be considered an error.
  3678.  
  3679. 8.2.24. WRITE SAME Command
  3680.  
  3681.  
  3682.                         Table 8-40: WRITE SAME Command
  3683.  
  3684. ==============================================================================
  3685.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3686. Byte |        |        |        |        |        |        |        |        |
  3687. ==============================================================================
  3688.  0   |                           Operation Code (41h)                        |
  3689. -----|-----------------------------------------------------------------------|
  3690.  1   | Logical Unit Number      |     Reserved    | PBdata | LBdata | RelAdr |
  3691. -----|-----------------------------------------------------------------------|
  3692.  2   | (MSB)                                                                 |
  3693. - - -|- -                        Logical Block Address                    - -|
  3694.  5   |                                                                 (LSB) |
  3695. -----|-----------------------------------------------------------------------|
  3696.  6   |                           Reserved                                    |
  3697. -----|-----------------------------------------------------------------------|
  3698.  7   | (MSB)                                                                 |
  3699. -----|---                        Number of Blocks                            |
  3700.  8   |                                                                 (LSB) |
  3701. -----|-----------------------------------------------------------------------|
  3702.  9   |                           Control                                     |
  3703. ==============================================================================
  3704.  
  3705.  
  3706. The WRITE SAME command (Table 8-40) requests that the target write the single
  3707. block of data transferred by the initiator to the medium multiple times.
  3708.  
  3709. IMPLEMENTORS NOTE:  This command is useful if large areas of the medium need
  3710. to be written, prepared for certification, or otherwise initialized without
  3711. the initiator having to transfer all the data.
  3712.  
  3713. A logical block data (LBdata) bit of one requests that the target replace the
  3714. first four bytes of the data to be written to the current logical block with
  3715. the logical block address of the block currently being written.
  3716.  
  3717. A physical block data (PBdata) bit of one requests that the target replace the
  3718.  
  3719.  
  3720. SCSI-2 draft proposed American National Standard        8-61      Revision 10c61
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728. Direct-Access Devices                                                   3/9/90
  3729.  
  3730. first eight bytes of the data to be written to the current physical sector
  3731. with the physical address of the sector currently being written using the
  3732. physical sector format (see Table 8-8).
  3733.  
  3734. If PBdata and LBdata are one the command shall be terminated with CHECK
  3735. CONDITION status.  The sense key shall be set to ILLEGAL REQUEST.
  3736.  
  3737. See 8.2.2 for a definition of the RelAdr bit and the logical block address
  3738. field.
  3739.  
  3740. The number of blocks field specifies the number of contiguous logical blocks
  3741. to be written.  A number of blocks field of zero requests that all the
  3742. remaining logical blocks on the medium be written.
  3743.  
  3744.  
  3745. 8.3. Parameters for Direct-Access Devices
  3746.  
  3747. 8.3.1. Diagnostic Parameters
  3748.  
  3749. This section defines the descriptors and pages for diagnostic parameters used
  3750. with direct-access devices.
  3751.  
  3752. The diagnostic page codes for direct-access devices are defined in Table 8-
  3753. 41.
  3754.  
  3755.                       Table 8-41: Diagnostic Page Codes
  3756.  
  3757. ==============================================================================
  3758. Page Code     Description                                           Section
  3759. ------------  ----------------------------------------------------  ----------
  3760. 00h        Supported Diagnostic Pages                            7.3.1.1
  3761. 40h        Translate Address Page                                8.3.1.1
  3762. 01h - 3Fh     Reserved (for all device type pages)
  3763. 41h - 7Fh     Reserved
  3764. 80h - FFh     Vendor-specific pages
  3765. ==============================================================================
  3766.  
  3767. 8.3.1.1. Translate Address Page - SEND DIAGNOSTIC
  3768. The translate address page allows the initiator to translate a logical block
  3769. address, physical sector address or physical bytes from index address into any
  3770. one of the other formats.  The address to be translated is passed to the
  3771. target with the SEND DIAGNOSTIC command and the results are returned to the
  3772. initiator by the RECEIVE DIAGNOSTIC RESULTS command.  The format of the
  3773. translate address page - SEND DIAGNOSTIC is shown in Table 8-42.  The
  3774. translated address is returned in the translate address page - RECEIVE
  3775. DIAGNOSTIC RESULTS (see Table 8-43).
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781. SCSI-2 draft proposed American National Standard        8-62      Revision 10c62
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789. Direct-Access Devices                                                   3/9/90
  3790.  
  3791. ==============================================================================
  3792.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3793. Byte |        |        |        |        |        |        |        |        |
  3794. ==============================================================================
  3795.  0   |                           Page Code (40h)                             |
  3796. -----|-----------------------------------------------------------------------|
  3797.  1   |                           Reserved                                    |
  3798. -----|-----------------------------------------------------------------------|
  3799.  2   | (MSB)                                                                 |
  3800. -----|---                        Page Length (000Ah)                      ---|
  3801.  3   |                                                                 (LSB) |
  3802. -----|-----------------------------------------------------------------------|
  3803.  4   |                   Reserved                 |     Supplied Format      |
  3804. -----|-----------------------------------------------------------------------|
  3805.  5   |                   Reserved                 |     Translate Format     |
  3806. -----|-----------------------------------------------------------------------|
  3807.  6   |                                                                       |
  3808. - - -|- -                        Address to Translate                     - -|
  3809.  13  |                                                                       |
  3810. ==============================================================================
  3811.  
  3812. The supplied format field specifies the format of address to translate field.
  3813. Valid values for this field are defined in the FORMAT UNIT command (see Table
  3814. 8-5).  If the target does not support the requested format it shall terminate
  3815. the SEND DIAGNOSTIC command with CHECK CONDITION status.  The sense key shall
  3816. be set to ILLEGAL REQUEST and an additional sense code shall be set to INVALID
  3817. FIELD IN PARAMETER LIST.
  3818.  
  3819. The translate format field specifies which format the initiator would like the
  3820. address to be translated to.  Valid values for this field are defined in the
  3821. FORMAT UNIT command (see Table 8-5).  If the target does not support the
  3822. requested format it shall terminate the command with CHECK CONDITION status.
  3823. The sense key shall be set to ILLEGAL REQUEST and an additional sense code
  3824. shall be set to INVALID FIELD IN PARAMETER LIST.
  3825.  
  3826. The address to translate field contains a single address the initiator is
  3827. requesting the target to translate.  The format of this field depends on the
  3828. value in the supplied format field.  The formats are described in Tables 8-8,
  3829. 8-9 and 8-10.  If the logical block format is specified the block address
  3830. shall be in the first four bytes of the field with the remaining bytes set to
  3831. zero.
  3832.  
  3833. 8.3.1.2. Translate Address Page - RECEIVE DIAGNOSTIC
  3834. The translate address page allows the initiator to translate a logical block
  3835. address, physical sector address, or physical bytes from index address into
  3836. any one of the other formats.  The address to be translated is passed to the
  3837. target with the SEND DIAGNOSTIC command and the results are returned to the
  3838. initiator by the RECEIVE DIAGNOSTIC RESULTS command.  The translated address
  3839. is returned in the translate address page - RECEIVE DIAGNOSTIC (Table 8-43).
  3840.  
  3841.  
  3842. SCSI-2 draft proposed American National Standard        8-63      Revision 10c63
  3843.  
  3844.  
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850. Direct-Access Devices                                                   3/9/90
  3851.  
  3852.  
  3853. ==============================================================================
  3854.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  3855. Byte |        |        |        |        |        |        |        |        |
  3856. ==============================================================================
  3857.  0   |                           Page Code (40h)                             |
  3858. -----|-----------------------------------------------------------------------|
  3859.  1   |                           Reserved                                    |
  3860. -----|-----------------------------------------------------------------------|
  3861.  2   | (MSB)                                                                 |
  3862. -----|---                        Page Length                              ---|
  3863.  3   |                                                                 (LSB) |
  3864. -----|-----------------------------------------------------------------------|
  3865.  4   |                   Reserved                 |     Supplied Format      |
  3866. -----|-----------------------------------------------------------------------|
  3867.  5   | RAREA  | ALTSEC | ALTTRK |     Reserved    |     Translated Format    |
  3868. -----|-----------------------------------------------------------------------|
  3869.  6   |                                                                       |
  3870. - - -|- -                        Translated Address 1                     - -|
  3871.  13  |                                                                       |
  3872. -----|-----------------------------------------------------------------------|
  3873.  14  |                                                                       |
  3874. - - -|- -                        Translated Address 2 (if required)       - -|
  3875.  21  |                                                                       |
  3876. - - -|- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -|
  3877.  n   |                                                                       |
  3878. - - -|- -                        Translated Address n (if required)       - -|
  3879.  nn  |                                                                       |
  3880. ==============================================================================
  3881.  
  3882.  
  3883. The translate address page contains a four byte page header which specifies
  3884. the page code and length followed by two bytes which describe the translated
  3885. address followed by zero or more translated address(s).
  3886.  
  3887. The page length field contains the number of parameter bytes which follow.
  3888.  
  3889. The supplied format field contains the value from the SEND DIAGNOSTIC command
  3890. supplied format field (see 8.3.1.1).
  3891.  
  3892. A reserved area (RAREA) bit of one indicates that all or part of the
  3893. translated address falls within a reserved area of the medium (e.g., speed
  3894. tolerance gap, alternate sector, vendor reserved area, etc.).  If the entire
  3895. translated address falls within a reserved area the target may not return a
  3896. translated address.  An RAREA bit of zero indicates that no part of the
  3897. translated address falls within a reserved area of the medium.
  3898.  
  3899. An alternate sector (ALTSEC) bit of one indicates that the translated address
  3900.  
  3901.  
  3902.  
  3903. SCSI-2 draft proposed American National Standard        8-64      Revision 10c64
  3904.  
  3905.  
  3906.  
  3907.  
  3908.  
  3909.  
  3910.  
  3911. Direct-Access Devices                                                   3/9/90
  3912.  
  3913. is physically located in an alternate sector of the medium.  If the target
  3914. cannot determine if all or part of the translated address is located in an
  3915. alternate sector it shall set this bit to zero.  An ALTSEC bit of zero
  3916. indicates that no part of the translated address is located in an alternate
  3917. sector of the medium or that the target is unable to determine this
  3918. information.
  3919.  
  3920. An alternate track (ALTTRK) bit of one indicates that part or all of the
  3921. translated address is located on an alternate track of the medium or the
  3922. target cannot determine if all or part of the translated address is located on
  3923. an alternate track.  An ALTTRK bit of zero indicates that no part of the
  3924. translated address is located on an alternate track of the medium.
  3925.  
  3926. The translated format field contains the value from the SEND DIAGNOSTIC
  3927. command translate format field (see 8.3.1.1).
  3928.  
  3929. The translated address field contains the address(s) the target translated
  3930. from the address supplied by the initiator in the SEND DIAGNOSTIC command.
  3931. This field shall be in the format specified in the translate format field. The
  3932. different formats are described in Tables 8-8, 8-9 and 8-10.  If the logical
  3933. block format is specified the block address shall be in the first four bytes
  3934. of the field and the remaining bytes shall be set to zero.
  3935.  
  3936. If the returned data is in the logical block or physical sector format and the
  3937. address to be translated covers more than one address after it has been
  3938. translated (e.g., accounting for speed tolerance or multiple physical sectors
  3939. within a single logical block or multiple logical blocks within a single
  3940. physical sector) the target shall return all possible addresses which are
  3941. contained in the area specified by the address to be translated.
  3942.  
  3943. If the returned data is in bytes from index format the target shall return a
  3944. pair of translated values for each of the possible addresses which are
  3945. contained in the area specified by the address to translate field.  Of the
  3946. pair of translated values returned, the first indicates the starting location
  3947. and the second the ending location of the area.
  3948.  
  3949. 8.3.2. Log Parameters
  3950.  
  3951. This section defines the descriptors and pages for log parameters used with
  3952. direct-access devices.
  3953.  
  3954. The log page codes for direct-access devices are defined in Table 8-44.
  3955.  
  3956.                           Table 8-44: Log Page Codes
  3957.  
  3958.  
  3959.  
  3960.  
  3961.  
  3962.  
  3963.  
  3964. SCSI-2 draft proposed American National Standard        8-65      Revision 10c65
  3965.  
  3966.  
  3967.  
  3968.  
  3969.  
  3970.  
  3971.  
  3972. Direct-Access Devices                                                   3/9/90
  3973.  
  3974.  
  3975. ==============================================================================
  3976.   Page Code   Description                                           Section
  3977. ------------------------------------------------------------------------------
  3978. 01h        Buffer Over-Run/Under-Run Page                        7.3.2.1
  3979. 03h        Error Counter Page (Read) Page                        7.3.2.2
  3980. 05h        Error Counter Page (Verify) Page                      7.3.2.2
  3981. 02h        Error Counter Page (Write) Page                       7.3.2.2
  3982. 07h        Last n Error Events Page                              7.3.2.3
  3983. 06h        Non-Medium Error Page                                 7.3.2.4
  3984. 00h        Supported Log Pages                                   7.3.2.5
  3985. 04h        Reserved
  3986. 08h - 2Fh  Reserved
  3987. 3Fh        Reserved
  3988. 30h - 3Eh  Vendor-specific pages
  3989. ==============================================================================
  3990.  
  3991.  
  3992. 8.3.3. Mode Parameters
  3993.  
  3994. This section defines the descriptors and pages for mode parameters used with
  3995. direct-access devices.
  3996.  
  3997. The mode parameter list, including the mode parameter header and mode block
  3998. descriptor are described in 7.3.3.
  3999.  
  4000. The medium-type code field is contained in the mode parameter header (see
  4001. Table 7-61 and 7-62).  Table 8-45 defines this field for direct-access
  4002. devices.
  4003.  
  4004.                  Table 8-45: Direct-Access Medium-Type Codes
  4005.  
  4006.  
  4007.  
  4008.  
  4009.  
  4010.  
  4011.  
  4012.  
  4013.  
  4014.  
  4015.  
  4016.  
  4017.  
  4018.  
  4019.  
  4020.  
  4021.  
  4022.  
  4023.  
  4024.  
  4025. SCSI-2 draft proposed American National Standard        8-66      Revision 10c66
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033. Direct-Access Devices                                                   3/9/90
  4034.  
  4035.  
  4036. ==============================================================================
  4037. Code Value                       Medium Type
  4038. ----------  ------------------------------------------------------------------
  4039.    00h      Default medium type (currently mounted medium type)
  4040.    01h      Flexible disk, single-sided; unspecified medium
  4041.    02h      Flexible disk, double-sided; unspecified medium
  4042.  
  4043.                                Flexible Disks
  4044.             Diameter    Bit Density  Track Density  Number        Reference
  4045.             mm (inch)   Bits/Radian  /mm (/inch)    Of Sides      Standard
  4046.             ----------  -----------  -------------  --------  ----------------
  4047.    05h      200 (8.0)      6631        1.9 (48)        1      ANSI X3.73-1980
  4048.    06h      200 (8.0)      6631        1.9 (48)        2          (Note 1)
  4049.    09h      200 (8.0)     13262        1.9 (48)        1            None
  4050.    0Ah      200 (8.0)     13262        1.9 (48)        2      ANSI X3.121-1984
  4051.    0Dh      130 (5.25)     3979        1.9 (48)        1      ANSI X3.82-1980
  4052.    12h      130 (5.25)     7958        1.9 (48)        2      ANSI X3.125-1985
  4053.    16h      130 (5.25)     7958        3.8 (96)        2      ANSI X3.126-1986
  4054.    1Ah      130 (5.25)    13262        3.8 (96)        2      ISO DIS8630-1985
  4055.    1Eh       90 (3.5)      7958        5.3 (135)       2        ANSI X3.137
  4056.                                                                   (Note 2)
  4057.                        Direct-Access Magnetic Tapes
  4058.             Width                Density        Reference
  4059.             mm (inch)    Tracks  ftpmm (ftpi)   Standard
  4060.             -----------  ------  ------------  -----------
  4061.    40h       6.3 (0.25)    12    394 (10000)     Note 1
  4062.    44h       6.3 (0.25)    24    394 (10000)     Note 1
  4063.  
  4064. 80h - FFh   Vendor-Specific
  4065. All others  Reserved
  4066. ==============================================================================
  4067.  
  4068.  
  4069. NOTES:
  4070. (1) See Appendix D for additional standards information.
  4071. (2) This standard is under development.  Please contact the Secretariat for
  4072. current information on status and availability.
  4073.  
  4074. The device specific parameter field (Table 8-46) is contained in the mode
  4075. parameter header (see Table 7-61 and 7-62).
  4076.  
  4077.                     Table 8-46: Device Specific Parameter
  4078.  
  4079.  
  4080.  
  4081.  
  4082.  
  4083.  
  4084.  
  4085.  
  4086. SCSI-2 draft proposed American National Standard        8-67      Revision 10c67
  4087.  
  4088.  
  4089.  
  4090.  
  4091.  
  4092.  
  4093.  
  4094. Direct-Access Devices                                                   3/9/90
  4095.  
  4096.  
  4097. ==============================================================================
  4098.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  4099. ==============================================================================
  4100.      |   WP   |     Reserved    | DPOFUA |             Reserved              |
  4101. ==============================================================================
  4102.  
  4103.  
  4104. A write protect (WP) bit of zero indicates that the medium is write enabled.
  4105. A WP bit of one indicates that the medium is write protected.
  4106.  
  4107. When used with the MODE SELECT command, the DPOFUA bit is not used and the
  4108. field is reserved.
  4109.  
  4110. When used with the MODE SENSE command, a DPOFUA bit of zero indicates that the
  4111. target does not contain a cache memory.  A DPOFUA bit of one indicates that
  4112. the target the DPO and FUA bits(see 8.2.6).
  4113.  
  4114. The density code field is contained in the mode parameter block descriptor
  4115. (see Table 7-63).  This field is reserved for direct-access devices.
  4116.  
  4117. The mode page codes for direct-access devices are shown in Table 8-47.
  4118.  
  4119.                          Table 8-47: Mode Page Codes
  4120.  
  4121. ==============================================================================
  4122. Page Code     Description                                           Section
  4123. ------------------------------------------------------------------------------
  4124. 08h        Caching Page                                          8.3.3.1
  4125. 0Ah        Control Mode Page                                     7.3.3.1
  4126. 02h        Disconnect-Reconnect Page                             7.3.3.2
  4127. 05h        Flexible Disk Page                                    8.3.3.2
  4128. 03h        Format Device Page                                    8.3.3.3
  4129. 0Bh        Medium Types Supported Page                           8.3.3.4
  4130. 0Ch        Notch and Partition Page                              8.3.3.5
  4131. 09h        Peripheral Device Page                                7.3.3.3
  4132. 01h        Read-Write Error Recovery Page                        8.3.3.6
  4133. 04h        Rigid Disk Geometry Page                              8.3.3.7
  4134. 07h        Verify Error Recovery Page                            8.3.3.8
  4135. 00h        Vendor-Specific (does not require page format)
  4136. 06h        Reserved
  4137. 0Dh - 1Fh     Reserved
  4138. 3Fh        Return all pages (valid only for the MODE SENSE command)
  4139. 20h - 3Eh     Vendor-specific
  4140. ==============================================================================
  4141.  
  4142.  
  4143. For direct-access devices, if the notch page is not supported, or if the
  4144.  
  4145.  
  4146.  
  4147. SCSI-2 draft proposed American National Standard        8-68      Revision 10c68
  4148.  
  4149.  
  4150.  
  4151.  
  4152.  
  4153.  
  4154.  
  4155. Direct-Access Devices                                                   3/9/90
  4156.  
  4157. active notch field in the notch page is zero then each page descriptor
  4158. specifies mode parameters for the target to use for subsequent operations on
  4159. the specified logical unit.  If the notch page is supported, and the active
  4160. notch is not zero, then each page descriptor specifies parameters for the
  4161. target to use for subsequent operations on the disk notch specified by the
  4162. current value of the active notch field on the specified logical unit.
  4163.  
  4164. 8.3.3.1. Caching Page
  4165.  
  4166.                            Table 8-48: Caching Page
  4167.  
  4168. ==============================================================================
  4169.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  4170. Byte |        |        |        |        |        |        |        |        |
  4171. ==============================================================================
  4172.  0   |   PS   |Reserved|        Page Code (08h)                              |
  4173. -----|-----------------------------------------------------------------------|
  4174.  1   |                          Page Length (0Ah)                            |
  4175. -----|-----------------------------------------------------------------------|
  4176.  2   |                          Reserved          |  WCE   |   MF   |  RCD   |
  4177. -----|-----------------------------------------------------------------------|
  4178.  3   |   Demand Read Retention Priority  |     Write Retention Priority      |
  4179. -----|-----------------------------------------------------------------------|
  4180.  4   | (MSB)                                                                 |
  4181. -----|---                       Disable Pre-fetch Transfer Length         ---|
  4182.  5   |                                                                 (LSB) |
  4183. -----|-----------------------------------------------------------------------|
  4184.  6   | (MSB)                                                                 |
  4185. -----|---                       Minimum Pre-fetch                         ---|
  4186.  7   |                                                                 (LSB) |
  4187. -----|-----------------------------------------------------------------------|
  4188.  8   | (MSB)                                                                 |
  4189. -----|---                       Maximum Pre-fetch                         ---|
  4190.  9   |                                                                 (LSB) |
  4191. -----|-----------------------------------------------------------------------|
  4192.  10  | (MSB)                                                                 |
  4193. -----|---                       Maximum Pre-fetch Ceiling                 ---|
  4194.  11  |                                                                 (LSB) |
  4195. ==============================================================================
  4196.  
  4197.  
  4198. The caching parameters page (Table 8-48) defines the parameters that affect
  4199. the use of the cache.
  4200.  
  4201. The parameters savable (PS) bit is only used with the MODE SENSE command.
  4202. This bit is reserved with the MODE SELECT command.  A PS bit of one indicates
  4203. that the target is capable of saving the page in a non-volatile vendor-
  4204. specific location.
  4205.  
  4206. A write cache enable (WCE) bit of zero specifies that the target shall return
  4207.  
  4208. SCSI-2 draft proposed American National Standard        8-69      Revision 10c69
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216. Direct-Access Devices                                                   3/9/90
  4217.  
  4218. GOOD status for a WRITE command after successfully writing all of the data to
  4219. the medium.  A WCE bit of one specifies that the target may return GOOD status
  4220. for a WRITE command after successfully receiving the data and prior to having
  4221. successfully written it to the medium.
  4222.  
  4223. A multiplication factor (MF) bit of zero specifies that the target shall
  4224. interpret the minimum and maximum pre-fetch fields in terms of the number of
  4225. logical blocks for each of the respective types of pre-fetch.  An MF bit of
  4226. one specifies that the target shall interpret the minimum and maximum pre-
  4227. fetch fields to be specified in terms of a scalar number which, when
  4228. multiplied by the number of logical blocks to be transferred for the current
  4229. command, yields the number of logical blocks for each of the respective types
  4230. of pre-fetch.
  4231.  
  4232. A read cache disable (RCD) bit of zero specifies that the target may return
  4233. data requested by a READ command by accessing either the cache or media.  A
  4234. RCD bit of one specifies that the target shall transfer all of the data
  4235. requested by a READ command from the medium (i.e., data cannot be transferred
  4236. from the cache).
  4237.  
  4238. The demand read retention priority field (see Table 8-48) advises the target
  4239. on the retention priority to assign data read into the cache that has also
  4240. been transferred from the target to the initiator.
  4241.  
  4242. The write retention priority field (see Table 8-48) advises the target on the
  4243. retention priority to assign data written into the cache that has also been
  4244. transferred from the cache memory to the medium.
  4245.  
  4246.              Table 8-49: Demand Read and Write Retention Priority
  4247.  
  4248.  
  4249.  
  4250.  
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259.  
  4260.  
  4261.  
  4262.  
  4263.  
  4264.  
  4265.  
  4266.  
  4267.  
  4268.  
  4269. SCSI-2 draft proposed American National Standard        8-70      Revision 10c70
  4270.  
  4271.  
  4272.  
  4273.  
  4274.  
  4275.  
  4276.  
  4277. Direct-Access Devices                                                   3/9/90
  4278.  
  4279.  
  4280. ==============================================================================
  4281.   Value    Description
  4282. -------    -------------------------------------------------------------------
  4283. 0h       Indicates the target should not distinguish between retaining the
  4284. indicated data and data placed into the cache memory by other means (e.g.,
  4285. pre-fetch).
  4286.  
  4287. 1h       Demand Read Retention Priority:  Data put into the cache via a READ
  4288. command should be replaced sooner (has lower priority) than data placed into
  4289. the cache by other means (e.g., pre-fetch).
  4290.  
  4291.          Write Retention Priority:  Data put into the cache during a WRITE or
  4292. WRITE AND VERIFY command should be replaced sooner (has lower priority) than
  4293. data placed into the cache by other means (e.g., pre-fetch).
  4294.  
  4295. Fh       Demand Read Retention Priority:  Data put into the cache via a READ
  4296. command should not be replaced if there is other data in the cache that was
  4297. placed into the cache by other means (e.g., pre-fetch) and it may be replaced
  4298. (i.e., it is not locked).
  4299.  
  4300.          Write Retention Priority:  Data put into the cache during a WRITE or
  4301. WRITE AND VERIFY command should not be replaced if there is other data in the
  4302. cache that was placed into the cache by other means (e.g., pre-fetch) and it
  4303. may be replaced (i.e., it is not locked).
  4304.  
  4305. 2h-Eh    Reserved
  4306.  
  4307. ==============================================================================
  4308.  
  4309.  
  4310. An anticipatory pre-fetch occurs when data is placed in the cache that has not
  4311. been requested.  This usually happens in conjunction with the reading of data
  4312. that has been requested.  All the following parameters give an indication to
  4313. the target how it should manage the cache based on the last READ command.  An
  4314. anticipatory pre-fetch may occur based on other information. All the remaining
  4315. caching parameters are only recommendations to the target and should not cause
  4316. a CHECK CONDITION to occur if the target cannot satisfy the request.
  4317.  
  4318. The disable pre-fetch transfer length field specifies the selective disabling
  4319. of anticipatory pre-fetch on long transfer lengths.  The value in this field
  4320. is compared to the number of blocks requested by the current READ command.  If
  4321. the number of blocks is greater than the disable pre-fetch transfer length,
  4322. then an anticipatory pre-fetch is not done for the command.  Otherwise the
  4323. target should attempt an anticipatory pre-fetch.  If the pre- fetch disable
  4324. transfer length is set to zero, then all anticipatory pre- fetching is
  4325. disabled for any request for data, including those for zero logical blocks.
  4326.  
  4327. The minimum pre-fetch field specifies either a number of blocks or a scalar
  4328.  
  4329.  
  4330. SCSI-2 draft proposed American National Standard        8-71      Revision 10c71
  4331.  
  4332.  
  4333.  
  4334.  
  4335.  
  4336.  
  4337.  
  4338. Direct-Access Devices                                                   3/9/90
  4339.  
  4340. multiplier of the transfer length, depending upon the setting of the MF bit.
  4341. In either case, the resulting number of blocks is the number to pre-fetch
  4342. regardless of the delays it might cause in executing subsequent commands.
  4343.  
  4344. The pre-fetching operation begins at the logical block immediately after the
  4345. last logical block of the previous READ command.  Pre-fetching shall always
  4346. halt before the end of the media.  Errors that occur during the pre-fetching
  4347. operation shall not be reported to the initiator unless that target cannot, as
  4348. a result of the error, execute subsequent commands correctly.  In this case
  4349. the error may be reported either immediately as an error for the current READ
  4350. command, or as a deferred error, at the discretion of the target and according
  4351. to the rules for reporting deferred errors.
  4352.  
  4353. A minimum pre-fetch field of zero indicates that pre-fetching should be
  4354. terminated whenever another command is ready for executing.  This
  4355. consideration is ignored when the minimum pre-fetch is equal to the maximum
  4356. pre-fetch.
  4357.  
  4358. The maximum pre-fetch field specifies either a number of blocks or a scalar
  4359. multiplier of the transfer length, depending upon the setting of the MF bit.
  4360. In either case, the resulting number of blocks is the number to pre-fetch if
  4361. there are no delays in executing subsequent commands.
  4362.  
  4363. The maximum pre-fetch field contains the maximum amount of data to pre-fetch
  4364. into the cache as a result of one READ command.  It is used in conjunction
  4365. with the disable pre-fetch transfer length and maximum pre-fetch ceiling
  4366. parameters to trade off pre-fetching new data with displacing old data already
  4367. stored in the cache.
  4368.  
  4369. The maximum pre-fetch ceiling field specifies an upper limit on the number of
  4370. logical blocks computed as the maximum pre-fetch.  If this number of blocks is
  4371. greater than the maximum pre-fetch ceiling, then the number of logical blocks
  4372. to maximally pre-fetch shall be truncated to the value stored in the ceiling
  4373. field.
  4374.  
  4375. IMPLEMENTORS NOTE:  If the MF bit is one the maximum pre-fetch ceiling field
  4376. is useful in limiting the amount of data to be pre-fetched.
  4377.  
  4378. 8.3.3.2. Flexible Disk Page
  4379.  
  4380.  
  4381.  
  4382.  
  4383.  
  4384.  
  4385.  
  4386.  
  4387.  
  4388.  
  4389.  
  4390.  
  4391. SCSI-2 draft proposed American National Standard        8-72      Revision 10c72
  4392.  
  4393.  
  4394.  
  4395.  
  4396.  
  4397.  
  4398.  
  4399. Direct-Access Devices                                                   3/9/90
  4400.  
  4401.  
  4402.                  Table 8-50: Flexible Disk Page (Bytes 0-19)
  4403.  
  4404. ==============================================================================
  4405.   Bit|    7   |    6   |    5   |    4   |    3   |    2   |    1   |    0   |
  4406. Byte |        |        |        |        |        |        |        |        |
  4407. ==============================================================================
  4408.  0   |    PS  |Reserved|         Page Code (05h)                             |
  4409. -----|-----------------------------------------------------------------------|
  4410.  1   |                           Page Length in Bytes (1Eh)                  |
  4411. -----|-----------------------------------------------------------------------|
  4412.  2   | (MSB)                                                                 |
  4413. -----|---                        Transfer Rate                            ---|
  4414.  3   |                                                                  (LSB)|
  4415. -----|-+---------------------------------------------------------------------|
  4416.  4   |                           Number of Heads                             |
  4417. -----|-----------------------------------------------------------------------|
  4418.  5   |                           Sectors per Track                           |
  4419. -----|-----------------------------------------------------------------------|
  4420.  6   | (MSB)                                                                 |
  4421. -----|---                     Data Bytes per Sector                      ----|
  4422.  7   |                                                                  (LSB)|
  4423. -----|-+---------------------------------------------------------------------|
  4424.  8   | (MSB)                                                                 |
  4425. -----|---                       Number of Cylinders                       ---|
  4426.  9   |                                                                  (LSB)|
  4427. -----|-----------------------------------------------------------------------|
  4428.  10  | (MSB)                                                                 |
  4429. -----|---                Starting Cylinder-Write Precompensation             |
  4430.  11  |                                                                  (LSB)|
  4431. -----|-+--------------------------------------------------------------------|
  4432.  12  | (MSB)                                                                 |
  4433. -----|---                Starting Cylinder-Reduced Write Current             |
  4434.  13  |                                                                  (LSB)|
  4435. -----|-----------------------------------------------------------------------|
  4436.  14  | (MSB)                                                                 |
  4437. -----|---                       Drive Step Rate                           ---|
  4438.  15  |                                                                  (LSB)|
  4439. -----|-+---------------------------------------------------------------------|
  4440.  16  |                          Drive Step Pulse Width                       |
  4441. -----|-----------------------------------------------------------------------|
  4442.  17  | (MSB)                                                                 |
  4443. -----|---                       Head Settle Delay                         ---|
  4444.  18  |                                                                  (LSB)|
  4445. -----|-----------------------------------------------------------------------|
  4446.  19  |                          Motor on Delay                               |
  4447. ==============================================================================
  4448.  
  4449. The definition of this page is continued.
  4450.                 Table 8-51: Flexible Disk Page (Bytes 20-31)
  4451.  
  4452. SCSI-2 draft proposed American National Standard        8-73      Revision 10c73
  4453.  
  4454.  
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460. Direct-Access Devices                                                   3/9/90
  4461.  
  4462.  
  4463. ==============================================================================
  4464.  Bit |    7   |    6   |    5   |    4   |    3   |    2   |    1   |    0
  4465. |
  4466. Byte |        |        |        |        |        |        |        |
  4467. |
  4468. ==============================================================================
  4469.  20  |                          Motor off Delay                              |
  4470. -----|-----------------------------------------------------------------------|
  4471.  21  | TRDY   |   SSN  |   MO   |            Reserved                        |
  4472. -----|-----------------------------------------------------------------------|
  4473.  22  |            Reserved               |               SPC                 |
  4474. -----|-----------------------------------------------------------------------|
  4475.  23  |                          Write Compensation                           |
  4476. -----|-----------------------------------------------------------------------|
  4477.  24  |                          Head Load Delay                              |
  4478. -----|-----------------------------------------------------------------------|
  4479.  25  |                          Head Unload Delay                            |
  4480. -----|-----------------------------------------------------------------------|
  4481.  26  |             Pin 34                |               Pin 2               |
  4482. -----|-----------------------------------------------------------------------|
  4483.  27  |             Pin 4                 |               Pin 1               |
  4484. -----|-+---------------------------------------------------------------------|
  4485.  28  | (MSB)                                                                 |
  4486. -----|---                       Medium Rotation Rate                      ---|
  4487.  29  |                                                                 (LSB) |
  4488. -----|-----------------------------------------------------------------------|
  4489.  30  |                          Reserved                                     |
  4490. -----|-----------------------------------------------------------------------|
  4491.  31  |                          Reserved                                     |
  4492. ==============================================================================
  4493.  
  4494.  
  4495. The flexible disk page (Tables 8-50 and 8-51) contains parameters for control
  4496. and reporting of flexible disk drive parameters.
  4497.  
  4498. This page is 32 bytes in length.  Bytes 0-19 are defined in Table 8-49 and
  4499. bytes 20-31 are defined in Table 8-50.
  4500.  
  4501. The parameters savable (PS) bit is only used with the MODE SENSE command.
  4502. This bit is reserved with the MODE SELECT command.  A PS bit of one indicates
  4503. that the target is capable of saving the page in a non-volatile vendor-
  4504. specific location.
  4505.  
  4506. IMPLEMENTORS NOTE:  This page is mainly intended for defining parameters of
  4507. flexible disk drives, but may be used for other devices, if applicable.
  4508.  
  4509. The transfer rate indicates in kilobits per second the data rate of the
  4510. peripheral device.
  4511.  
  4512.  
  4513. SCSI-2 draft proposed American National Standard        8-74      Revision 10c74
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521. Direct-Access Devices                                                   3/9/90
  4522.  
  4523.                             Common Transfer Rates
  4524.                   ------------------------------------------
  4525.                   MSB   LSB   DESCRIPTION OF TRANSFER RATE
  4526.                   ---   ---   ------------------------------
  4527.                   00h   FAh   250 kbit/second transfer rate
  4528.                   01h   2Ch   300 kbit/second transfer rate
  4529.                   01h   F4h   500 kbit/second transfer rate
  4530.                   03h   E8h   1 megabit/second transfer rate
  4531.                   07h   D0h   2 megabit/second transfer rate
  4532.                   13h   88h   5 megabit/second transfer rate
  4533.                   ------------------------------------------
  4534.  
  4535. The number of heads field specifies the number of heads used for reading and
  4536. writing data on the medium.  Heads used exclusively for servo information are
  4537. excluded.
  4538.  
  4539. The sectors per track field specifies the number of sectors per revolution per
  4540. head.
  4541.  
  4542. The data bytes per sector field specifies the number of bytes of data per
  4543. sector that an initiator can read or write.
  4544.  
  4545. The number of cylinders field specifies the number of cylinders used for data
  4546. storage.
  4547.  
  4548. The starting cylinder for write precompensation field specifies the cylinder
  4549. at which write precompensation is to begin.  Cylinders are numbered starting
  4550. with zero.  If the starting cylinder for write precompensation is equal to the
  4551. value in the number of cylinders field, write precompensation shall be
  4552. disabled by the target.
  4553.  
  4554. The starting cylinder for reduced write current field specifies cylinder at
  4555. which write current is reduced.  Cylinders are numbered starting with zero.
  4556. If the starting cylinder for reduced write current is equal to the value in
  4557. the number of cylinders field, reduced write current shall be disabled by the
  4558. target.
  4559.  
  4560. The drive step rate field specifies the step rate in units of 100
  4561. microseconds.  This value may be rounded as defined in 6.5.4.  A value of zero
  4562. requests the target to set its default value.
  4563.  
  4564. The drive step pulse width field specifies the width of the step pulse in
  4565. microseconds.  This value may be rounded as defined in 6.5.4.  A value of zero
  4566. requests the target to set its default value.
  4567.  
  4568. The head settle delay field specifies the head settle time in units of 100
  4569. microseconds.  This value may be rounded as defined in 6.5.4.  A value of zero
  4570. requests the target to set its default value.
  4571.  
  4572. If a true ready signal is not available, the motor on delay field specifies in
  4573.  
  4574. SCSI-2 draft proposed American National Standard        8-75      Revision 10c75
  4575.  
  4576.  
  4577.  
  4578.  
  4579.  
  4580.  
  4581.  
  4582. Direct-Access Devices                                                   3/9/90
  4583.  
  4584. tenths of a second the time that the target shall wait before attempting to
  4585. access the medium after the motor on signal is asserted.  If a true ready
  4586. signal is available, the motor on delay field specifies in tenths of a second
  4587. the time that the target shall wait for drive ready status before aborting an
  4588. attempt to access the medium.  This value may be rounded as defined in 6.5.4.
  4589.  
  4590.  
  4591. The motor off delay field specifies in tenths of a second the time that the
  4592. target shall wait before releasing the motor on signal after an idle condition
  4593. exists.  A value of FFh indicates that the motor on signal shall not be
  4594. released.  The START STOP UNIT command is not affected by this parameter. This
  4595. value may be rounded as defined in 6.5.4.
  4596.  
  4597. A true ready (TRDY) bit of one specifies that a signal is provided that
  4598. indicates the medium is ready to be accessed.
  4599.  
  4600. A start sector number (SSN) bit of one specifies that sectors are numbered
  4601. starting with one.  An SSN bit of zero specifies that sectors are numbered
  4602. starting with zero.
  4603.  
  4604. A motor on (MO) bit of one specifies that pin 16 (motor on) shall remain
  4605. released.  This bit shall be set to one when using high capacity (192 tracks
  4606. per inch) drives and their pre-formatted diskettes.  An MO bit of zero
  4607. indicates that pin 16 (motor on) shall be asserted.
  4608.  
  4609. The step pulse per cylinder (SPC) field is used to specify the number of
  4610. additional step pulses required per cylinder.  Non-zero values allow a drive
  4611. to read a diskette formatted on a drive with a lower number of tracks per
  4612. inch.  For example, a value of one allows a 96 track-per-inch drive to access
  4613. tracks on a diskette that was formatted for 48 tracks per inch.
  4614.  
  4615. The write compensation field is used to specify the amount of write
  4616. compensation to be used starting at the cylinder specified in the starting
  4617. cylinder for write precompensation field.  The correlation of any values used
  4618. in this field to actual write precompensation time values is vendor-specific.
  4619. If a zero is specified in this field the target shall use its default write
  4620. precompensation value.  This value may be rounded as defined in 6.5.4.
  4621.  
  4622. The head load delay field specifies the head loading time in milliseconds.
  4623. This value may be rounded as defined in 6.5.4.  A value of zero requests the
  4624. target to set its default value.
  4625.  
  4626. The head unload delay field specifies the head unloading time in milliseconds.
  4627. This value may be rounded as defined in 6.5.4.  A value of zero requests the
  4628. target to set its default value.
  4629.  
  4630. The Pin 34 field defines the usage of pin 34 of the flexible disk drive
  4631. interface.  This use of this pin varies among vendors and drives.  The
  4632. following settings allow the initiator to select how pin 34 shall be used by
  4633. the interface.
  4634.  
  4635. SCSI-2 draft proposed American National Standard        8-76      Revision 10c76
  4636.  
  4637.  
  4638.  
  4639.  
  4640.  
  4641.  
  4642.  
  4643. Direct-Access Devices                                                   3/9/90
  4644.  
  4645.  
  4646.                 Bit   7   6   5   4   Pin 34 Use
  4647.                 -------------------   -------------------------
  4648.  
  4649.                       P   0   0   0   Open
  4650.                       P   0   0   1   Ready
  4651.                       P   0   1   0   Disk Changed
  4652.                       P   0   1   1   Reserved
  4653.                       P   1   X   X   Reserved - X is 0 or 1
  4654.                       |
  4655.                       |
  4656.                       +-----  Polarity Bit - "0" - Active Low
  4657.                                              "1" - Active High
  4658.  
  4659. The Pin 4 field defines the usage of pin 4 of the flexible disk drive
  4660. interface.  This use of this pin varies among drive vendors and drives.   The
  4661. following settings allow the initiator to specify how pin 4 shall be used by
  4662. the interface.
  4663.  
  4664.                 BIT   7   6   5   4   Pin 4 Use
  4665.                 -------------------   --------------------------
  4666.  
  4667.                       P   0   0   0   Open
  4668.                       P   0   0   1   In Use
  4669.                       P   0   1   0   Eject
  4670.                       P   0   1   1   Head Load
  4671.                       P   1   X   X   Reserved - X is "0" or "1"
  4672.                       |
  4673.                       |
  4674.                       +-----  Polarity Bit - "0" - Active Low
  4675.                                              "1" - Active High
  4676.  
  4677.  
  4678. The Pin 1 field defines the usage of pin 1 of the flexible disk drive
  4679. interface.  This use of this pin varies among vendors and drives.  The
  4680. following settings allow the initiator to specify how pin 1 shall be used by
  4681. the interface.
  4682.  
  4683.                 Bit   3   2   1   0   Pin 1 Use
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696. SCSI-2 draft proposed American National Standard        8-77      Revision 10c77
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702.  
  4703.  
  4704. Direct-Access Devices                                                   3/9/90
  4705.  
  4706.                 -------------------   ------------------------
  4707.  
  4708.                       P   0   0   0   Open (Pin 1 is not used)
  4709.                       P   0   0   1   Disk Change Reset
  4710.                       P   0   1   X   Reserved
  4711.                       P   1   X   X   Reserved
  4712.                       |
  4713.                       |
  4714.                       +-----  Polarity Bit - "0" - Active Low
  4715.                                              "1" - Active High
  4716.  
  4717.  
  4718. The medium rotation rate field specifies the speed at which the medium
  4719. rotates.  The unit of measure is rotations per minute (e.g., 2400 rpm).  This
  4720. field cannot be changed by a MODE SELECT command.
  4721.  
  4722. 8.3.3.3. Format Device Page
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757. SCSI-2 draft proposed American National Standard        8-78      Revision 10c78
  4758.  
  4759.  
  4760.  
  4761.  
  4762.  
  4763.  
  4764.  
  4765. Direct-Access Devices                                                   3/9/90
  4766.  
  4767.  
  4768.                         Table 8-52: Format Device Page
  4769.  
  4770. ==============================================================================
  4771.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  4772. Byte |        |        |        |        |        |        |        |        |
  4773. ==============================================================================
  4774.  0   |   PS   |Reserved|            Page Code (03h)                          |
  4775. -----|-----------------------------------------------------------------------|
  4776.  1   |                              Page Length (16h)                        |
  4777. -----|-----------------------------------------------------------------------|
  4778.  2   | (MSB)                                                                 |
  4779. -----|---                  Tracks per Zone                                ---|
  4780.  3   |                                                                 (LSB) |
  4781. -----|-----------------------------------------------------------------------|
  4782.  4   | (MSB)                                                                 |
  4783. -----|---                  Alternate Sectors per Zone                     ---|
  4784.  5   |                                                                 (LSB) |
  4785. -----|-----------------------------------------------------------------------|
  4786.  6   | (MSB)                                                                 |
  4787. -----|---                  Alternate Tracks per Zone                      ---|
  4788.  7   |                                                                 (LSB) |
  4789. -----|-----------------------------------------------------------------------|
  4790.  8   | (MSB)                                                                 |
  4791. -----|---                  Alternate Tracks per Logical Unit              ---|
  4792.  9   |                                                                 (LSB) |
  4793. -----|-----------------------------------------------------------------------|
  4794.  10  | (MSB)                                                                 |
  4795. -----|---                  Sectors per Track                              ---|
  4796.  11  |                                                                 (LSB) |
  4797. -----|-----------------------------------------------------------------------|
  4798.  12  | (MSB)                                                                 |
  4799. -----|---                  Data Bytes per Physical Sector                 ---|
  4800.  13  |                                                                 (LSB) |
  4801. -----|-----------------------------------------------------------------------|
  4802.  14  | (MSB)                                                                 |
  4803. -----|---                  Interleave                                     ---|
  4804.  15  |                                                                 (LSB) |
  4805. -----|-----------------------------------------------------------------------|
  4806.  16  | (MSB)                                                                 |
  4807. -----|---                  Track Skew Factor                              ---|
  4808.  17  |                                                                 (LSB) |
  4809. -----|-----------------------------------------------------------------------|
  4810.  18  | (MSB)                                                                 |
  4811. -----|---                  Cylinder Skew Factor                           ---|
  4812.  19  |                                                                 (LSB) |
  4813. -----|-----------------------------------------------------------------------|
  4814.  20  |  SSEC  |  HSEC  |  RMB   |  SURF  |             Reserved              |
  4815. -----|-----------------------------------------------------------------------|
  4816.  21  |                                                                       |
  4817.  
  4818. SCSI-2 draft proposed American National Standard        8-79      Revision 10c79
  4819.  
  4820.  
  4821.  
  4822.  
  4823.  
  4824.  
  4825.  
  4826. Direct-Access Devices                                                   3/9/90
  4827.  
  4828. - - -|- -                  Reserved                                       - -|
  4829.  23  |                                                                       |
  4830. ==============================================================================
  4831.  
  4832. The format device page (Table 8-52) contains parameters which specify the
  4833. medium format.
  4834.  
  4835. The parameters savable (PS) bit is only used with the MODE SENSE command.
  4836. This bit is reserved with the MODE SELECT command.  A PS bit of one indicates
  4837. that the target is capable of saving the page in a non-volatile vendor-
  4838. specific location.
  4839.  
  4840. IMPLEMENTORS NOTE: If the initiator changes any of the current physical
  4841. parameters defined below, the target may not be able to access the media until
  4842. a FORMAT UNIT command has been successfully completed.
  4843.  
  4844. If the defect handling format parameters (tracks per zone, alternate sectors
  4845. per zone, alternate tracks per zone and alternate tracks per logical unit)
  4846. requested by the initiator are not supported by the target  the target may
  4847. round these fields to acceptable values as described in 6.5.4.
  4848.  
  4849. The tracks per zone field specifies the number of tracks per zone to use in
  4850. dividing the capacity of the device for the purpose of allocating alternate
  4851. sectors.  A value of zero means that one zone is defined for the entire
  4852. device.  The last zone on the device might not contain the same number of
  4853. tracks as the previous zone(s).
  4854.  
  4855. The alternate sectors per zone field specifies the number of sectors per zone
  4856. the target shall reserve for defect handling.  The target shall de- allocate
  4857. these sectors from the initiator addressable blocks during the FORMAT UNIT
  4858. command.  If the notch page is implemented and the ND bit of the notch page is
  4859. one and the active notch field of the notch page is zero, then a value of zero
  4860. indicates that no alternate sectors shall be reserved.  Otherwise, a value of
  4861. zero indicates that the number of alternate sectors is target specific.
  4862.  
  4863. The alternate tracks per zone field specifies the number of tracks per zone
  4864. the target shall reserve for defect handling.  The target shall de-allocate
  4865. these tracks from the initiator addressable blocks during the FORMAT UNIT
  4866. command.  If the notch page is implemented and the ND bit of the notch page is
  4867. one and the active notch field of the notch page is zero, then a value of zero
  4868. indicates that no alternate tracks shall be reserved.  Otherwise, a value of
  4869. zero indicates that the number of alternate tracks is target specific.
  4870.  
  4871. The alternate tracks per logical unit field specifies the number of tracks per
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879. SCSI-2 draft proposed American National Standard        8-80      Revision 10c80
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887. Direct-Access Devices                                                   3/9/90
  4888.  
  4889. logical unit the target shall reserve for defect handling. The target shall
  4890. de-allocate these tracks from the initiator addressable blocks during the
  4891. FORMAT UNIT command.  If the notch page is implemented and the ND bit of the
  4892. notch page is one and the active notch field of the notch page is zero, then a
  4893. value of zero indicates that no alternate tracks shall be reserved.
  4894. Otherwise, a value of zero indicates that the number of alternate tracks is
  4895. target specific.
  4896.  
  4897. The sectors per track field specifies the number of physical sectors
  4898. included within each track.  This number includes any alternate sectors the
  4899. target may allocate.  A value of zero during MODE SELECT indicates that the
  4900. target shall define the number of sectors per track.  For devices with a
  4901. variable number of sectors per track, the value in MODE SELECT shall be zero
  4902. and the value reported in MODE SENSE for the number of sectors per track is
  4903. vendor-specific.
  4904.  
  4905. The data bytes per physical sector field specifies the number of data bytes
  4906. per physical sector that the target shall use.  This value may be different
  4907. than the logical block size reported in the MODE SELECT data.  The target
  4908. shall return CHECK CONDITION status if it determines that the combination of
  4909. this field and the sectors per track field exceed the capability of the
  4910. medium.  A value of zero indicates that the data bytes per physical sector is
  4911. defined by the target.
  4912.  
  4913. For MODE SENSE the interleave field returns the same parameter passed in the
  4914. FORMAT UNIT command, The target shall report this field as target defined in
  4915. the corresponding MODE SENSE command.  For MODE SELECT this field is ignored.
  4916.  
  4917. IMPLEMENTORS NOTE:  It is recommended that this field be marked non-
  4918. changeable and that initiators send the value returned in MODE SENSE.  This
  4919. allows migration to specifying interleave as a mode parameter instead of in
  4920. the FORMAT UNIT command.
  4921.  
  4922. The track skew factor field specifies the number of physical sectors between
  4923. the last logical block of one track and the first logical block on the next
  4924. sequential track of the same cylinder.
  4925.  
  4926. The cylinder skew factor field specifies the number of physical sectors
  4927. between the last logical block of one cylinder and the first logical block on
  4928. the next sequential cylinder.
  4929.  
  4930. The SSEC bit set to one indicates that the target shall use soft sector
  4931. formatting.
  4932.  
  4933. The HSEC bit set to one indicates that the target shall use hard sector
  4934. formatting.  The HSEC bit and the SSEC bit are mutually exclusive in MODE
  4935. SELECT commands.
  4936.  
  4937. Possible combinations of MODE SENSE Report Default Values
  4938.  
  4939.  
  4940. SCSI-2 draft proposed American National Standard        8-81      Revision 10c81
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948. Direct-Access Devices                                                   3/9/90
  4949.  
  4950.  
  4951.       SSEC  HSEC   Description
  4952.       ----  ----   ----------------------------------------------------
  4953.         0     0    Target shall not return this combination
  4954.         1     0    Target supports soft sector formatting only
  4955.         0     1    Target supports hard sector formatting only
  4956.         1     1    Target supports both soft and hard sector formatting
  4957.  
  4958. Possible combinations of MODE SENSE Report Changeable Values
  4959.  
  4960.       SSEC  HSEC   Description
  4961.       ----  ----   ----------------------------------------------------
  4962.         0     0    Sector formatting Not changeable
  4963.         1     0    Target shall not return this combination
  4964.         0     1    Target shall not return this combination
  4965.         1     1    Target supports both Soft and Hard sector formatting
  4966.  
  4967. The removable (RMB) bit set to one indicates that the logical unit supports
  4968. removable media.  A RMB  bit set to zero indicates that the logical unit does
  4969. not support removable media.  The status of this bit shall be reflected in the
  4970. INQUIRY command removable media bit (RMB).
  4971.  
  4972. The surface (SURF) bit set to zero indicates that the target shall allocate
  4973. progressive addresses to all logical blocks within a cylinder prior to
  4974. allocating addresses on the next cylinder.  A  SURF bit set to one indicates
  4975. that the target shall allocate progressive addresses to all logical blocks on
  4976. a surface prior to allocating sector addresses on the the next surface.
  4977.  
  4978. IMPLEMENTORS NOTE:  If the target supports savable parameters, all savable
  4979. parameters for this initiator, including those in page codes 3, 4, and 5, are
  4980. saved to non-volatile memory when the save parameters bit (SP) in the command
  4981. descriptor block is set to one.  The savable parameters may also be saved to
  4982. non-volatile memory during a FORMAT UNIT command (see 8.2.1).
  4983.  
  4984. 8.3.3.4. Medium Types Supported Page
  4985.  
  4986.  
  4987.  
  4988.  
  4989.  
  4990.  
  4991.  
  4992.  
  4993.  
  4994.  
  4995.  
  4996.  
  4997.  
  4998.  
  4999.  
  5000.  
  5001. SCSI-2 draft proposed American National Standard        8-82      Revision 10c82
  5002.  
  5003.  
  5004.  
  5005.  
  5006.  
  5007.  
  5008.  
  5009. Direct-Access Devices                                                   3/9/90
  5010.  
  5011.  
  5012.                    Table 8-53: Medium Types Supported Page
  5013.  
  5014. ==============================================================================
  5015.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5016. Byte |        |        |        |        |        |        |        |        |
  5017. ==============================================================================
  5018.  0   |   PS   |Reserved|         Page Code (0Bh)                             |
  5019. -----|-----------------------------------------------------------------------|
  5020.  1   |                           Page Length (06h)                           |
  5021. -----|-----------------------------------------------------------------------|
  5022.  2   |                           Reserved                                    |
  5023. -----|-----------------------------------------------------------------------|
  5024.  3   |                           Reserved                                    |
  5025. -----|-----------------------------------------------------------------------|
  5026.  4   |                           Medium Type One Supported                   |
  5027. -----|-----------------------------------------------------------------------|
  5028.  5   |                           Medium Type Two Supported                   |
  5029. -----|-----------------------------------------------------------------------|
  5030.  6   |                           Medium Type Three Supported                 |
  5031. -----|-----------------------------------------------------------------------|
  5032.  7   |                           Medium Type Four Supported                  |
  5033. ==============================================================================
  5034.  
  5035.  
  5036. The medium types supported page (Table 8-53) contains a list of the medium
  5037. types implemented by the target for logical units.
  5038.  
  5039. The parameters savable (PS) bit is only used with the MODE SENSE command.
  5040. This bit is reserved with the MODE SELECT command.  A PS bit of one indicates
  5041. that the target is capable of saving the page in a non-volatile vendor-
  5042. specific location.
  5043.  
  5044. The code values for each medium type supported by the target (up to four
  5045. maximum), as defined in the MODE SELECT command (see Table 8-35), are reported
  5046. in ascending order.  If only the default medium type is supported zero is
  5047. reported.  If less than four medium types are supported the unused entries
  5048. shall be returned as zero.
  5049.  
  5050. 8.3.3.5. Notch and Partition Page
  5051.  
  5052.  
  5053.  
  5054.  
  5055.  
  5056.  
  5057.  
  5058.  
  5059.  
  5060.  
  5061.  
  5062. SCSI-2 draft proposed American National Standard        8-83      Revision 10c83
  5063.  
  5064.  
  5065.  
  5066.  
  5067.  
  5068.  
  5069.  
  5070. Direct-Access Devices                                                   3/9/90
  5071.  
  5072.  
  5073.                             Table 8-54: Notch Page
  5074.  
  5075. ==============================================================================
  5076.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5077. Byte |        |        |        |        |        |        |        |        |
  5078. ==============================================================================
  5079.  0   |   PS   |Reserved|         Page Code (0Ch)                             |
  5080. -----|-----------------------------------------------------------------------|
  5081.  1   |                           Page Length (16h)                           |
  5082. -----|-----------------------------------------------------------------------|
  5083.  2   |   ND   |  LPN   |         Reserved                                    |
  5084. -----|-----------------------------------------------------------------------|
  5085.  3   |                           Reserved                                    |
  5086. -----|-----------------------------------------------------------------------|
  5087.  4   | (MSB)                                                                 |
  5088. -----|---                        Maximum Number of Notches                ---|
  5089.  5   |                                                                 (LSB) |
  5090. -----|-----------------------------------------------------------------------|
  5091.  6   | (MSB)                                                                 |
  5092. -----|---                        Active Notch                             ---|
  5093.  7   |                                                                 (LSB) |
  5094. -----|-----------------------------------------------------------------------|
  5095.  8   | (MSB)                                                                 |
  5096. - - -|- -                        Starting Boundary                        - -|
  5097.  11  |                                                                 (LSB) |
  5098. -----|-----------------------------------------------------------------------|
  5099.  12  | (MSB)                                                                 |
  5100. - - -|- -                        Ending Boundary                          - -|
  5101.  15  |                                                                 (LSB) |
  5102. -----|-----------------------------------------------------------------------|
  5103.  16  | (MSB)                                                                 |
  5104. - - -|- -                        Pages Notched                            - -|
  5105.  23  |                                                                 (LSB) |
  5106. ==============================================================================
  5107.  
  5108.  
  5109. The notch page (Table 8-54) contains parameters for direct-access devices
  5110. which implement a variable number of blocks per cylinder and support this
  5111. page.  Each section of the logical unit with a different number of blocks per
  5112. cylinder is referred to as a notch.
  5113.  
  5114. The parameters savable (PS) bit is only used with the MODE SENSE command.
  5115. This bit is reserved with the MODE SELECT command.  A PS bit of one indicates
  5116. that the target is capable of saving the page in a non-volatile vendor-
  5117. specific location.
  5118.  
  5119. A notched drive (ND) bit of zero indicates that the device is not notched and
  5120.  
  5121.  
  5122.  
  5123. SCSI-2 draft proposed American National Standard        8-84      Revision 10c84
  5124.  
  5125.  
  5126.  
  5127.  
  5128.  
  5129.  
  5130.  
  5131. Direct-Access Devices                                                   3/9/90
  5132.  
  5133. that all other parameters in this page shall be returned as zero by the
  5134. target.  A ND bit of one indicates that the device is notched.  For each
  5135. supported active notch value this page defines the starting and ending
  5136. boundaries of the notch.
  5137.  
  5138. A logical or physical notch (LPN) bit of zero indicates that the boundaries
  5139. are based on the physical parameters of the logical unit.  The cylinder is
  5140. considered most significant, the head least significant.  A LPN bit of one
  5141. indicates that the notch boundaries are based on logical blocks of the logical
  5142. unit.
  5143.  
  5144. The maximum number of notches field indicates the maximum number of notches
  5145. supported by the logical unit.  This field shall be reported as unchangeable.
  5146.  
  5147. The active notch field indicates the notch that this and subsequent MODE
  5148. SELECT and MODE SENSE commands shall refer to, until the active notch is
  5149. changed by a later MODE SELECT command.  The value of the active notch shall
  5150. be greater than or equal to 0 and less than or equal to the maximum number of
  5151. notches.  An active notch value of zero indicates that this and subsequent
  5152. MODE SELECT and MODE SENSE commands refer to the parameters that apply across
  5153. all notches.
  5154.  
  5155. The starting boundary field indicates the beginning of the active notch or, if
  5156. the active notch is zero, the beginning boundary of the logical unit.  If the
  5157. LPN bit is one, then the four bytes represent a logical block address.  If the
  5158. LPN bit is zero, then the three most significant bytes shall represent the
  5159. cylinder number and the least significant byte shall represent the head
  5160. number.  This field shall be reported as unchangeable.
  5161.  
  5162. The ending boundary field indicates the ending of the active notch or, if the
  5163. active notch is zero, the ending of the logical unit.  If the LPN bit is one,
  5164. then the four bytes represent logical block address.  If the LPN bit is zero,
  5165. then the three most significant bytes shall represent the cylinder number and
  5166. the least significant byte shall represent the head number.  This field shall
  5167. be reported as unchangeable.
  5168.  
  5169. Each notch shall span a set of consecutive logical blocks on the logical unit,
  5170. the notches shall not overlap, and no logical block shall be excluded from a
  5171. notch.
  5172.  
  5173. The pages notched field is a bit map of the mode page codes that indicates
  5174. which pages contain parameters that may be different for different notches.
  5175. The most significant bit of this field corresponds to page code 3Fh and the
  5176. least significant bit corresponds to page code 00h.  If a bit is one, then the
  5177. corresponding mode page contains parameters that may be different for
  5178. different notches.  If a bit is zero, then the corresponding mode page
  5179. contains parameters that are constant for all notches.  This field shall be
  5180. reported as unchangeable.
  5181.  
  5182. 8.3.3.6. Read-Write Error Recovery Page
  5183.  
  5184. SCSI-2 draft proposed American National Standard        8-85      Revision 10c85
  5185.  
  5186.  
  5187.  
  5188.  
  5189.  
  5190.  
  5191.  
  5192. Direct-Access Devices                                                   3/9/90
  5193.  
  5194.  
  5195.                   Table 8-55: Read-Write Error Recovery Page
  5196.  
  5197. ==============================================================================
  5198.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5199. Byte |        |        |        |        |        |        |        |        |
  5200. ==============================================================================
  5201.  0   |   PS   |Reserved|        Page Code (01h)                              |
  5202. -----|-----------------------------------------------------------------------|
  5203.  1   |                           Page Length (0Ah)                           |
  5204. -----|-----------------------------------------------------------------------|
  5205.  2   |  AWRE  |  ARRE  |   TB   |   RC   |  EER   |  PER   |  DTE   |  DCR   |
  5206. -----|-----------------------------------------------------------------------|
  5207.  3   |                           Read Retry Count                            |
  5208. -----|-----------------------------------------------------------------------|
  5209.  4   |                           Correction Span                             |
  5210. -----|-----------------------------------------------------------------------|
  5211.  5   |                           Head Offset Count                           |
  5212. -----|-----------------------------------------------------------------------|
  5213.  6   |                           Data Strobe Offset Count                    |
  5214. -----|-----------------------------------------------------------------------|
  5215.  7   |                           Reserved                                    |
  5216. -----|-----------------------------------------------------------------------|
  5217.  8   |                           Write Retry Count                           |
  5218. -----|-----------------------------------------------------------------------|
  5219.  9   |                           Reserved                                    |
  5220. -----|-----------------------------------------------------------------------|
  5221.  10  | (MSB)                                                                 |
  5222. -----|---                        Recovery Time Limit                      ---|
  5223.  11  |                                                                 (LSB) |
  5224. ==============================================================================
  5225.  
  5226.  
  5227. The read-write error recovery page (Table 8-55) specifies the error recovery
  5228. parameters the target shall use during any command that performs a read or
  5229. write operation to the medium (e.g., READ(6), READ(10), WRITE(6), WRITE(10),
  5230. COPY, COMPARE, WRITE & VERIFY, etc.).
  5231.  
  5232. The parameters savable (PS) bit is only used with the MODE SENSE command.
  5233. This bit is reserved with the MODE SELECT command.  A PS bit of one indicates
  5234. that the target is capable of saving the page in a non-volatile vendor-
  5235. specific location.
  5236.  
  5237. An automatic write reallocation enabled (AWRE) bit of one indicates that the
  5238.  
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245. SCSI-2 draft proposed American National Standard        8-86      Revision 10c86
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253. Direct-Access Devices                                                   3/9/90
  5254.  
  5255. target shall enable automatic reallocation to be performed during write
  5256. operations.  The automatic reallocation shall be performed only if the target
  5257. has the valid data (e.g., original data in the buffer or recovered from the
  5258. medium).  The valid data shall be placed in the reallocated block.  Error
  5259. reporting as required by the error recovery bits (EER, PER, DTE, and DCR)
  5260. shall be performed only after completion of the reallocation.  The
  5261. reallocation operation shall report any failures that occur.  See the REASSIGN
  5262. BLOCKS command (8.2.10) for error procedures.
  5263.  
  5264. An AWRE bit of zero indicates that the target shall not perform automatic
  5265. reallocation of defective data blocks during write operations.
  5266.  
  5267. An automatic read reallocation enabled (ARRE) bit of one indicates that the
  5268. target shall enable automatic reallocation of defective data blocks during
  5269. read operations.  All error recovery actions required by the error recovery
  5270. bits (TB, EER, PER, DTE, and DCR) shall be executed.  The automatic
  5271. reallocation shall then be performed only if the target successfully recovers
  5272. the data.  The recovered data shall be placed in the reallocated block.  Error
  5273. posting as required by the error recovery bits shall be performed only after
  5274. completion of the reallocation.  The reallocation process shall present any
  5275. failures that occur. See the REASSIGN BLOCKS command (8.2.10) for error
  5276. procedures.
  5277.  
  5278. An ARRE bit of zero indicates that the target shall not perform automatic
  5279. reallocation of defective data blocks during read operations.
  5280.  
  5281. A transfer block (TB) bit of one indicates that a data block that is not
  5282. recovered within the recovery limits specified shall be transferred to the
  5283. initiator before CHECK CONDITION status is returned.  A TB bit of zero
  5284. indicates that such a data block shall not be transferred to the initiator.
  5285. The TB bit does not affect the action taken for recovered data.
  5286.  
  5287. A read continuous (RC) bit of one indicates the target shall transfer the
  5288. entire requested length of data without adding delays to perform error
  5289. recovery procedures.  This implies that the target may send data that is
  5290. erroneous or fabricated in order to maintain a continuous flow of data.  The
  5291. target shall assign priority to this bit over conflicting error control bits
  5292. (EER, DCR, DTE, and PER) within this byte.
  5293.  
  5294. IMPLEMENTORS NOTE:  Fabricated data may be data already in the buffer or any
  5295. other target-specific data.  This bit is typically used in image processing,
  5296. audio, or video applications.
  5297.  
  5298. A RC bit of zero indicates that error recovery operations that cause delays
  5299. are acceptable during the data transfer.  Data shall not be fabricated.
  5300.  
  5301. The individual bit definitions for EER, PER, DTE and DCR are contained in
  5302. Table 8-56.  The combinations of these bits are explained in Tables 8-57
  5303. through 8-60.
  5304.  
  5305.  
  5306. SCSI-2 draft proposed American National Standard        8-87      Revision 10c87
  5307.  
  5308.  
  5309.  
  5310.  
  5311.  
  5312.  
  5313.  
  5314. Direct-Access Devices                                                   3/9/90
  5315.  
  5316.                   Table 8-56: Error Recovery Bit Definitions
  5317.  
  5318. ==============================================================================
  5319. EER  PER  DTE  DCR  Description
  5320. ------------------------------------------------------------------------------
  5321. .aw on
  5322. 1    -    -    -   An enable early recovery (EER) bit of one indicates that
  5323. the target shall use of the most expedient form of error recovery first.  This
  5324. bit only applies to data error recovery and it does not affect positioning
  5325. retries and the message system error recovery procedures.
  5326.  
  5327. 0    -    -    -   An EER bit of zero indicates that the target shall use an
  5328. error recovery procedure that minimizes the risk of mis- detection or
  5329. mis-correction.
  5330.  
  5331. -    1    -    -   A post error (PER) bit of one indicates that the target
  5332. shall report recovered errors.
  5333.  
  5334. -    0    -    -   A PER bit of zero indicates that the target shall not
  5335. report recovered errors.  Error recovery procedures shall be performed within
  5336. the limits established by the error recovery parameters.
  5337.  
  5338. -    -    1    -   A disable transfer on error (DTE) bit of one indicates that
  5339. the target shall terminate the data phase upon detection of a recovered error.
  5340.  
  5341.  
  5342. -    -    0    -   A DTE bit of zero indicates that the target shall not
  5343. terminate the data phase upon detection of a recovered error.
  5344.  
  5345. -    -    -    1   A disable correction (DCR) bit of one indicates that error
  5346. correction codes shall not be used for data error recovery.
  5347.  
  5348. -    -    -    0   A DCR bit of zero allows the use of error correction codes
  5349. for data error recovery.
  5350. ==============================================================================
  5351.  
  5352.  
  5353. IMPLEMENTORS NOTE: An EER bit of one may imply an increase in the probability
  5354. of mis-detection or mis-correction.  An EER bit of zero typically means that
  5355. the specified retry limit is exhausted prior to using error correction codes.
  5356.  
  5357.  
  5358.  
  5359.  
  5360.  
  5361.  
  5362.  
  5363.  
  5364.  
  5365.  
  5366.  
  5367. SCSI-2 draft proposed American National Standard        8-88      Revision 10c88
  5368.  
  5369.  
  5370.  
  5371.  
  5372.  
  5373.  
  5374.  
  5375. Direct-Access Devices                                                   3/9/90
  5376.  
  5377.         Table 8-57: Combined Error Recovery Parameter Descriptions(1)
  5378.  
  5379. ==============================================================================
  5380. EER  PER  DTE  DCR  Description
  5381. ------------------------------------------------------------------------------
  5382. .aw on
  5383. 0    0    0    0   The full number of retries (specified in the read, write or
  5384. verify retry count field) and error correction are attempted to recover the
  5385. data (EER and DCR set to 0).  A CHECK CONDITION is not reported at the
  5386. completion of the command for recovered errors (PER set to 0).  The command
  5387. terminates with CHECK CONDITION status before the transfer count is exhausted
  5388. only if an unrecoverable error is detected.  If an unrecoverable data error
  5389. occurred, the data in the block with the unrecoverable error may or may not be
  5390. transferred to the initiator depending on the setting of the transfer block
  5391. (TB) bit (read operation only).
  5392.  
  5393. 0    0    0    1   Error correction is disabled (DCR set to one) so only the
  5394. full number of retries (specified in the read, write or verify retry count
  5395. field) are attempted to recover the data (EER set to 0).  A CHECK CONDITION is
  5396. not reported at the completion of the command for recoverable errors (PER set
  5397. to 0).  The command terminates with CHECK CONDITION status before the transfer
  5398. count is exhausted only if an unrecoverable error is detected.  If an
  5399. unrecoverable data error occurred, the data in the block with the
  5400. unrecoverable error may or may not be transferred to the initiator depending
  5401. on the setting of the transfer block (TB) bit (read operation only).
  5402.  
  5403. 0    0    1    0   Invalid mode (PER must be set to one if DTE is set to one).
  5404. See the note at the end of this table.
  5405.  
  5406. 0    0    1    1   Invalid mode (PER must be set to one if DTE is set to one).
  5407. See the note at the end of this table.
  5408.  
  5409. 0    1    0    0   The full number of retries (specified in the read, write or
  5410. verify retry count field) and Error Correction are attempted to recover the
  5411. data (EER and DCR set to 0).  The command terminates with CHECK CONDITION
  5412. status before the transfer count is exhausted only if an unrecoverable error
  5413. is detected.  If an unrecoverable data error occurred, the data in the block
  5414. with the unrecoverable error may or may not be transferred to the initiator
  5415. depending on the setting of the transfer block (TB) bit (read operation only).
  5416. A CHECK CONDITION with a sense key of RECOVERED ERROR is reported at the
  5417. completion of the command for any recoverable error that occurs (PER set to
  5418. 1).  The information field in the sense data shall contain the logical block
  5419. address of the last recovered error which occurred during the transfer.
  5420. ==============================================================================
  5421.  
  5422.         Table 8-58: Combined Error Recovery Parameter Descriptions(2)
  5423.  
  5424.  
  5425.  
  5426.  
  5427.  
  5428. SCSI-2 draft proposed American National Standard        8-89      Revision 10c89
  5429.  
  5430.  
  5431.  
  5432.  
  5433.  
  5434.  
  5435.  
  5436. Direct-Access Devices                                                   3/9/90
  5437.  
  5438.  
  5439. ==============================================================================
  5440. EER  PER  DTE  DCR  Description
  5441. ------------------------------------------------------------------------------
  5442. .aw on
  5443. 0    1    0    1   Error correction is disabled (DCR set to one) so only the
  5444. full number of retries (specified in the read, write or verify retry count
  5445. field) are attempted to recover the data (EER set to 0).  The command
  5446. terminates with CHECK CONDITION status before the transfer count is exhausted
  5447. only if an unrecoverable error is detected.  If an unrecoverable data error
  5448. occurred, the data in the block with the unrecoverable error may or may not be
  5449. transferred to the initiator depending on the setting of the transfer block
  5450. (TB) bit (read operation only).  A CHECK CONDITION with a sense key of
  5451. RECOVERED ERROR is reported at the completion of the command for any
  5452. recoverable error that occurs (PER set to 1).  The information field in the
  5453. sense data shall contain the logical block address of the last recovered error
  5454. which occurred during the transfer.
  5455.  
  5456. 0    1    1    0   The full number of retries (specified in the read, write or
  5457. verify retry count field) and Error Correction are attempted to recover the
  5458. data (EER and DCR set to 0).  The command terminates with CHECK CONDITION
  5459. status before the transfer count is exhausted if any error (recoverable or
  5460. unrecoverable) is detected (DTE set to 1).  The information field in the sense
  5461. data shall contain the logical block address of the block in error.  If an
  5462. unrecoverable data error occurs the data in the block with the error may or
  5463. may not be transferred to the initiator depending on the setting of the
  5464. transfer block (TB) bit (read operation only).
  5465.  
  5466. 0    1    1    1   Error correction is disabled (DCR set to one) so only the
  5467. full number of retries (specified in the read, write or verify retry count
  5468. field) are attempted to recover the data (EER set to 0).  The command
  5469. terminates with CHECK CONDITION status before the transfer count is exhausted
  5470. if any error (recoverable or unrecoverable) is detected (DTE set to 1).  The
  5471. information field in the sense data shall contain the logical block address of
  5472. the block in error.  If an unrecoverable data error occurs the data in the
  5473. block with the error may or may not be transferred to the initiator depending
  5474. on the setting of the transfer block (TB) bit (read operation only).
  5475. ==============================================================================
  5476.  
  5477.         Table 8-59: Combined Error Recovery Parameter Descriptions(3)
  5478.  
  5479.  
  5480.  
  5481.  
  5482.  
  5483.  
  5484.  
  5485.  
  5486.  
  5487.  
  5488.  
  5489. SCSI-2 draft proposed American National Standard        8-90      Revision 10c90
  5490.  
  5491.  
  5492.  
  5493.  
  5494.  
  5495.  
  5496.  
  5497. Direct-Access Devices                                                   3/9/90
  5498.  
  5499.  
  5500. ==============================================================================
  5501. EER  PER  DTE  DCR  Description
  5502. ------------------------------------------------------------------------------
  5503. .aw on
  5504. 1    0    0    0   The fewest possible retries and error correction are
  5505. attempted to recover the data (EER set to one and DCR set to 0).  A CHECK
  5506. CONDITION is not reported at the completion of the command for recoverable
  5507. errors (PER set to 0).  The command terminates with CHECK CONDITION status
  5508. before the transfer count is exhausted only if an unrecoverable error is
  5509. detected.  If an unrecoverable data error occurred, the data in the block with
  5510. the unrecoverable error may or may not be transferred to the initiator
  5511. depending on the setting of the transfer block (TB) bit (read operation only).
  5512.  
  5513. 1    0    0    1   Invalid mode (DCR must be set to zero if EER is set to
  5514. one).  See the note at the end of this table.
  5515.  
  5516. 1    0    1    0   Invalid mode (PER must be set to one if DTE is set to one).
  5517. See the note at the end of this table.
  5518.  
  5519. 1    0    1    1   Invalid mode (PER must be set to one if DTE is set to one).
  5520. See the note at the end of this table.
  5521.  
  5522. 1    1    0    0   The fewest possible retries and error correction are
  5523. attempted to recover the data (EER set to one and DCR set to 0).  The command
  5524. terminates with CHECK CONDITION status before the transfer count is exhausted
  5525. only if an unrecoverable error is detected.  If an unrecoverable data error
  5526. occurred, the data in the block with the unrecoverable error may or may not be
  5527. transferred to the initiator depending on the setting of the transfer block
  5528. (TB) bit (read operation only).  A CHECK CONDITION with a sense key of
  5529. RECOVERED ERROR is reported at the completion of the command for any
  5530. recoverable error that occurs (PER set to 1).  The information field in the
  5531. sense data shall contain the logical block address of the last recovered error
  5532. which occurred during the transfer.
  5533.  
  5534. 1    1    0    1   Invalid mode (DCR must be set to zero if EER is set to
  5535. one).  See the note at the end of this table.
  5536. ==============================================================================
  5537.  
  5538.         Table 8-60: Combined Error Recovery Parameter Descriptions(4)
  5539.  
  5540.  
  5541.  
  5542.  
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  
  5549.  
  5550. SCSI-2 draft proposed American National Standard        8-91      Revision 10c91
  5551.  
  5552.  
  5553.  
  5554.  
  5555.  
  5556.  
  5557.  
  5558. Direct-Access Devices                                                   3/9/90
  5559.  
  5560.  
  5561. ==============================================================================
  5562. EER  PER  DTE  DCR  Description
  5563. ------------------------------------------------------------------------------
  5564. .aw on
  5565. 1    1    1    0   The fewest possible retries and error correction are
  5566. attempted to recover the data (EER set to one and DCR set to 0).  The command
  5567. terminates with CHECK CONDITION status before the transfer count is exhausted
  5568. if any error (recoverable or unrecoverable) is detected (DTE set to 1).  The
  5569. information field in the sense data shall contain the logical block address of
  5570. the block in error.  If an unrecoverable data error occurs the data in the
  5571. block with the error may or may not be transferred to the initiator depending
  5572. on the setting of the transfer block (TB) bit (read operation only).
  5573.  
  5574. 1    1    1    1   Invalid mode (DCR must be set to zero if EER is set to
  5575. one).  See the note at the end of this table.
  5576. ==============================================================================
  5577.  
  5578.  
  5579. NOTE:  If an invalid mode for the error recovery combination is sent by the
  5580. initiator the target shall return CHECK CONDITION status with the sense key
  5581. set to ILLEGAL REQUEST and the additional sense code set to INVALID FIELD IN
  5582. PARAMETER LIST.
  5583.  
  5584. The read and write retry count fields specify the number of times that the
  5585. target shall attempt its recovery algorithm during read and write operations,
  5586. respectively.  If the retry count field and the recovery time limit field are
  5587. both specified in a MODE SELECT command, the field that requires the least
  5588. time for data error recovery actions shall have priority.
  5589.  
  5590. The correction span field specifies the size, in bits, of the largest data
  5591. error burst for which data error correction may be attempted.  A correction
  5592. span of zero specifies that the target shall use its default value or that
  5593. this field is not supported.
  5594.  
  5595. The head offset count field specifies in two's-complement notation an
  5596. incremental offset position from the track center to which the heads shall be
  5597. moved.  The effect of this field on write operations is unspecified.  A head
  5598. offset count of zero indicates that no offset is specified.  A positive value
  5599. indicates moving in the direction of increasing logical block addresses.  A
  5600. negative value indicates moving in the direction of decreasing logical block
  5601. addresses.  Any value specified in this field does not preclude the target
  5602. from using positive or negative head offset during error recovery.  However,
  5603. after any error recovery is completed the target shall return the head offset
  5604. to the value specified in this field.
  5605.  
  5606. IMPLEMENTORS NOTE:  The degree of offset for each incremental value and the
  5607.  
  5608.  
  5609.  
  5610.  
  5611. SCSI-2 draft proposed American National Standard        8-92      Revision 10c92
  5612.  
  5613.  
  5614.  
  5615.  
  5616.  
  5617.  
  5618.  
  5619. Direct-Access Devices                                                   3/9/90
  5620.  
  5621. number of valid values are device specific.  It is recommended that the number
  5622. of valid values be equal for the positive and negative head offset counts.
  5623.  
  5624. The target shall return CHECK CONDITION status and shall set the sense key to
  5625. ILLEGAL REQUEST if an unsupported head offset value is specified.  The valid
  5626. bit shall be set to one and the information field shall be set to the positive
  5627. value of the maximum head offset count that is supported.  The target shall
  5628. set the valid bit to zero if it cannot determine the maximum head offset count
  5629. supported.  (Note:  If the target does not support this field, it returns a
  5630. zero value in the MODE SENSE command.)
  5631.  
  5632. The data strobe offset count field specifies in two's-complement notation an
  5633. incremental position to which the recovered data strobe shall be adjusted from
  5634. its nominal setting.  The effect of this field on write operations is
  5635. unspecified.  A value of zero indicates that no data strobe offset is
  5636. specified.  A positive value indicates movement in a positive direction as
  5637. defined by the target.  A negative value indicates movement in the negative
  5638. direction as defined by the target.  Any value specified in this field does
  5639. not preclude the target from using positive or negative data strobe offset
  5640. during error recovery.  However, after any error recovery is completed the
  5641. target shall return the data strobe offset to the value specified in this
  5642. field.
  5643.  
  5644. IMPLEMENTORS NOTE:  The degree of offset for each incremental value and the
  5645. number of valid values are device specific.  It is recommended that the number
  5646. of valid values be equal for the positive and negative data strobe offset
  5647. counts.
  5648.  
  5649. The target shall return CHECK CONDITION status and shall set the sense key to
  5650. ILLEGAL REQUEST if an unsupported data strobe offset count value is specified.
  5651. The valid bit shall be set to one and the information field shall be set to
  5652. the positive value of the maximum data strobe offset count that is supported.
  5653. The target shall set the valid bit to zero if it cannot determine the maximum
  5654. data strobe offset supported.
  5655.  
  5656. IMPLEMENTORS NOTE:  If the target does not support the data strobe offset
  5657. count field, it returns a zero value in the MODE SENSE command.
  5658.  
  5659. The recovery time limit field specifies in increments of one millisecond the
  5660. maximum time duration that the target shall use for data error recovery
  5661. procedures.  The target may round this value as described in 6.5.4.  The
  5662. limits in this field specifies the maximum error recovery time allowed for any
  5663. individual logical block.  A recovery time limit of zero specifies that the
  5664. target shall use its default value.
  5665.  
  5666. If both retry count and recovery time limit are specified, the field that
  5667. specifies the recovery action of least duration shall have priority.
  5668.  
  5669. 8.3.3.7. Rigid Disk Drive Geometry Page
  5670.  
  5671.  
  5672. SCSI-2 draft proposed American National Standard        8-93      Revision 10c93
  5673.  
  5674.  
  5675.  
  5676.  
  5677.  
  5678.  
  5679.  
  5680. Direct-Access Devices                                                   3/9/90
  5681.  
  5682.  
  5683.                   Table 8-61: Rigid Disk Drive Geometry Page
  5684.  
  5685. ==============================================================================
  5686.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5687. Byte |        |        |        |        |        |        |        |        |
  5688. ==============================================================================
  5689.  0   |   PS   |Reserved|         Page Code (04h)                             |
  5690. -----|-----------------------------------------------------------------------|
  5691.  1   |                           Page Length (16h)                           |
  5692. -----|-----------------------------------------------------------------------|
  5693.  2   | (MSB)                                                                 |
  5694. - - -|- -                        Number of Cylinders                      - -|
  5695.  4   |                                                                 (LSB) |
  5696. -----|-----------------------------------------------------------------------|
  5697.  5   |                           Number of Heads                             |
  5698. -----|-----------------------------------------------------------------------|
  5699.  6   | (MSB)                                                                 |
  5700. - - -|- -               Starting Cylinder-Write Precompensation           - -|
  5701.  8   |                                                                 (LSB) |
  5702. -----|-----------------------------------------------------------------------|
  5703.  9   | (MSB)                                                                 |
  5704. - - -|- -               Starting Cylinder-Reduced Write Current           - -|
  5705.  11  |                                                                 (LSB) |
  5706. -----|-+---------------------------------------------------------------------|
  5707.  12  | (MSB)                                                                 |
  5708. -----|---                        Drive Step Rate                          ---|
  5709.  13  |                                                                 (LSB) |
  5710. -----|-----------------------------------------------------------------------|
  5711.  14  | (MSB)                                                                 |
  5712. - - -|- -                        Landing Zone Cylinder                    - -|
  5713.  16  |                                                                 (LSB) |
  5714. -----|-----------------------------------------------------------------------|
  5715.  17  |                           Reserved                  |       RPL       |
  5716. -----|-----------------------------------------------------------------------|
  5717.  18  |                           Rotational Offset                           |
  5718. -----|-----------------------------------------------------------------------|
  5719.  19  |                           Reserved                                    |
  5720. -----|-----------------------------------------------------------------------|
  5721.  20  | (MSB)                                                                 |
  5722. -----|---                        Medium Rotation Rate                     ---|
  5723.  21  |                                                                 (LSB) |
  5724. -----|-----------------------------------------------------------------------|
  5725.  22  |                           Reserved                                    |
  5726. -----|-----------------------------------------------------------------------|
  5727.  23  |                           Reserved                                    |
  5728. ==============================================================================
  5729.  
  5730.  
  5731. The rigid disk drive geometry page (Table 8-61) specifies parameters for
  5732.  
  5733. SCSI-2 draft proposed American National Standard        8-94      Revision 10c94
  5734.  
  5735.  
  5736.  
  5737.  
  5738.  
  5739.  
  5740.  
  5741. Direct-Access Devices                                                   3/9/90
  5742.  
  5743. direct-access devices employing a rigid disk drive.
  5744.  
  5745. The parameters savable (PS) bit is only used with the MODE SENSE command.
  5746. This bit is reserved with the MODE SELECT command.  A PS bit of one indicates
  5747. that the target is capable of saving the page in a non-volatile vendor-
  5748. specific location.
  5749.  
  5750. IMPLEMENTORS NOTE:  This page is intended to define drive geometry parameters
  5751. of rigid disk drives.  It may be used for other devices if applicable.
  5752.  
  5753. The number of cylinders field defines the number of physical cylinders used
  5754. for data storage.
  5755.  
  5756. The number of heads field defines the physical number of heads used for data
  5757. storage.  Heads used exclusively for servo information are excluded.
  5758.  
  5759. The starting cylinder for write precompensation field is the physical cylinder
  5760. at which write precompensation is to begin.  The first cylinder is number
  5761. zero.  If the starting cylinder for write precompensation is equal to the
  5762. value in the number of cylinders field, write precompensation shall be
  5763. disabled by the target.
  5764.  
  5765. The starting cylinder for reduced write current field is the physical cylinder
  5766. at which write current is reduced.  The first cylinder is number zero.  If the
  5767. starting cylinder for reduced write current is equal to the value in the
  5768. number of cylinders field, reduced write current shall be disabled by the
  5769. target.
  5770.  
  5771. The drive step rate field indicates the step rate in 100 nanoseconds
  5772. increments. The target shall use the drive step rate, greater than or equal to
  5773. the drive step rate specified.  If the target rounds this field it shall
  5774. terminate the command as described in 6.5.4.  A value of zero requests the
  5775. target to set its default value.
  5776.  
  5777. The landing zone cylinder field indicates two's complement location where the
  5778. target shall position the disk heads.  A negative value indicates that the
  5779. heads are positioned below cylinder zero by that number of cylinders.  A
  5780. positive value greater than the number of cylinders indicates that the heads
  5781. are positioned beyond the cylinders used for data storage at the cylinder
  5782. location specified.  A zero indicates that the default should be used.
  5783.  
  5784. The rotational position locking (RPL) field is used for spindle
  5785. synchronization as defined in Table 8-62.  See Appendix K of the Enhanced
  5786. Small Device Interface (BSR X3.170-198X) for further information on
  5787. synchronized spindles.
  5788.  
  5789.                    Table 8-62: Rotational Position Locking
  5790.  
  5791.  
  5792.  
  5793.  
  5794. SCSI-2 draft proposed American National Standard        8-95      Revision 10c95
  5795.  
  5796.  
  5797.  
  5798.  
  5799.  
  5800.  
  5801.  
  5802. Direct-Access Devices                                                   3/9/90
  5803.  
  5804.  
  5805. ==============================================================================
  5806.  RPL    Description
  5807. ------------------------------------------------------------------------------
  5808. 00b   Indicates that spindle synchronization is disabled or not supported.
  5809. 01b   The target operates as a synchronized-spindle slave.
  5810. 10b   The target operates as a synchronized-spindle master.
  5811. 11b   The target operates as a synchronized-spindle master control.
  5812. ==============================================================================
  5813.  
  5814.  
  5815. IMPLEMENTORS NOTE:  The signals and connectors used for rotational position
  5816. locking are external to the SCSI bus and are not part of this standard.
  5817.  
  5818. If a target fails to achieve synchronization it shall create a unit attention
  5819. condition to all initiators.  The sense key shall be set to UNIT ATTENTION and
  5820. the additional sense code set to RPL STATUS CHANGE.
  5821.  
  5822. If subsequent to achieving synchronization the target detects a change of
  5823. synchronization:
  5824. (1) and, if the logical unit is not presently executing an I/O process for the
  5825. initiator, the target shall create a unit attention condition.  The sense key
  5826. shall be set to UNIT ATTENTION and the additional sense code set to RPL STATUS
  5827. CHANGE.
  5828. (2) and, if the logical unit is presently executing an I/O process and no
  5829. other error occurs, then the target shall return CHECK CONDITION status.  The
  5830. sense key shall be set to RECOVERED ERROR if the target is able to complete
  5831. the I/O process or HARDWARE ERROR if the target is unable to complete the I/O
  5832. process.  The additional sense code is set to RPL STATUS CHANGE.
  5833.  
  5834. The rotational offset indicates the amount of rotational skew that the target
  5835. shall use when synchronized.  The rotational skew is applied in the retarded
  5836. direction (lagging the synchronized spindle master control).  The value in the
  5837. field is the numerator of a fractional multiplier that has 256 as its
  5838. denominator (e.g., a value of 128 indicates a one-half revolution skew).  A
  5839. value of zero indicates that rotational offset shall not be used.  This value
  5840. may be rounded as defined in 6.5.4.  The rotational offset is not used when a
  5841. target is configured as synchronized-spindle master.
  5842.  
  5843. The medium rotation rate indicates the speed at which the medium rotates.  The
  5844. unit of measure is rotations per minute (e.g., 3600 rpm).
  5845.  
  5846. 8.3.3.8. Verify Error Recovery Page
  5847.  
  5848.  
  5849.  
  5850.  
  5851.  
  5852.  
  5853.  
  5854.  
  5855. SCSI-2 draft proposed American National Standard        8-96      Revision 10c96
  5856.  
  5857.  
  5858.  
  5859.  
  5860.  
  5861.  
  5862.  
  5863. Direct-Access Devices                                                   3/9/90
  5864.  
  5865.  
  5866.                     Table 8-63: Verify Error Recovery Page
  5867.  
  5868. ==============================================================================
  5869.   Bit|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
  5870. Byte |        |        |        |        |        |        |        |        |
  5871. ==============================================================================
  5872.  0   |   PS   |Reserved|            Page Code (07h)                          |
  5873. -----|-----------------------------------------------------------------------|
  5874.  1   |                           Parameter Length (0Ah)                      |
  5875. -----|-----------------------------------------------------------------------|
  5876.  2   |             Reserved              |  EER   |  PER   |  DTE   |  DCR   |
  5877. -----|-----------------------------------------------------------------------|
  5878.  3   |                           Verify Retry Count                          |
  5879. -----|-----------------------------------------------------------------------|
  5880.  4   |                           Verify Correction Span                      |
  5881. -----|-----------------------------------------------------------------------|
  5882.  5   |                           Reserved                                    |
  5883. -----|-----------------------------------------------------------------------|
  5884.  6   |                           Reserved                                    |
  5885. -----|-----------------------------------------------------------------------|
  5886.  7   |                           Reserved                                    |
  5887. -----|-----------------------------------------------------------------------|
  5888.  8   |                           Reserved                                    |
  5889. -----|-----------------------------------------------------------------------|
  5890.  9   |                           Reserved                                    |
  5891. -----|-----------------------------------------------------------------------|
  5892.  10  | (MSB)                                                                 |
  5893. -----|---                        Verify Recovery Time Limit               ---|
  5894.  11  |                                                                 (LSB) |
  5895. ==============================================================================
  5896.  
  5897.  
  5898. The verify error recovery page (Table 8-63) specifies the error recovery
  5899. parameters the target shall use during the VERIFY command, the verify
  5900. operation of the WRITE AND VERIFY command and the verify operation of the COPY
  5901. AND VERIFY command.
  5902.  
  5903. The parameters savable (PS) bit is only used with the MODE SENSE command.
  5904. This bit is reserved with the MODE SELECT command.  A PS bit of one indicates
  5905. that the target is capable of saving the page in a non-volatile vendor-
  5906. specific location.
  5907.  
  5908. The AWRE bit as defined in the read-write error recovery page (see Table 8-
  5909. 55) applies to the WRITE AND VERIFY command.  The VERIFY and COMPARE commands
  5910. shall not perform automatic reallocation.  The COPY and COPY AND VERIFY
  5911. commands might or might not perform automatic reallocation depending on the
  5912. settings of the mode parameters.
  5913.  
  5914. The EER, PER, DTE and DCR bits are defined in Table 8-56.  The combinations of
  5915.  
  5916. SCSI-2 draft proposed American National Standard        8-97      Revision 10c97
  5917.  
  5918.  
  5919.  
  5920.  
  5921.  
  5922.  
  5923.  
  5924. Direct-Access Devices                                                   3/9/90
  5925.  
  5926. these bits are defined in Tables 8-57 through 8-60.
  5927.  
  5928. The verify retry count field specifies the number of times that the target
  5929. shall attempt its recovery algorithm during a verify operation.  If the verify
  5930. retry count and the verify recovery time limit are both specified, the one
  5931. that requires the least time for data error recovery actions shall have
  5932. priority.
  5933.  
  5934. The verify correction span field specifies the size, in bits, of the largest
  5935. burst data error for which data error correction may be attempted.  If the
  5936. target does not implement this field, a value of zero is returned in MODE
  5937. SENSE data.
  5938.  
  5939. The verify recovery time limit field specifies in increments of one
  5940. millisecond the maximum time duration that the target shall use error recovery
  5941. procedures to recover data for an individual logical block.  The target may
  5942. round this value as described in 6.5.4.  If the verify retry count and the
  5943. verify recovery time limit are both specified, the one that requires the least
  5944. time for data error recovery actions shall have priority.
  5945.  
  5946. IMPLEMENTORS NOTE: To disable all types of correction and retries the
  5947. initiator should set the EER bit to zero, the PER, DTE and DCR bits to one and
  5948. the number of retries and recovery time limit to zero.
  5949.  
  5950.  
  5951. 8.4. Glossary for Direct-Access Devices
  5952.  
  5953. cache memory.  A temporary (and often volatile) data storage area outside the
  5954. user-accessible area.  A cache memory is usually faster to access than the
  5955. medium and thus has the effect of increasing data throughput by reducing the
  5956. number of accesses to the medium.
  5957.  
  5958. non-volatile medium.  Physical storage medium that retains data written to it
  5959. for a subsequent read operation through a power-on condition. An example of
  5960. this is a disk device that stores data as magnetic fields that do not require
  5961. device power to exist.
  5962.  
  5963. notch.  A notch refers to all or part of the medium having a consistent set of
  5964. geometry parameters.  Notches are used to increase storage capacity by
  5965. optimizing the number of sectors per track between the inner and outer tracks.
  5966.  
  5967. read hit.  When the logical block requested for a read operation is accessed
  5968. from the cache memory, this is called a read hit.
  5969.  
  5970. user-accessible.  The area of the medium that can be read from or written to
  5971. by READ and WRITE commands.
  5972.  
  5973. volatile medium.  Medium that may not retain data written to it for a
  5974.  
  5975.  
  5976.  
  5977. SCSI-2 draft proposed American National Standard        8-98      Revision 10c98
  5978.  
  5979.  
  5980.  
  5981.  
  5982.  
  5983.  
  5984.  
  5985. Direct-Access Devices                                                   3/9/90
  5986.  
  5987. subsequent read operation through a power-on condition. An example of this is
  5988. a silicon memory device that loses data written to it if device power is lost.
  5989.  
  5990.  
  5991.  
  5992.  
  5993.  
  5994.  
  5995.  
  5996.  
  5997.  
  5998.  
  5999.  
  6000.  
  6001.  
  6002.  
  6003.  
  6004.  
  6005.  
  6006.  
  6007.  
  6008.  
  6009.  
  6010.  
  6011.  
  6012.  
  6013.  
  6014.  
  6015.  
  6016.  
  6017.  
  6018.  
  6019.  
  6020.  
  6021.  
  6022.  
  6023.  
  6024.  
  6025.  
  6026.  
  6027.  
  6028.  
  6029.  
  6030.  
  6031.  
  6032.  
  6033.  
  6034.  
  6035.  
  6036.  
  6037.  
  6038. SCSI-2 draft proposed American National Standard        8-99      Revision 10c99
  6039.  
  6040.