Changes

1,387 bytes added ,  01:08, 29 August 2008
β†’β€ŽIO Memory: Updated NAND, SHA-1 and AES description.
Line 78: Line 78:  
||          ||          || 0008 W  || address #0 ||  0000AABB
 
||          ||          || 0008 W  || address #0 ||  0000AABB
 
|-
 
|-
βˆ’
||          ||          || 000C W  || address #1 || CCDDEEFF  
+
||          ||          || 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)
 
||          ||          || 0010 W  || data addr  || target address for DMA (0x800 main bytes)
Line 86: Line 86:  
||x'0d02_0000||AES      ||
 
||x'0d02_0000||AES      ||
 
|-
 
|-
βˆ’
||          ||          || 0000 W  || command || 980000ll to start operation (l = len in 16 byte blocks -1), | 1000 for "do not reload IV"??
+
||          ||          || 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
 
||          ||          || 0000 R  || status || MSB means busy
 
|-
 
|-
βˆ’
||          ||          || 0004 W  || data addr || either source or dst DMA
+
||          ||          || 0004 W  || data addr || source DMA
 
|-
 
|-
βˆ’
||          ||          || 0008 W  || data addr|| "
+
||          ||          || 0008 W  || data addr|| dst DMA
 
|-
 
|-
 
||          ||          || 000C W  || key fifo || write 4 words to set key
 
||          ||          || 000C W  || key fifo || write 4 words to set key
Line 99: Line 103:  
|-
 
|-
 
||x'0d03_0000||SHA-1    ||
 
||x'0d03_0000||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
 
|-
 
|-
 
||x'0d05_0000||OHC !#0    ||
 
||x'0d05_0000||OHC !#0    ||
Line 200: Line 232:  
||x'0d80_01DC||??? || || || set to 0x00FFFFFF as part of "interface / subsytem powerup"
 
||x'0d80_01DC||??? || || || set to 0x00FFFFFF as part of "interface / subsytem powerup"
 
|-
 
|-
βˆ’
||x'0d80_01EC||OTP || || || OTP read address (addresses run from 0x80000000..0x8000001f)
+
||x'0d80_01EC||OTP || || || OTP read address (addresses run from 0x80000000..0x8000001f, 0x80000000-0x80000004 stores 20 bytes boot1 hash)
 
|-
 
|-
 
||x'0d80_01F0||OTP || || || OTP data           
 
||x'0d80_01F0||OTP || || || OTP data           
40

edits