Proposal to X3T10

Hallam, Ken MV KHallam at
Tue Jan 2 12:08:00 PST 1996

* From the SCSI Reflector, posted by:
* <"Hallam, Ken                 MV" <KHallam at>>

Accredited Standards Committee
X3, Information Processing Systems
                              Doc:        X3T10/96-
                              Date:       January 2, 1995
                              Project:    X3T10/0955D
                              Ref Doc.:   X3T10 955D
                              Reply to:   Kenneth J. Hallam
                                        ken.hallam at

To:     X3T10 Membership
From:   Ken Hallam
Subject: SPC Clarifications


Over the past few years, the Write Buffer command has evolved from
primarily a tool to test the operation of a buffer memory, to being more
often used as a method for downloading microcode. This has proven to be
a useful and attractive feature for many companies to implement into
their products, however not everyone is doing it the same way. In fact,
some implementations seem to violate at least the spirit, if not the
letter of the standard regarding use of some fields. Although this is in
keeping with tradition in SCSI peripherals, there is merit in making an
attempt to provide guidance for those not initiated into the arcane and
mysterious canon of SCSI knowledge.

The confusion seems to lie in the interpretation of mode select in the
WRITE BUFFER command. Bits 0-2 of byte 1 define the Mode to be used for
a microcode download:

Mode 4, (100b) Download microcode
Mode 5, (101b) Download microcode and save
Mode 6, (110b) Download microcode with offsets
Mode 7, (111b) Download microcode with offsets and save

Modes 6 and 7 were RESERVED in SCSI-2 and added in SCSI-3 SPC, yet
various implementations are using Mode 4 or 5 with offsets. This
situation seems to have come about because of an unusual definition for
these modes in both the SCSI-2 and SCSI-3 documents. Both documents
contain the following sentence in the definition for modes 4 and 5.

"The meanings of the buffer ID, buffer offset and parameter list length
fields are not specified by this standard and are not required to be

Most strange! Why were several previously defined fields now called out
to be "not specified" and not zero-filled? The normal, (for SCSI) way
would have been to make the fields RESERVED or VENDOR SPECIFIC for this
command mode, but instead a very ambiguous definition was adopted. The
result has been several vendors, (but by no means all) have decided to
use the Buffer Offset field as originally defined, since the definition
for modes 4 and 5 seem to allow anything. Then later an addition to the
WRITE BUFFER command in SCSI-3 SPC adds modes 6 and 7 with the obvious
intent of allowing buffer offset to be used, (which sort of implies it
was not allowed in modes 4 and 5).

Since it is far too late to improve the text in SCSI-2, a big step in
avoiding confusion would be to add an implementor's note to the SCSI-3
SPC draft.


SPC - Section 7.23

Add the following note to the section:

"Implementor's Note: The preferred method of use of the WRITE BUFFER
command when attempting to download microcode with buffer offsets is for
Mode 6 and 7 to be specified in command byte 1, bits 0-2. The Buffer
Offset field is left undefined in modes 4 and 5 and thus no standard way
to implement buffer offset exits in these modes."

Ken Hallam
25725 Jeronimo Road
Mission Viejo, CA 92691
Tel: 714-380-5115
Fax: 714-380-5858
ken.hallam at

More information about the T10 mailing list