Hardware/NAND Interface: Difference between revisions
< Hardware
New page: {{Infobox MMIO | arm = Full | base = 0x0d010000 | len = 0x20 | bits = 32 | armirq = 1 }} |
add nfoz |
||
Line 6: | Line 6: | ||
| armirq = 1 | | armirq = 1 | ||
}} | }} | ||
{| border="1" | |||
! base !! function !! offset !! description !! contents/example | |||
|- | |||
|0x0D010000||NAND || | |||
|- | |||
| || || 0000 W || command || 9F000000 (CMD 00: start read sector) | |||
|- | |||
|| || || || || 8030B840 (CMD 30: data (starts DMA 0x840 bytes)) | |||
|- | |||
|| || || || || 80FF8000 (CMD FF: reset) | |||
|- | |||
|| || || || || 00008000 means: wait for R/#B to go down | |||
|- | |||
|| || || || || 1F000000 is the mask of the address bytes to send. (10 = AA, 08 = BB, .., 01 = FF in 08,0c) | |||
|- | |||
|| || || 0000 R || status || MSB means busy | |||
|- | |||
|| || || 0004 W || config || | |||
|- | |||
|| || || 0008 W || address #0 || 0000AABB | |||
|- | |||
|| || || 000C W || address #1 || CCDDEEFF, NAND sector, multiply with 0x800 or 0x840 to get offset, 0x40 for ecc | |||
|- | |||
|| || || 0010 W || data addr || target address for DMA (0x800 main bytes) | |||
|- | |||
|| || || 0014 W || ecc addr || target address for DMA (0x40 spare bytes + 0x10 byte HW-calculated ECC syndrome) | |||
|- | |||
|| || || 0018 W || unknown || | |||
|} |
Revision as of 03:45, 26 February 2009
NAND Interface | |
Access | |
---|---|
Broadway | None |
Starlet | Full |
Registers | |
Base | 0x0d010000 |
Length | 0x20 |
Access size | 32 bits |
Byte order | Big Endian |
base | function | offset | description | contents/example |
---|---|---|---|---|
0x0D010000 | NAND | |||
0000 W | command | 9F000000 (CMD 00: start read sector) | ||
8030B840 (CMD 30: data (starts DMA 0x840 bytes)) | ||||
80FF8000 (CMD FF: reset) | ||||
00008000 means: wait for R/#B to go down | ||||
1F000000 is the mask of the address bytes to send. (10 = AA, 08 = BB, .., 01 = FF in 08,0c) | ||||
0000 R | status | MSB means busy | ||
0004 W | config | |||
0008 W | address #0 | 0000AABB | ||
000C W | address #1 | CCDDEEFF, NAND sector, multiply with 0x800 or 0x840 to get offset, 0x40 for ecc | ||
0010 W | data addr | target address for DMA (0x800 main bytes) | ||
0014 W | ecc addr | target address for DMA (0x40 spare bytes + 0x10 byte HW-calculated ECC syndrome) | ||
0018 W | unknown |