General
Both the Latte and the Espresso hardware use eFuses for holding an assortment of read-only data, including the console's encryption/decryption keys.
Latte
Register List
Register Details
|  HW_EFUSEADDR  (0x0d8001ec)
 | 
|  
 | 
31
 | 
30
 | 
29
 | 
28
 | 
27
 | 
26
 | 
25
 | 
24
 | 
23
 | 
22
 | 
21
 | 
20
 | 
19
 | 
18
 | 
17
 | 
16
 | 
| Access
 | 
R/W
 | 
U
 | 
| Field
 | 
RD
 | 
 | 
|  
 | 
15 | 
14 | 
13 | 
12 | 
11 | 
10 | 
9 | 
8 | 
7 | 
6 | 
5 | 
4 | 
3 | 
2 | 
1 | 
0
 | 
| Access
 | 
U
 | 
R/W
 | 
U
 | 
R/W
 | 
| Field
 | 
 | 
BANK
 | 
 | 
ADDR
 | 
| Field
 | 
Description
 | 
| RD
 | 
Set to one to execute a read command. If clear, then the data in HW_EFUSEDATA is unchanged.
 | 
| BANK
 | 
Bank's number (0x0 to 0x7).
 | 
| ADDR
 | 
Word address to read, 0x00 to 0x1F (32 4byte words).
 | 
This register contains the address sent to the eFuse driver.
| HW_EFUSEDATA (0x0d8001f0)
 | 
|  
 | 
310
 | 
| Access
 | 
R
 | 
This register contains the output data for the last issued eFuse read command. The execution of a read operation via the HW_EFUSEADDR register immediately changes this register without any delay.
|  LT_EFUSEPROT  (0x0d800510)
 | 
|  
 | 
31
 | 
30
 | 
29
 | 
28
 | 
27
 | 
26
 | 
25
 | 
24
 | 
23
 | 
22
 | 
21
 | 
20
 | 
19
 | 
18
 | 
17
 | 
16
 | 
| Access
 | 
R/W
 | 
| Field
 | 
 | 
|  
 | 
15 | 
14 | 
13 | 
12 | 
11 | 
10 | 
9 | 
8 | 
7 | 
6 | 
5 | 
4 | 
3 | 
2 | 
1 | 
0
 | 
| Access
 | 
R/W
 | 
| Field
 | 
 | 
This register is a bitmask for locking out chunks of eFuses. Each bit clears out 0x20 bytes starting from the bottom (bank 7 is 0xF0000000) to the top (bank 0 is 0x0000000F).
Contents
All data here is written during manufacturing.
| Bank
 | 
Offset (word index * 4)
 | 
Size
 | 
Description
 | 
| 0 | 
0x000 (0x00 * 4) | 
0x14 bytes | 
Wii boot1 SHA-1 hash
 | 
| 0 | 
0x014 (0x05 * 4) | 
0x10 bytes | 
Wii common key
 | 
| 0 | 
0x024 (0x09 * 4) | 
0x04 bytes | 
Wii device ID
 | 
| 0 | 
0x028 (0x0A * 4) | 
0x1C bytes | 
Wii device private key
 | 
| 0 | 
0x044 (0x11 * 4) | 
0x14 bytes | 
Wii NAND HMAC key
 | 
| 0 | 
0x058 (0x16 * 4) | 
0x10 bytes | 
Wii NAND key
 | 
| 0 | 
0x068 (0x1A * 4) | 
0x10 bytes | 
Wii backup key
 | 
| 0 | 
0x078 (0x1E * 4) | 
0x04 bytes | 
 | 
| 0 | 
0x07C (0x1F * 4) | 
0x04 bytes | 
Reserved
 | 
| 1 | 
0x080 (0x20 * 4) | 
0x04 bytes | 
FuseType
Production: 0x90000000
Development: 0x88000000
Evaluation: 0x00000000
 
 | 
| 1 | 
0x084 (0x21 * 4) | 
0x04 bytes | 
IOStrength configuration flags
Production: 0x00000000
Flag 0x00008000 sets register HW_IOSTRCTRL0.
Flags 0x00000008, 0x00000080, 0x00000800, 0x00002000 set register HW_IOSTRCTRL1.
 
 | 
| 1 | 
0x088 (0x22 * 4) | 
0x04 bytes | 
Pulse length for EEPROM manual CLK
Production: 0x00000000 (defaults to 0xFA in boot0)
 
 | 
| 1 | 
0x08C (0x23 * 4) | 
0x04 bytes | 
Signature type?
Production: 0x00010000
Development: 0x00000000
 
 | 
