@@ -30,7 +30,7 @@ uart_2ndstage=1
3030### Step 2 - Select the nRPIBOOT GPIO
3131Edit the ` secure-boot-recovery/config.txt ` file to specify the GPIO to use for nRPIBOOT. For example:
3232```
33- program_rpiboot_gpio=8
33+ program_rpiboot_gpio=6
3434```
3535
3636This can either be programmed in isolation or combined with the steps to program the secure-boot OTP settings.
@@ -57,10 +57,32 @@ cd secure-boot-recovery
5757
5858` pieeprom.bin ` can then be flashed to the bootloader EEPROM via ` rpiboot ` .
5959
60+ ## Program secure-boot mode
61+ Secure boot is implemented by programming the hash of the customer public key
62+ into the SoC OTP memory.
63+
64+ Once set:-
65+
66+ * The bootloader will only load OS images signed with the customer private key.
67+ * The EEPROM configuration file must be signed with the customer private key.
68+ * It is not possible to downgrade to an old version of the bootloader that doesn't support secure boot.
69+
70+ ** WARNING: This operation cannot be undone and the key hash cannot be changed.**
71+
72+ To enable this edit the ` config.txt ` file in this directory and set ` program_pubkey=1 `
73+
74+ ### Disabling VideoCore JTAG
75+
76+ VideoCore JTAG may be permanently disabled by setting ` program_jtag_lock=1 ` in
77+ ` config.txt ` . This option has no effect unless secure-boot has been enabled.
78+
79+ See default secure-boot-recovery [ config.txt] ( config.txt ) file.
80+
6081## Program the EEPROM image using rpiboot
6182* Power off CM4
6283* Set nRPIBOOT jumper and remove EEPROM WP protection
6384* If possible connect a UART to the CM4 and capture the output for debug
85+ * Power ON CM4
6486
6587``` bash
6688cd secure-boot-recovery
@@ -106,23 +128,4 @@ Example metadata:
106128 "ADVANCED_BOOT" : " 0000e8e8"
107129}
108130```
109- * Power ON CM4
110-
111- ## Locking secure-boot mode
112- After verifying that the signed OS image boots successfully the system
113- can be locked into secure-boot mode. This writes the hash of the
114- customer public key to "one time programmable" (OTP) bits. From then
115- onwards:
116-
117- * The bootloader will only load OS images signed with the customer private key.
118- * The EEPROM configuration file must be signed with the customer private key.
119- * It is not possible to downgrade to an old version of the bootloader that doesn't support secure boot.
120-
121- To enable this edit the ` config.txt ` file in this directory and set ` program_pubkey=1 `
122-
123- ## Disabling VideoCore JTAG
124-
125- VideoCore JTAG may be permanently disabled by setting ` program_jtag_lock ` in
126- ` config.txt ` . This option has no effect unless secure-boot has been enabled.
127131
128- See [ config.txt] ( config.txt )
0 commit comments