SCSI-3 Download Code

Gerry Houlder Gerry_Houlder at
Sun Sep 6 23:24:59 PDT 2015

_Date: 01-19-94 10:15:34 AM
_To: scsireflector
_Recipient: scsi at WichitaKS.NCR.COM@internet
_From: Gerry Houlder at SEAGATE
_Subject: re: SCSI-3 Download Code

In our Elite product, we added the abilty to download the code in 32K byte 
chunks (we needed 5). We used the regular WRITE BUFFER command, Download & Save 
mode, and buffer IDs 0 thru 4. Each chunk had to be exactly 32K bytes or we 
rejected the command with ILLEGAL REQUEST (exception: buffer ID 0 could also be 
used to download the entire 160K bytes in one command if the transfer length 
said 160K bytes).

Our implementation required the download to start with buffer ID 0 and end with 
buffer ID 4. It turns out that the order of the other buffer IDs could be 
changed without any ill effects. When a WRITE BUFFER to buffer ID 4 occurred, 
it checked to make sure that data from buffer IDs 0 through 3 had already been 
received (and stored away earlier) and all 5 parts are checksummed before the 
drive will respond with GOOD status. The earlier WRITE BUFFER commands can end 
with GOOD status even illegal data was sent. This is because our checksum 
boundaries are not on the 32K boundaries, so all parts must be present before 
we can be sure that the checksum operation will succeed.

Things like SCSI reset before the last WRITE BUFFER causes the entire operation 
to be lost, so it must be restarted. There are a few other operations we had to 
watch out for, but the response to a reset shows the general recovery 
philosophy we used.

I hope Jim Mcgrath's proposal allows for this operation. There really wasn't 
anything special we had to add to achieve this capability.

Gerry Houlder (Gerry_Houlder at
Seagate Technology   -   920 Disc Drive   -   Scotts Valley, CA 95066 USA
Main Phone 408-438-6550   -   Email Problems postmaster at
Technical Support: BBS 408-438-8771  Fax 408-438-8137  Voice 408-438-8222  

More information about the T10 mailing list