![](/images/new-backgrounds/1106359/106359197x1.webp)
WRITE BUFFER
Table 107. WRITE BUFFER Command
| 7 | 6 | 5 |
| 4 |
| 3 |
| 2 | 1 | 0 |
|
|
|
|
|
|
|
|
|
|
| |
0 |
|
|
| Operation Code (3Bh) |
|
|
| ||||
|
|
|
|
|
|
|
|
|
|
| |
1 | Logical Unit Number (0) |
| Reserved |
|
| Mode |
| ||||
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
| Buffer ID |
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
: |
|
|
|
| Buffer Offset |
|
|
| |||
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
: |
|
|
| Parameter List Length |
|
|
| ||||
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
|
|
|
| Control |
|
|
| ||
|
|
|
|
|
|
|
|
|
|
|
|
The WRITE BUFFER command transfers data into the memory on the drive for the purpose of diagnostics, tests, or firmware upgrade.
If the Mode field is 000b, then the data to be written is sent with a
The Buffer ID field indicates which buffer is to be written.
To download firmware, Modes 100b, 101b, 110b, and 111b are accepted and handled in the same fashion. Any Buffer ID value in these modes is allowed and ignored. The code must be downloaded with strictly increasing offsets. If it is not, no data is written and Check Condition status is generated. The Sense Key is set to Illegal Request (5) and the ASC/ASCQ is set to Invalid Field in CDB (2400). Ending status is given when the code has been successfully saved to flash, but before the drive has initiated its reset.
The Buffer Offset field indicates where in the buffer the data should be written. This must be smaller than the size of the buffer.
The Parameter List Length field holds the amount of data. This must be smaller than the difference between the Buffer Offset field and the size of the buffer. If it is not, no data is written and Check Condition status is generated. The Sense Key is set to Illegal Request (5) and the ASC/ASCQ is set to Invalid Field in CDB (2400).
Buffers that may be written to are Test, Firmware, and VPD (see “READ BUFFER” on page 49).