SHA Registers: Difference between revisions

Profi200 (talk | contribs)
Profi200 (talk | contribs)
 
(2 intermediate revisions by 2 users not shown)
Line 26: Line 26:
|-
|-
| style="background: green" | Yes
| style="background: green" | Yes
| [[#SHA_INFIFO|SHA_INFIFO]]
| [[#SHA_FIFO|SHA_FIFO]]
| 0x1000A080
| 0x1000A080
| 0x40
| 0x40
Line 41: Line 41:
|-
|-
| 1
| 1
| Pad input
| Final round (1=enable/busy, 0=normal)
|-
|-
| 2
| 2
| ?
| Input DMA enable (1= enable, 0=disable)
|-
|-
| 3
| 3
| Output Endianess (0=Little endian, 1=Big endian)
| Output Endianess (0=little, 1=big)
|-
|-
| 4-5
| 4-5
Line 59: Line 59:
|-
|-
| 8
| 8
| Unknown. When set, the *entire* ARM9 hangs/crashes when attempting to read SHA_INFIFO.
| Clear FIFO? When set, the *entire* ARM9 hangs/crashes when attempting to read SHA_INFIFO.
|-
|-
| 9
| 9
| Unknown. This bit seems to be cleared by reading from SHA_INFIFO.
| Enable FIFO (1=fifo, 0=write-only)
|-
|-
| 10
| 10
| ?
| Output DMA enable (1= enable, 0=disable)
|-
|-
| 16
| 16
Line 71: Line 71:
|-
|-
| 17
| 17
| 1 when FIFO expects read/write
| ?
|}
|}
Bit 8 is used when boot9 chains eMMC reads with AES and SHA to to load, decrypt and verify FIRM partitions.


== SHA_BLKCNT ==
== SHA_BLKCNT ==
Line 80: Line 82:
This reg contains the SHA* hash after the final round, and the internal state during normal rounds. It is possible to write the internal state using this register.
This reg contains the SHA* hash after the final round, and the internal state during normal rounds. It is possible to write the internal state using this register.


== SHA_INFIFO ==
== SHA_FIFO ==
The data to be hashed must be written here. It does not matter what offset is written to.
The data to be hashed must be written here. It does not matter what offset is written to.