Line 60:
Line 60:
{| border="1"
{| border="1"
! base !! function !! offset !! description !! contents/example
! 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)
−
|-
−
||0x0D020000||AES ||
−
|-
−
|| || || 0000 W || command || 980000LL to start operation (L = len in 16 byte blocks -1)
−
|-
−
|| || || || || 980010LL start operation and "do not reload IV"??
−
|-
−
|| || || || || 00000000 reset
−
|-
−
|| || || 0000 R || status || MSB means busy
−
|-
−
|| || || 0004 W || data addr || source DMA
−
|-
−
|| || || 0008 W || data addr|| dst DMA
−
|-
−
|| || || 000C W || key fifo || write 4 words to set key
−
|-
−
|| || || 0010 W || IV fifo || write 4 words to set IV
−
|-
−
||0x0D030000||SHA-1 ||
−
|-
−
|| || || 0000 R || status || MSB means busy
−
|-
−
|| || || 0000 W || command || 0x00000000 Reset?
−
|-
−
|| || || || || 0x8000001F Calculate hash, then increase address by size 0x800
−
|-
−
|| || || 0004 W || address || Physical address of data
−
|-
−
|| || || 0008 R || hash || 1. part of hash value
−
|-
−
|| || || 0008 W || init || 1. part of hash init value: 0x67452301
−
|-
−
|| || || 000c R || hash || 2. part of hash value
−
|-
−
|| || || 000c W || init || 2. part of hash init value: 0xEFCDAB89
−
|-
−
|| || || 0010 R || hash || 3. part of hash value
−
|-
−
|| || || 0010 W || init || 3. part of hash init value: 0x98BADCFE
−
|-
−
|| || || 0014 R || hash || 4. part of hash value
−
|-
−
|| || || 0014 W || init || 4. part of hash init value: 0x10325476
−
|-
−
|| || || 0018 R || hash || 5. part of hash value
−
|-
−
|| || || 0018 W || init || 5. part of hash init value: 0xC3D2E1F0
−
|-
−
||0x0D040000||EHCI ||
−
|-
−
||0x0D050000||OHC !#0 ||
−
|-
−
||0x0D060000||OHC !#1 ||
−
|-
−
||0x0D070000||SDHC !#0 ||
−
|-
−
||0x0D070100||SDHC !#1 ||
|-
|-
||0x0D800000|| hollywood control || 0x400 bytes of control registers; these registers are mirrored every 0x400 bytes from 0x0D80000 to 0x0D805fff
||0x0D800000|| hollywood control || 0x400 bytes of control registers; these registers are mirrored every 0x400 bytes from 0x0D80000 to 0x0D805fff