In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Hardware/NAND Interface: Difference between revisions

From WiiBrew
Jump to navigation Jump to search
Marcan (talk | contribs)
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
BroadwayNone
StarletFull
Registers
Base0x0d010000
Length0x20
Access size32 bits
Byte orderBig Endian
This box: view  talk  edit
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