Reserved field validation

Douglas Gilbert dougg at torque.net
Fri May 27 19:39:09 PDT 2005


* From the T10 Reflector (t10 at t10.org), posted by:
* Douglas Gilbert <dougg at torque.net>
*
Rich,
I don't think there is a way to find out definitively
if a device checks reserved fields but there is
something close.

In SPC-2 INQUIRY had a CmdDt bit to show "command support
data". This included a mask returned by the device
for every SCSI command it supported. A set bit indicated
that the corresponding position in the command was
interpreted by the device.

In SPC-3, CmdDt was removed and a new SCSI command called
REPORT SUPPORTED OPERATION CODES was added that provided
a similar function. Additionally it could handle SCSI
commands that used a service action (i.e. where not
simply defined by cdb[0]).

Alas, support for these features is thin on the ground
in my experience. I have a Fujitsi disk that supports
the INQUIRY CmdDt feature. I have not seen any device
that supports REPORT SUPPORTED OPERATION CODES.

Here is the output from decoding the response to an
INQUIRY with the CmdDt bit set on a MAM 3184 disk:

Supported command list:
  00 00 00 00 00 01  Test Unit Ready
  01 00 00 00 00 01  Rezero Unit
  03 00 00 00 ff 01  Request Sense
  04 1f ff 00 00 01  Format Unit
  07 00 00 00 00 01  Reasssign Blocks
  08 1f ff ff ff 01  Read (6)
  0a 1f ff ff ff 01  Write (6)
  0b 1f ff ff 00 01  Seek (6)
  12 03 ff 00 ff 01  Inquiry
  15 11 00 00 ff 01  Mode Select
  16 1e 00 00 00 01  Reserve
  17 1e 00 00 00 01  Release
  1a 08 ff 00 ff 01  Mode Sense
  1b 01 00 00 01 01  Start/Stop Unit
  1c 00 00 ff ff 01  Receive Diagnostic
  1d 17 00 ff ff 01  Send Diagnostic
  25 00 ff ff ff ff 00 00 01 01  Read Capacity
  28 08 ff ff ff ff 00 ff ff 01  Read (10)
  2a 08 ff ff ff ff 00 ff ff 01  Write (10)
  2b 00 ff ff ff ff 00 00 00 01  Seek (10)
  2e 00 ff ff ff ff 00 ff ff 01  Write Verify
  2f 02 ff ff ff ff 00 ff ff 01  Verify
  35 02 ff ff ff ff 00 ff ff 01  Synchronize Cache
  37 00 1d 00 00 00 00 ff ff 01  Read Defect Data
  3b 0f ff ff ff ff ff ff ff 01  Write Buffer
  3c 0f ff ff ff ff ff ff ff 01  Read Buffer
  3e 02 ff ff ff ff 00 ff ff 01  Read Long
  3f 00 ff ff ff ff 00 ff ff 01  Write Long
  40 00 01 7f 00 00 00 00 ff 01  Change Definition
  41 02 ff ff ff ff 00 ff ff 01  Write Same
  4c 03 00 00 00 00 00 ff ff 01  Log Select
  4d 01 ff 00 00 ff ff ff ff 01  Log Sense
  55 11 00 00 00 00 00 ff ff 01  Mode Select (10)
  56 10 00 ff 00 00 00 00 00 01  Reserve (10)
  57 10 00 ff 00 00 00 00 00 01  Release (10)
  5a 08 ff 00 00 00 00 ff ff 01  Mode Sense (10)
  5e 1f 00 00 00 00 00 ff ff 01  Persistent reserve in
  5f 1f ff 00 00 00 00 ff ff 01  Persistent reserve out
  a0 00 00 00 00 00 ff ff ff ff 00 01  Report luns
  a3 1f 00 00 00 00 ff ff ff ff 00 01  Maintenance (in)
  a4 1f 00 00 00 00 ff ff ff ff 00 01  Maintenance (out)
  b7 1d 00 00 00 00 ff ff ff ff 00 01  Read defect data(12)

Application clients could be a fair bit smarter with
information like this (assuming it is accurate).
I hope SCSI device firmware folks are reading ...

Doug Gilbert


*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org





More information about the T10 mailing list