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

Gerry Houlder gerry.houlder at seagate.com
Tue Aug 23 06:55:13 PDT 2011


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

This is the treatment I recommend:
(a) For reserved fields, (e.g., like byte 6 of READ (10) command) treat it
like individual bits. For example if bit 4 was the most significant bit set
in that byte, then set the bit pointer for bit 4. An alternative that also
conforms to the letter of the standard is to set the BPV to zero and only
set the byte pointer.
(b) For defined fields (e.g., like the RDPROTECT field in READ (10) command)
always point to the most significant bit of the field regardless of which
bit in the field is illegal. If the field is a multi-byte field, point to
the most significant bit of the most significant byte regardless of which
bit is judged to be illegal.
On Tue, Aug 23, 2011 at 7:21 AM, srivatsa h.c.
<srivatsahc2005 at gmail.com>wrote:
> 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