RSA Registers: Difference between revisions

No edit summary
Line 1: Line 1:
== Registers ==
= Registers =
{| class="wikitable" border="1"
{| class="wikitable" border="1"
NAME
Old3DS
PHYSICAL ADDRESS
Name
WIDTH
Address
!  Width
!  Used by
|-
|-
| REG_RSACNT
| style="background: green" | Yes
| [[#RSA_CNT|RSA_CNT]]
| 0x1000B000
| 0x1000B000
| 0x04
| 0x04
|
|-
|-
| REG_RSASLOT0
| style="background: green" | Yes
| [[#RSA_SLOT|RSA_SLOT]]0
| 0x1000B100
| 0x1000B100
| 0x10
| 0x10
|
|-
|-
| REG_RSASLOT1
| style="background: green" | Yes
| [[#RSA_SLOT|RSA_SLOT]]1
| 0x1000B110
| 0x1000B110
| 0x10
| 0x10
|
|-
|-
| REG_RSASLOT2
| style="background: green" | Yes
| [[#RSA_SLOT|RSA_SLOT]]2
| 0x1000B120
| 0x1000B120
| 0x10
| 0x10
|
|-
|-
| REG_RSASLOT3
| style="background: green" | Yes
| [[#RSA_SLOT|RSA_SLOT]]3
| 0x1000B130
| 0x1000B130
| 0x10
| 0x10
|
|-
|-
| REG_RSAEXPFIFO
| style="background: green" | Yes
| [[#RSA_EXPFIFO|RSA_EXPFIFO]]
| 0x1000B200
| 0x1000B200
| 0x04
| 0x04
|
|-
|-
| REG_RSAMOD
| style="background: green" | Yes
| [[#RSA_MOD|RSA_MOD]]
| 0x1000B400
| 0x1000B400
| 0x100
| 0x100
|
|-
|-
| REG_RSATXT
| style="background: green" | Yes
| [[#RSA_TXT|RSA_TXT]]
| 0x1000B800
| 0x1000B800
| 0x100
| 0x100
|-
|
|}
|}


== REG_RSACNT ==
== RSA_CNT ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
!  Bit
!  Bit
Line 60: Line 77:
|}
|}


== REG_RSASLOT ==
== RSA_SLOT ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
!  Start
!  Start
Line 83: Line 100:
|}
|}


== REG_RSASLOTCNT ==
== RSA_SLOTCNT ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
!  Bits
!  Bits
Line 101: Line 118:
|}
|}


Before writing REG_RSAEXPFIFO/REG_RSAMOD, bit0 here should be cleared when bit31 is already clear. Otherwise, the ARM9 will hang when attempting to write to REG_RSAEXPFIFO.
Before writing RSA_EXPFIFO/RSA_MOD, bit0 here should be cleared when bit31 is already clear. Otherwise, the ARM9 will hang when attempting to write to RSA_EXPFIFO.


== REG_RSASLOTSIZE ==
== RSA_SLOTSIZE ==
This contains the RSA size for this slot, in words. Normally this is 0x40 for RSA-2048.
This contains the RSA size for this slot, in words. Normally this is 0x40 for RSA-2048.


== REG_RSAEXPFIFO ==
== RSA_EXPFIFO ==
The 0x100-byte private or public exponent is written to this write-only FIFO.
The 0x100-byte private or public exponent is written to this write-only FIFO.