Changes

676 bytes removed ,  16:40, 20 January 2018
no edit summary
Line 8: Line 8:     
= Structure =
 
= Structure =
== NAND ==
   
Below is the BCT structure used by the Switch, which is a minimal variation of the Tegra 210 BCT format.
 
Below is the BCT structure used by the Switch, which is a minimal variation of the Tegra 210 BCT format.
   Line 205: Line 204:  
|}
 
|}
   −
=== customer_data ===
+
== customer_data ==
 
This data block is ignored by the boot ROM, therefore is available for the programmer to use freely.
 
This data block is ignored by the boot ROM, therefore is available for the programmer to use freely.
 
The Switch uses 0xB0 bytes of this area, at offset 0x0450, to store the active [[Flash_Filesystem#Keyblob|keyblob]]. All remaining bytes are zero.
 
The Switch uses 0xB0 bytes of this area, at offset 0x0450, to store the active [[Flash_Filesystem#Keyblob|keyblob]]. All remaining bytes are zero.
Line 223: Line 222:  
| 0x80
 
| 0x80
 
| 0x10  
 
| 0x10  
| [[Package1#Stage_1|Stage 1]] key
+
| [[Package1#PK11_Blob|PK11]] key
 
|}
 
|}
   −
=== bootloader0_info ===
+
== bootloader0_info ==
==== 1.0.0 - 2.3.0 ====
+
=== 1.0.0 - 2.3.0 ===
 
The version field is set to 0x01, meaning that the first keyblob is to be used.
 
The version field is set to 0x01, meaning that the first keyblob is to be used.
   −
==== 3.0.0 ====
+
=== 3.0.0 ===
 
The version field was changed to 0x02, meaning that the second keyblob is now used.
 
The version field was changed to 0x02, meaning that the second keyblob is now used.
   −
==== 3.0.1 ====  
+
=== 3.0.1 - 3.0.2 ===
 
The version field was changed to 0x03, meaning that the third keyblob is now used.
 
The version field was changed to 0x03, meaning that the third keyblob is now used.
   −
== IRAM ==
+
=== 4.0.0 - 4.1.0 ===
When copied to IRAM, the BCT has an additional header as follows.
+
The version field was changed to 0x04, meaning that the fourth keyblob is now used.
 
  −
{| class="wikitable" border="1"
  −
|-
  −
!  Offset
  −
!  Size
  −
!  Field
  −
!  Description
  −
|-
  −
|  0x00
  −
|  0x50
  −
|  bct_global_header
  −
|  Contains pointers to actual BCT data.
  −
0x4C: bct_data_addr (address of the actual BCT)
  −
|-
  −
|  0x50
  −
|  0x18
  −
|  bootloader0_header
  −
|  Unknown structure.
  −
0x00: is_active (if set to 0x01, bootloader0 is used)
  −
|-
  −
|  0x68
  −
|  0x18
  −
|  bootloader1_header
  −
|  Unknown structure.
  −
0x00: is_active (if set to 0x01, bootloader1 is used)
  −
|-
  −
|  0x80
  −
|  0x18
  −
|  bootloader2_header
  −
|  Unknown structure.
  −
0x00: is_active (if set to 0x01, bootloader2 is used)
  −
|-
  −
|  0x98
  −
|  0x18
  −
|  bootloader3_header
  −
|  Unknown structure.
  −
0x00: is_active (if set to 0x01, bootloader3 is used)
  −
|-
  −
|}