The updating of blocks (see 16.1) is discouraged. SCSI write-once devices are intended to be archival in nature. Data at a logical block address is not expected to change once it is written. The update commands are not defined for this device type. Devices are not precluded from implementing the update function by this standard, though devices that require the update function should use the optical memory device type.
Devices may be able to determine the state of a logical block prior to access. These devices can determine whether a block is blank or written. This is useful in detecting previously written blocks, and preventing a destructive overwrite. This is also useful in finding blank areas for later writing. The MEDIUM SCAN command can be used to find blank and written areas prior to WRITE and READ access.
Defect management on write-once devices is usually vendor-specific. However, there are standards for some types of write-once media that specify defect management techniques. These standards, where they exist, may supersede the implementation requirements pertaining to error and defect reporting in this International Standard.
In the case of an attempt to read a blank or previously unwritten block, the sense data information field shall be set to the logical block address of the first blank block encountered. The data read up to that block shall be transferred.
In the case of an attempt to write a previously written block and blank checking is enabled, the sense information field shall be set to the logical block address of the first non-blank block encountered.
13.1.2 Initialization
The FORMAT UNIT command is not defined for write-once devices. Write- once media is shipped pre-formatted by the manufacturer and is ready for use when mounted.
13.1.3 Physical medium defects
The raw defect rate is typically higher for optical medium than for magnetic medium. Data is usually recovered through the use of sophisticated error correction algorithms. The level of error correction used for data recovery is often can be selected. However, many write-once devices have a minimum level that is always used and cannot be de-selected through the error recovery mode parameter. Control of the error correction algorithms and level of correction is vendor-specific.
13.1.4 Error reporting
If any of the following conditions occur during the execution of a command the target shall return CHECK CONDITION status. The appropriate sense key and additional sense code should be set. The following list illustrates some error conditions and the applicable sense keys. The list does not provide an exhaustive enumeration of all conditions that may cause the CHECK CONDITION status.
Condition Sense Key
Invalid logical block address ILLEGAL REQUEST
Unsupported option requested ILLEGAL REQUEST
Target reset or medium change
since last command from
this initiator UNIT ATTENTION
Self diagnostic failed HARDWARE ERROR
Unrecovered read error MEDIUM ERROR HARDWARE ERROR
Recovered read error RECOVERED ERROR
Overrun or other error that
might be resolved by
repeating the command ABORTED command
Attempt to write on write
protected medium DATA PROTECT
Attempt to read a blank or
previously unwritten block BLANK CHECK
Attempt to write a previously
written block and blank
checking is enabled BLANK CHECK
In the case of an invalid logical block address, the sense data information field shall be set to the logical block address of the first invalid address.
13.2 Commands for write-once devices
The commands for write-once devices shall be as shown in table 235.
Table 235 - Commands for write-once devices
+=====================================-============-======-============+
| Command name | Operation | Type | Subclause |
| | code | | |
|-------------------------------------+------------+------+------------|
| CHANGE DEFINITION | 40h | O | 8.2.1 |
| COMPARE | 39h | O | 8.2.2 |
| COPY | 18h | O | 8.2.3 |
| COPY AND VERIFY | 3Ah | O | 8.2.4 |
| INQUIRY | 12h | M | 8.2.5 |
| LOCK UNLOCK CACHE | 36h | O | 9.2.2 |
| LOG SELECT | 4Ch | O | 8.2.6 |
| LOG SENSE | 4Dh | O | 8.2.7 |
| MEDIUM SCAN | 38h | O | 16.2.3 |
| MODE SELECT(6) | 15h | O | 8.2.8 |
| MODE SELECT(10) | 55h | O | 8.2.9 |
| MODE SENSE(6) | 1Ah | O | 8.2.10 |
| MODE SENSE(10) | 5Ah | O | 8.2.11 |
| PRE-FETCH | 34h | O | 9.2.3 |
| PREVENT ALLOW MEDIUM REMOVAL | 1Eh | O | 9.2.4 |
| READ(6) | 08h | O | 9.2.5 |
| READ(10) | 28h | M | 9.2.6 |
| READ(12) | A8h | O | 16.2.4 |
| READ BUFFER | 3Ch | O | 8.2.12 |
| READ CAPACITY | 25h | M | 9.2.7 |
| READ LONG | 3Eh | O | 9.2.9 |
| REASSIGN BLOCKS | 07h | O | 9.2.10 |
| RECEIVE DIAGNOSTIC RESULTS | 1Ch | O | 8.2.13 |
| RELEASE | 17h | M | 9.2.11 |
| REQUEST SENSE | 03h | M | 8.2.14 |
| RESERVE | 16h | M | 9.2.12 |
| REZERO UNIT | 01h | O | 9.2.13 |
| SEARCH DATA EQUAL(10) | 31h | O | 9.2.14.1 |
| SEARCH DATA EQUAL(12) | B1h | O | 16.2.8 |
| SEARCH DATA HIGH(10) | 30h | O | 9.2.14.2 |
| SEARCH DATA HIGH(12) | B0h | O | 16.2.8 |
| SEARCH DATA LOW(10) | 32h | O | 9.2.14.3 |
| SEARCH DATA LOW(12) | B2h | O | 16.2.8 |
| SEEK(6) | 0Bh | O | 9.2.15 |
| SEEK(10) | 2Bh | O | 9.2.15 |
| SEND DIAGNOSTIC | 1Dh | M | 8.2.15 |
| SET LIMITS(10) | 33h | O | 9.2.16 |
| SET LIMITS(12) | B3h | O | 16.2.9 |
| START STOP UNIT | 1Bh | O | 9.2.17 |
| SYNCHRONIZE CACHE | 35h | O | 9.2.18 |
| TEST UNIT READY | 00h | M | 8.2.16 |
| VERIFY(10) | 2Fh | O | 16.2.11 |
| VERIFY(12) | AFh | O | 16.2.12 |
| WRITE(6) | 0Ah | O | 9.2.20 |
| WRITE(10) | 2Ah | M | 9.2.21 |
| WRITE(12) | AAh | O | 16.2.14 |
| WRITE AND VERIFY(10) | 2Eh | O | 9.2.22 |
| WRITE AND VERIFY(12) | AEh | O | 16.2.16 |
| WRITE BUFFER | 3Bh | O | 8.2.17 |
| WRITE LONG | 3Fh | O | 9.2.23 |
|----------------------------------------------------------------------|
|Key: M = command implementation is mandatory. |
| O = command implementation is optional. |
+======================================================================+
The following command codes are vendor-specific: 02h, 05h, 06h, 09h, 0Ch, 0Dh, 0Eh, 0Fh, 10h, 11h, 13h, 14h, 19h, 20h, 21h, 22h, 23h, 24h, 26h, 27h, 29h, and C0h through FFh. All remaining command codes for write-once devices are reserved for future standardization.
13.3 Parameters for write-once devices
Refer to the parameters for optical memory devices (see 16.3).
13.4 Definitions specific to write-once devices
See 16.4.