Field pointer sense key specific data (SPC4 -> Sense data -> Descriptor format sense data)

srivatsa h.c. srivatsahc2005 at gmail.com
Tue Aug 23 05:21:49 PDT 2011


Formatted message: <a href="http://www.t10.org/cgi-bin/ac.pl?t=r&f=r1108230_f.htm">HTML-formatted message</a>

Hi,
Following is the issue that I am facing with "Field pointer sense key
specific data". It would be of great help if you could give your inputs on
the same.
Issue Description:
Whenever a command results in "Check condition", then according to SPC4r29 :
*1) The sense key specific sense data descriptor (see table 30) provides
additional information about the exception
condition described in 4.5.2.1. The format and content of the sense-key
specific data depends on the value in the
SENSE KEY field (see 4.5.2.1).*
*2) If the sense key is ILLEGAL REQUEST, then the SENSE KEY SPECIFIC field
shall be as shown in table 32.*
According to table 32, "Field pointer sense key specific data" is a 3 byte
value. In byte 0, there is 3 bit value called BIT POINTER and according to
SPC4, the description for BIT POINTER is as follows:
*3) A bit pointer valid (BPV) bit set to zero indicates that the value in
the BIT POINTER field is not valid. A BPV bit set to
one indicates that the BIT POINTER field specifies which bit of the byte
designated by the FIELD POINTER field is in
error. When a multiple-bit field is in error, the BIT POINTER field shall
point to the first bit (i.e., the left-most bit) of the
field.*
The issue is with sentence that is underlined and in italics above "*When a
multiple-bit field is in error, the BIT POINTER field shall point to the
first bit (i.e., the left-most bit) of the
field."
*For e.g., in READ10 command, 6th byte, bit7:bit6:bit5 are RESERVED. *Should
this field be treated as a single "multiple bit field" or 3
separateindividual bitswhich are reserved
?*
*CASE 1:* The 3 bits are considered as single "*multiple bit field*"
If this field(bit7:bit6:bit5 which is reserved) is set to non zero value,
then the disk returns Check Condition, with Field Pointer set to 6 and Bit
Pointer set to 7.
*CASE 2:* The 3 bits are considered as 3 separate individual bits
Field pointer will be set to 6 and Bit pointer will be set to the bit that
is in error. For e.g. if 001b is set, then the bit pointer will point to 5.
If 100b is set, then the bit pointer will point to 7.
Which one of the above 2 cases is correct?
Please let me know if any additional information is required.
Regards,
H.C.Srivatsa



More information about the T10 mailing list