Skip to content

Commit 002f276

Browse files
committed
docs: secure-boot pi4 tidyup
1 parent a38ff43 commit 002f276

File tree

2 files changed

+24
-21
lines changed

2 files changed

+24
-21
lines changed

secure-boot-recovery/README.md

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ uart_2ndstage=1
3030
### Step 2 - Select the nRPIBOOT GPIO
3131
Edit 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

3636
This 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
6688
cd 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)

secure-boot-recovery/config.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ uart_2ndstage=1
2424
# This option has no effect on CM4.
2525

2626
# WARNING: THIS OPTION MODIFIES THE BCM2711 CHIP AND IS IRREVERSIBLE.
27-
#program_rpiboot_gpio=8
27+
#program_rpiboot_gpio=6
2828

2929
# Permanently disable VideoCore JTAG access.
3030
# Warning: This option limits the ability to do failure analysis on

0 commit comments

Comments
 (0)