Despite having 0x4000 for storage, the actual loaded BootConfig is only 0x640 bytes, with the following format:
+
Despite having 0x4000 for storage, the actual loaded BootConfig is only 0x400 bytes, with the following format:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 23:
Line 23:
| 0x100
| 0x100
| [[#Signed Configuration]]
| [[#Signed Configuration]]
−
|-
−
| 0x400
−
| 0x240
−
| Reserved
|}
|}
Line 39:
Line 35:
|-
|-
| 0x0
| 0x0
−
| 0x10
+
| 0x4
−
|
+
| Version (yyMMddHHmm in uint32)
+
|-
+
| 0x4
+
| 0xC
+
| Reserved
|-
|-
| 0x10
| 0x10
Line 52:
Line 52:
| 0x12
| 0x12
| 0xF
| 0xF
−
|
+
| Reserved
|-
|-
| 0x21
| 0x21
Line 60:
Line 60:
| 0x22
| 0x22
| 0x1
| 0x1
−
|
+
| Reserved
|-
|-
| 0x23
| 0x23
Line 72:
Line 72:
| 0x25
| 0x25
| 0xB
| 0xB
−
|
+
| Reserved
|-
|-
| 0x30
| 0x30
Line 80:
Line 80:
| 0x38
| 0x38
| 0x1C8
| 0x1C8
−
|
+
| Reserved
|}
|}
Line 92:
Line 92:
| 0x0
| 0x0
| 0x8
| 0x8
−
|
+
| Version
|-
|-
| 0x8
| 0x8
| 0x1
| 0x1
−
| Package2 Configuration. Bit 0 set means Package2 is stored unencrypted. Bit 1 set means Package2 is unsigned.
+
| IsPackage2Plaintext (bit 0) and IsPackage2Unsigned (bit 1)
|-
|-
| 0x9
| 0x9
| 0x7
| 0x7
−
|
+
| Reserved
|-
|-
| 0x10
| 0x10
| 0x10
| 0x10
−
| Hardware Info. Must match the Hardware Info read from fuses, or else the loaded Signed Config will be memset to 0 even if signed. This allows Nintendo to set signed configuration on a per-unit basis.
+
| HardwareInfo (must match the HardwareInfo read from fuses, or else the loaded Signed Config will be memset to 0 even if signed; this allows Nintendo to set signed configuration on a per-unit basis)
|-
|-
| 0x20
| 0x20
| 0x1
| 0x1
−
| [[Filesystem_services#SetEnabledProgramVerification|DisableProgramVerification]]. Controls the default value for how to check NCA signatures.
+
| [[Filesystem_services#SetEnabledProgramVerification|DisableProgramVerification]] (controls the default value for how to check NCA signatures)