Switch 2: BCT

From Nintendo Switch Brew
Jump to navigation Jump to search

BCT (Boot Configuration Table) is a data structure present on Tegra based devices that supplies boot time configuration parameters.

The Switch 2 can use different types of BCTs with the BRBCT (BootROM BCT) being installed into the first bytes of UFS storage's LUN0 and LUN1.

Structure

BRBCT

Offset Size Description
0x0 0x4 Magic ("BCTB")
0x4 0x40 DigestHash (SHA-512 hash over data from 0x44 to 0x2000)
0x44 0x180 PublicParams
0x1C4 0x40 CryptoHash (SHA-512 hash over data from 0x1200 to 0x2000)
0x204 0xB10 CryptoSignature (XMSS-SHA2_20_256 signature)
0xD14 0x400 CustomerInfo
0x1114 0xEC
Signed Section Begin
AAD Section Begin
0x1200 0x10 Salt1
0x1210 0x4 Magic ("BCTB")
0x1214 0x4 BctEds
0x1218 0x10
0x1228 0x4
0x122C 0xC Iv
AAD Section End
0x1238 0x10 Tag
0x1248 0xC0 (0x30 * 4) PtInfo[4]
0x1308 0x4 Version
0x130C 0x400 CustomerInfoSigned
0x170C 0x284
Encrypted Section Begin
0x1990 0x10 Salt2
0x19A0 0x10 Ecid
0x19B0 0x8 BlDerStr
0x19B8 0x8 FwDerStr
0x19C0 0x8 TzDerStr
0x19C8 0x8 GpDerStr
0x19D0 0x8 FsiDerStr
0x19D8 0x4 NonGpioSelectBootChain
0x19DC 0x4 BootLoadersUsed
0x19E0 0x4 SecureDebugControlNoneEcid
0x19E4 0x4 SecureDebugControlEcid
0x19E8 0x4 PreprodDevSign
0x19EC 0x4 SecProvisioningKeynumSecure
0x19F0 0x4 BfBlBits
0x19F4 0x20 TzTestKey
0x1A14 0x20 FskpTestKey
0x1A34 0x20 PkaTestKey
0x1A54 0x24
0x1A78 0x01 FskpKeyAesType
0x1A79 0x01 FskpKeyHmacType
0x1A7A 0x01 PkaTestKeyType
0x1A7B 0x20 SecProvisionDerivationString1
0x1A9B 0x20 SecProvisionDerivationString2
0x1ABB 0x1
0x1ABC 0x4 SoftSkuOverwrite
0x1AC0 0x40 BrBctHash (SHA-512 hash over data from 0x170C to 0x1AC0)
0x1B00 0x500
Encrypted Section End
Signed Section End

NvBctPtInfo

Offset Size Description
0x0 0x4 Mb1BctStartPage
0x4 0x4 Mb1BctStartBlock
0x8 0x4 Mb1BctVersion
0xC 0x4 Mb1BctRandom
0x10 0x4 PscBlStartPage
0x14 0x4 PscBlStartBlock
0x18 0x4 PscBlVersion
0x1C 0x4 PscBlRandom
0x20 0x4 Mb1StartPage
0x24 0x4 Mb1StartBlock
0x28 0x4 Mb1Version
0x2C 0x4 Mb1Random

Version

Offset Size Description
0x0 0x1 VerMajor
0x1 0x1 VerMinor
0x2 0x1 RatchetLevel
0x3 0x1 RevokePk

RevokePk

Bits Description
0 RevokeH0
1 RevokeH1

BfBlBits

Bits Description
0 GpioSelectBootChain
1 Mb1DebugProduction
2 Sc7RfDebugProduction
3 PscBlDebugProduction
4 PscRfDebugProduction
5 PscFwDebugProduction
6 BpmpDebugProduction
7 BpmpIstDebugProduction
8 MceDebugProduction
9 IstCcplexDebugProduction
10 IstFwDebugProduction
11 RtcRailViolationDetect
12 CustNvCcplexDfdEn
13 DebugWithTestKeys
14 DebugWithTestKeysDuringPscDebug
15 DisableBootromClockBoost
16 DisablePscromClkBoost
17 EnableScpmReset
18 SkipOemAuthDiagBoot
19 DiagBoot
20 BpmpDiagBoot
21 L0Ist
22 L1Ist
23-31