SCSI Download microcode

jmcgrath at jmcgrath at
Fri Mar 18 12:01:36 PST 1994

                      Subject:                              Time:  11:30 AM
  OFFICE MEMO         SCSI Download microcode               Date:  3/18/94
Below is the content of 94-080r1 (in the next mailing).  I would
appreciate feedback. --  Jim


I have been receiving feedback on download microcode in SCSI-2 and
would like to offer a proposal for improvement in SCSI-3.

First, some customers have system limitations that have prevented
them from downloading more than a certain amount of code (typically
64K bytes) during a single command.  While it would appear that the
WRITE BUFFER command has a readily available solution at hand in
the BUFFER OFFSET field, that is not the case.  For the download
microcode modes, the BUFFER ID and BUFFER OFFSET fields are
designated as don't cares - any valid is legal, and should be ignored.


I would suggest revising the standard language to allow the use of
these fields.  If the target receives a WRITE BUFFER command using
the DOWNLOAD microcode mode, then it shall consider the BUFFER ID
and BUFFER OFFSET fields valid.  They should be interpreted in the
following manner:

ID	Offset	Length	Action
 0    	0        	m	    Device receives m bytes of data and interprets it as
			                        bytes 0 through m-1 of downloaded microcode 0.
			                        This is the complete set of downloaded microcode.
k     	n	        m	     Device receives m bytes of data and interprets it as
			                        bytes n through n+m-1 of downloaded microcode k.
			                        This may or may not be the complete set of downloaded

If a Buffer ID other than 0 is used, then each WRITE BUFFER command
may transfer a portion of a downloaded microcode.  The target determines
whether the complete data is transferred by receiving a WRITE BUFFER
command with a transfer length of 0.  Note for this signaling mechanism
to work the following sequence should be performed by the initiator:

    RESERVE the device
    send down one of more WRITE BUFFER commands with no intervening commands
    RELEASE the device

If any command other than a WRITE BUFFER command is received between
the RESERVE and the last WRITE BUFFER command, then the download
sequence should be considered to be aborted.  The initiator should RELEASE
the device, the device should not have been affected by the previous WRITE
BUFFER commands, and the entire sequence should be started again.

When partial data is downloaded the initiator shall download the data in
a contiguous address space in increasing order.

Note that by using the BUFFER ID, multiple versions of microcode may be
downloaded and (optionally) saved.   If a single BUFFER ID is used, then
the operating microcode shall be that associated with that ID.  If multiple
BUFFER IDs are used, then the operating code is selected by using the

More information about the T10 mailing list