Jump to navigation Jump to search
690 bytes added ,  20:54, 21 July 2021
Removed the general header
== General ==The '''oO'''ne '''tT'''ime '''pP'''rogrammable memory is used to store 32 4byte words. It is programmed sometimes sometime during the factory process and can never be changed afterwards. Next to the Wii's shared and public keys it also contains a random number generation seed and the boot1 hash which basically makes it impossible for us to change boot1. This memory may or may not be described in claims 141 and 142 in
== Register List ==
== Register descriptions General Registers =={{regsimplereg32 |HW_OTP_COMMAND|addr=0x0d8001ec|bitshifields =322 |accesslofields =2 ||1|15||R/W|U||RD||||11|5||U|R/W|||ADDR|}}{{regdesc|RD|Set to one to execute a read command. If clear, then the data in HW_OTP_DATA is unchanged.|ADDR|Word address to read}}This register contains the command sent to the OTP. Reading data is 0x8000_00aa where aa is the address of the 4byte word you want to read. It is unknown whether is register is also used during the factory process to program the OTP. ----{{regsimple|HW_OTP_DATA|addr=0x0d8001f0|bits=32|access=R/W}}This register contains the output data for the last issued OTP command. Changes of the HW_OTP_COMMAND register directly change this register without any delays.
This register contains the output data for the last issued OTP read command. The execution of a read operation via the HW_OTP_COMMAND register immediately changes this register without any delay.
== OTP Contents ==
|- style="background-color: #ddd;"
! Address
! Contents
! Description
| 0-4 || Boot1 [[boot1]] hash|| Expected hash checked against actual boot1 hash by [[boot0]]
| 5-8 || [[ticket| common key]] || Used to encrypt title keys in tickets
| 9 || [[savegame Files| NG id]] || Used to name the NG [[certificate chain|certificate]]
| a-10 11 || NG private key|| Per-console key that signs save files
| 11-15 || [[Hardware/NAND |NAND]] HMAC(overlaps with NG private key) || Per-console key that signs NAND blocks
| 16-19 || NAND key|| Per-console key that encrypts the NAND
| 1a-1d || RNG keyseed || Used for crypto-related random number generation
| 1e-1f || Unknown|| Appears to vary between units

Navigation menu