| 1 | 
0x090 (0x24 * 4) | 
0x10 bytes | 
Starbuck ancast key
 | 
| 1 | 
0x0A0 (0x28 * 4) | 
0x10 bytes | 
EEPROM key
 | 
| 1 | 
0x0B0 (0x2C * 4) | 
0x10 bytes | 
 | 
| 1 | 
0x0C0 (0x30 * 4) | 
0x10 bytes | 
 | 
| 1 | 
0x0D0 (0x34 * 4) | 
0x10 bytes | 
vWii common key
 | 
| 1 | 
0x0E0 (0x38 * 4) | 
0x10 bytes | 
Wii U common key
 | 
| 1 | 
0x0F0 (0x3C * 4) | 
0x10 bytes | 
 | 
| 2 | 
0x100 (0x40 * 4) | 
0x10 bytes | 
 | 
| 2 | 
0x110 (0x44 * 4) | 
0x10 bytes | 
 | 
| 2 | 
0x120 (0x48 * 4) | 
0x10 bytes | 
SSL RSA key encryption key
 | 
| 2 | 
0x130 (0x4C * 4) | 
0x10 bytes | 
IVS key
 | 
| 2 | 
0x140 (0x50 * 4) | 
0x10 bytes | 
Wii media title key
 | 
| 2 | 
0x150 (0x54 * 4) | 
0x10 bytes | 
XOR key
 | 
| 2 | 
0x160 (0x58 * 4) | 
0x10 bytes | 
Wii U backup key
 | 
| 2 | 
0x170 (0x5C * 4) | 
0x10 bytes | 
SLC NAND key
 | 
| 3 | 
0x180 (0x60 * 4) | 
0x10 bytes | 
MLC NAND key
 | 
| 3 | 
0x190 (0x64 * 4) | 
0x10 bytes | 
SHDD key
 | 
| 3 | 
0x1A0 (0x68 * 4) | 
0x10 bytes | 
DRH WLAN data key
 | 
| 3 | 
0x1B0 (0x6C * 4) | 
0x30 bytes | 
 | 
| 3 | 
0x1E0 (0x78 * 4) | 
0x14 bytes | 
SLC NAND HMAC key
 | 
| 3 | 
0x1F4 (0x7D * 4) | 
0x0C bytes | 
 | 
| 4 | 
0x200 (0x80 * 4) | 
0x10 bytes | 
 | 
| 4 | 
0x210 (0x84 * 4) | 
0x0C bytes | 
 | 
| 4 | 
0x21C (0x87 * 4) | 
0x04 bytes | 
Wii U device ID
 | 
| 4 | 
0x220 (0x88 * 4) | 
0x20 bytes | 
Wii U device private key
Only 0x1E bytes are used.
 
 | 
| 4 | 
0x240 (0x90 * 4) | 
0x20 bytes | 
Wii U device unique certificate private key
Only 0x1E bytes are used.
 
 | 
| 4 | 
0x260 (0x98 * 4) | 
0x10 bytes | 
RNG seed
Only the first 0x04 bytes are used.
 
 | 
| 4 | 
0x270 (0x9C * 4) | 
0x10 bytes | 
 | 
| 5 | 
0x280 (0xA0 * 4) | 
0x04 bytes | 
Wii U device unique certificate manufacturing (MS) ID
Production: 0x00000012
Development: 0x00000003
 
 | 
| 5 | 
0x284 (0xA1 * 4) | 
0x04 bytes | 
Wii U device unique certificate authority (CA) ID
Production: 0x00000003
Development: 0x00000002
 
 | 
| 5 | 
0x288 (0xA2 * 4) | 
0x04 bytes | 
Wii U device unique certificate manufacturing date (seconds elapsed since 1950-01-01)
 | 
| 5 | 
0x28C (0xA3 * 4) | 
0x3C bytes | 
Wii U device unique certificate signature
 | 
| 5 | 
0x2C8 (0xB2 * 4) | 
0x18 bytes | 
 | 
| 5 | 
0x2E0 (0xB8 * 4) | 
0x10 bytes | 
Wii U DIAG ancast key (locked out by boot1)
 | 
| 5 | 
0x2F0 (0xBC * 4) | 
0x10 bytes | 
Locked out by boot1
 | 
| 6 | 
0x300 (0xC0 * 4) | 
0x04 bytes | 
Wii U device authentication common certificate manufacturing (MS) ID
Production: 0x00000002
Development: 0x00000003
 
 | 
| 6 | 
0x304 (0xC1 * 4) | 
0x04 bytes | 
Wii U device authentication common certificate authority (CA) ID
Production: 0x00000001
Development: 0x00000002
 
 | 
