READ LONG Conundrum or Command

Gene Milligan Gene_Milligan at notes.seagate.com
Fri Sep 30 08:45:26 PDT 1994


The March 1994 working group reviewed the fact that there are conflicts between
the READ LONG command and the READ-WRITE Error Recovery Page. I had expected
that the working group would conclude that the READ LONG command was really a
niche command for specialized drive qualification tests and that it should be
interpreted in that light on its own ignoring how the READ-WRITE Error Recovery
Page is set.
 
However the working group reached a different conclusion which was that
conflicts between the two should be flagged as parameter errors for the
initiator to sort out. Specifically the working group recommended and the April
1994 Plenary approved the following change to the READ LONG command.
 
A corrected (CORRCT) bit of zero requests that a logical block to be read
without any correction made by the target.  A CORRCT bit of one requests that
the data be corrected by ECC before being transferred to the initiator. If the
DCR bit of the READ-WRITE Error Recovery Page is equal to one and the CORRCT
bit equals one the Read Long Command shall be terminated with CHECK CONDITION
status and the sense key shall be set to ILLEGAL REQUEST with an additional
sense code of INVALID FIELD IN CDB.
 
Surprised by the working groups recommendation, I failed to point out that
CORRCT and DCR were not the only conflicts.
 
With no guidance on how to handle the conflicts and evidenced by the above
experience with some implementors not recognizing the conflicts, implementors
of READ LONG have chosen differing alternatives.
 
There seems to be four basic approaches to deal with this problem. One would be
to conclude that the READ LONG command is an obsolete command and delete it.
While many would agree with this I assume there are still drive qualification
engineers who would feel agony without the command.
 
A second alternative would be to recognize that the limited audience for this
command has been and can continue to deal with the differences on an ad hoc
basis.
 
A third alternative would be to retract the above change and add a statement
that The READ-WRITE Error Recovery Page controls are not applicable to the READ
LONG command. It might still be necessary for a blind qualification test to
include in the READ LONG command section certain implicit READ-WRITE Error
Recovery Page bit settings.
 
A fourth alternative would be to specifically address the further conflicts. In
case there is support for this alternative (I prefer Alternative One or Three)
I have prepared sample text to be added in addition to the change already made
and noted above. You will note that this text also addresses some additional
points that are ambiguous.
 
If a Read Long command is used to access a sector which contains an ECC error,
the following should occur:
 
1. Unrecoverable (by re-reads and off-sets)  but Correctable ECC error, CORRCT
= 0:
          a.  TB=0: Return  CHECK CONDITION status and the sense key set to
MEDIUM ERROR with an additional sense code of  UNRECOVERED READ ERROR. (Editors
Note: Since the user of the READ LONG command has written the data on purpose
with the error and expects the data to be not corrected they on equally valid
grounds return uncorrected data and report a Good status with no associated
sense.)
     b.  TB=1:  Return uncorrected data and report CHECK CONDITION status and
the sense key set to MEDIUM ERROR with an additional sense code of  UNRECOVERED
READ ERROR. (Same Editors note.)
 
2. Unrecoverable (by re-reads and off-sets)  but Correctable ECC error, CORRCT
= 1:
a. PER=0:  Return corrected data and Good status, with associated sense of NO
SENSE.
b. PER=1:  Return corrected data and Check status, with associated sense of
RECOVERED ERROR with additional sense code of RECOVERED DATA.
 
 
3. Unrecoverable ECC error, CORRCT = X:
a. TB=0:  Return Check status, with the sense key set to MEDIUM ERROR with an
additional sense code of  UNRECOVERED READ ERROR.
b. TB=1:  Return uncorrected data and Check status, with the sense key set to
MEDIUM ERROR with an additional sense code of  UNRECOVERED READ ERROR.
 
--
Gene Milligan -- Gene_Milligan at notes.seagate.com
-------------------------------------------------------------------------
Seagate Technology   -   920 Disc Drive   -   Scotts Valley, CA 95066 USA
Main Phone 408-438-6550   -   Email Problems postmaster at notes.seagate.com
Technical Support: BBS 408-438-8771  Fax 408-438-8137  Voice 408-438-8222  
-------------------------------------------------------------------------

### OGATE Version 8 message trace and attachment information:
### MsgFileName: m:\mgate\outbound\739.MSG
### Org Date:    09-29-94 01:14:32 PM
### From:        Gene Milligan at SEAGATE
### To:          scsi @ wichitaks.ncr.com @ internet
### Subject:     READ LONG Conundrum or Command
### Attachments: none




More information about the T10 mailing list