Number of bytes to read. 0 indicates 256 bytes should be read.
Long Command Format
Byte 0
Value 0, indicating Read Page Buffer subcommand
Bytes 1 – 2
16-bit offset within buffer to start reading
Byte 3 - 4
Number of bytes to read.
Reply Format
Byte 0
Value 0, indicating Read Page Buffer subcommand
Bytes 1 – 2
16-bit offset within buffer where reading started
Byte 3 - N
Bytes read
Write Page Buffer
The Write Buffer subcommand writes into the page buffer. Note that the page buffer must then be used by another command for this to be useful.
Command Format
Byte 0
Value 1, indicating Write Page Buffer subcommand
Bytes 1 – 2
16-bit offset within buffer to start writing
Byte 3 - N
Bytes to write
Reply Format
Byte 0
Value 1, indicating Write Page Buffer subcommand
Bytes 1 – 2
16-bit offset within buffer where writing started
Byte 3 - N
Bytes written
Erase NAND Block
This subcommand erases a block of NAND memory. The entire block is erased so that all bytes read 0xFF.
Command Format
Byte 0
Value 2, indicating Erase NAND Block subcommand
Bytes 1 – 4
32-bit number of a page within the target block
Reply Format
Byte 0
Value 2, indicating Erase NAND Block subcommand
Bytes 1 – 4
32-bit number of a page within the target block
Write NAND Page
This subcommand copies the contents of the page buffer into the target NAND page. For correct operation the page should have been previously erased.
Command Format
Byte 0
Value 3, indicating Write NAND Block subcommand
Bytes 1 – 4
32-bit number of target page to write to
Reply Format
Byte 0
Value 3, indicating Write NAND Block subcommand
Bytes 1 – 4
32-bit number of target page that was written.
Read NAND Page
This subcommand copies the contents of the target NAND page into the page buffer. It will return NAK if there are uncorrectable ECC errors or if the page is in the erased condition.
Even if NAK is returned the page buffer will have been updated. This allows some data to be recovered from the page, even if there are errors.
Command Format
Byte 0
Value 4, indicating Read NAND Block subcommand
Bytes 1 – 4
32-bit number of target page to read from
Reply Format
Byte 0
Value 4, indicating Read NAND Block subcommand
Bytes 1 – 4
32-bit number of target page that was read.
Count NAND Errors
This subcommand examines a number of contiguous NAND pages for ECC errors. It counts the number of pages that contain fixable errors, the number of pages that contain uncorrectable ECC errors, the number of pages that require access to the backup, and the number of erased pages.
Command Format
Byte 0
Value 5, indicating Count NAND Errors subcommand
Bytes 1 – 4
32-bit number of the first page to examine
Bytes 5 - 8
32-bit number of the last page to examine
Reply Format
Byte 0
Value 5, indicating Count NAND Errors subcommand
Bytes 1 – 4
32-bit number of the first page that was examined
Bytes 5 – 8
32-bit number of the last page that was examined
Bytes 9 – 12
32-bit number counting the number of pages with fixable ECC errors
Bytes 13 – 16
32-bit number counting the number of pages with uncorrectable ECC errors that cannot be corrected from the backup (either there is no assigned backup, or the backup also has uncorrectable ECC errors). Blocks tagged as bad are included here.
Bytes 17 – 20
32-bit number counting the number of pages where the primary has uncorrectable ECC errors but the backup is readable
Bytes 21 – 23
32-bit number counting the number of pages that are in a completely erased state
Each page is considered to belong to at most one of these categories.