| 6 | 
0x308 (0xC2 * 4) | 
0x04 bytes | 
Wii U device authentication common certificate manufacturing date (seconds elapsed since 1950-01-01)
 | 
| 6 | 
0x30C (0xC3 * 4) | 
0x3C bytes | 
Wii U device authentication common certificate signature
 | 
| 6 | 
0x348 (0xD2 * 4) | 
0x10 bytes | 
Wii common2 key (for Korea)
 | 
| 6 | 
0x358 (0xD6 * 4) | 
0x08 bytes | 
 | 
| 6 | 
0x360 (0xD8 * 4) | 
0x20 bytes | 
Wii U device authentication common certificate private key
Only 0x1E bytes are used.
 
 | 
| 7 | 
0x380 (0xE0 * 4) | 
0x20 bytes | 
Locked out by boot1
 | 
| 7 | 
0x3A0 (0xE8 * 4) | 
0x10 bytes | 
Boot1 key (locked out by boot0)
 | 
| 7 | 
0x3B0 (0xEC * 4) | 
0x10 bytes | 
Locked out by boot0
 | 
| 7 | 
0x3C0 (0xF0 * 4) | 
0x24 bytes | 
Reserved
 | 
| 7 | 
0x3E4 (0xF9 * 4) | 
0x04 bytes | 
Latte package wafer X and Y positions
 | 
| 7 | 
0x3E8 (0xFA * 4) | 
0x04 bytes | 
 | 
| 7 | 
0x3EC (0xFB * 4) | 
0x04 bytes | 
Latte package revision
 | 
| 7 | 
0x3F0 (0xFC * 4) | 
0x08 bytes | 
LattePackageId
 | 
| 7 | 
0x3F8 (0xFE * 4) | 
0x04 bytes | 
Reserved
 | 
| 7 | 
0x3FC (0xFF * 4) | 
0x04 bytes | 
DebugType
 | 
FuseType
| Bits
 | 
Description
 | 
| 0-26
 | 
Reserved
 | 
| 27
 | 
Development
 | 
| 28
 | 
Production
 | 
| 29
 | 
 | 
| 30
 | 
Causes an error in boot0
 | 
| 31
 | 
Disables evaluation mode
 | 
LattePackageId
This identifier is composed by a three digit date code, followed by two letters and three characters. The Latte SoC includes this identifier in its shield's markings, but prefixed with the number "1".
Example: 226LP734 (SoC shield's marking is 1226LP734)
"226" translates to the 26th week of year 2012, "LP" indicates the manufacturing site is in Japan and "734" appears to be a lot trace code.
MfgSite
| Value
 | 
Description
 | 
| LP
 | 
Japan
 | 
| CW
 | 
Korea
 | 
| AV
 | 
Taiwan
 | 
| TV
 | 
Taiwan
 | 
| UV
 | 
Taiwan
 | 
DebugType
| Bits
 | 
Description
 | 
| 0
 | 
Set in production mode
 | 
| 1-3
 | 
Reserved
 | 
| 4
 | 
 | 
| 5
 | 
 | 
| 6
 | 
 | 
| 7
 | 
Disables JTAG
 | 
| 8-29
 | 
Reserved
 | 
| 30
 | 
 | 
| 31
 | 
 | 
Espresso
| eFuse | 
| Access | 
|---|
| Espresso | Full | 
|---|
| Starbuck | Full | 
|---|
| Registers | 
|---|
| Base | 0x0c320000 | 
|---|
| Length | 0x40 | 
|---|
| Access size | 32 bits | 
|---|
| Byte order | Big Endian | 
|---|
 | 
Contents
All data here is written during manufacturing. Items listed as reserved are not known to be used and are either empty or random.
| Offset
 | 
Size
 | 
Description
 | 
| 0x000 | 
0x10 bytes | 
Espresso Wii U ancast key
 | 
| 0x010 | 
0x10 bytes | 
Espresso vWii ancast key
 | 
| 0x020 | 
0x1C bytes | 
Reserved
 | 
| 0x03C | 
0x4 bytes | 
FuseType
Production: 0xB4000001
Development: 0xAC000001
 
 | 
FuseType
| Bits
 | 
Description
 | 
| 0
 | 
 | 
| 1-25
 | 
Reserved
 | 
| 26
 | 
Disables evaluation mode
 | 
| 27
 | 
Development
 | 
| 28
 | 
Production
 | 
| 29
 | 
 | 
| 30
 | 
 | 
| 31
 | 
 |