Skip to content

Commit f2cbf5a

Browse files
committed
docs: Describe how to enable rpiboot on Pi 4B and Pi 400
1 parent 9564c54 commit f2cbf5a

File tree

1 file changed

+25
-8
lines changed

1 file changed

+25
-8
lines changed

Readme.md

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ Devices supporting the fast Linux-based `mass-storage-gadget`
1515
* Compute Module 3
1616
* Compute Module 3+
1717
* Compute Module 3E
18-
* Raspberry Pi 4
18+
* Raspberry Pi 4B (requires rpiboot to be enabled first)
1919
* Compute Module 4
2020
* Compute Module 4S
21-
* Raspberry Pi 400
21+
* Raspberry Pi 400 (requires rpiboot to be enabled first)
2222
* Raspberry Pi 5
23-
* Raspberry Pi 500
23+
* Raspberry Pi 500 (requires rpiboot to be enabled first)
2424
* Raspberry Pi 500+
2525
* Compute Module 5
2626

@@ -135,17 +135,26 @@ submodules by running:
135135
git submodule update --init
136136
```
137137

138-
## Enabling `rpiboot` support - Pi 4B, Pi 400 & Pi 500
138+
## Enabling `rpiboot` support — extra steps for Pi 4B, Pi 400 & Pi 500
139139

140140
### Pi 4B and Pi 400
141-
Raspberry Pi 4B and Pi 400 do not have a dedicated `nRPIBOOT` jumper. Instead, a GPIO on the 40-pin header can be selected, which,
142-
if pulled to ground during boot, will cause the bootrom to entire `rpiboot` mode.
143-
**This option is permenantly changes the OTP and cannot be altered afterwards**
141+
Raspberry Pi 4B and Pi 400 do not have a dedicated `nRPIBOOT` jumper. Instead, a GPIO on the 40-pin header can be selected which, if held low during boot, forces the boot ROM into `rpiboot` mode.
144142

143+
This is configured using the `make-pi4-rpiboot-gpio-sd` utility, which generates an SD card that programs the target device at power-on with the desired GPIO setting.
145144

145+
* Available GPIOs: `2, 4, 5, 6, 7, 8`
146+
* The selected GPIO can be used normally after boot, but it must **not** be pulled low unless `rpiboot` mode is intended. Confirm that this does not conflict with any HATs you may attach.
147+
* **This option permanently modifies the OTP and cannot be changed afterwards.**
148+
149+
Example: build an SD card image that configures GPIO 8 as `nRPIBOOT`:
150+
151+
```bash
152+
sudo apt install kpartx
153+
sudo ./rpi-eeprom/imager/make-pi4-rpiboot-gpio-sd 8
154+
```
146155

147156
### Pi 500
148-
Pi 500 requires the QMK keyboard firmware to be updated via `raspi-config` to the latest release to enable `rpiboot` via the power button
157+
Pi 500 requires the QMK keyboard firmware to be updated via `raspi-config` to the latest release to enable `rpiboot` through the power button.
149158

150159
## Running
151160

@@ -166,7 +175,15 @@ Otherwise, the SPI EEPROM bootloader image will be loaded instead.
166175
* Hold the power button down
167176
* Connect the USB-C cable (from the `RPIBOOT` host to the Pi 5)
168177

178+
Launch the Linux based mass-storage-gadget
179+
```bash
180+
sudo rpiboot -d mass-storage-gadget
181+
```
169182

183+
Launch the legacy MSD firmware
184+
```bash
185+
sudo rpiboot -d msd
186+
```
170187

171188
<a name="extensions"></a>
172189
## Provisioning extensions

0 commit comments

Comments
 (0)