Skip to content

Commit a38ff43

Browse files
committed
Move trouble-shooting to a separate page
1 parent 4926dba commit a38ff43

File tree

2 files changed

+42
-40
lines changed

2 files changed

+42
-40
lines changed

Readme.md

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -153,46 +153,7 @@ On Raspberry Pi 4 / CM4 the recommended approach is to use a `boot.img` which is
153153
the minimal set of files required from the boot partition.
154154

155155
## Troubleshooting
156-
157-
This section describes how to diagnose common `rpiboot` failures for Compute Modules. Whilst `rpiboot` is tested on every Compute Module during manufacture the system relies on multiple hardware and software elements. The aim of this guide is to make it easier to identify which component is failing.
158-
159-
### Product Information Portal
160-
The [Product Information Portal](https://pip.raspberrypi.com/) contains the official documentation for hardware revision changes for Raspberry Pi computers.
161-
Please check this first to check that the software is up to date.
162-
163-
### Hardware
164-
* Inspect the Compute Module pins and connector for signs of damage and verify that the socket is free from debris.
165-
* Check that the Compute Module is fully inserted.
166-
* Check that `nRPIBOOT` / EMMC disable is pulled low BEFORE powering on the device.
167-
* On BCM2711, if the USB cable is disconnected and the nRPIBOOT jumper is fitted then the green LED should be OFF. If the LED is on then the ROM is detecting that the GPIO for nRPIBOOT is high.
168-
* Remove any hubs between the Compute Module and the host.
169-
* Disconnect all other peripherals from the IO board.
170-
* Verify that the red power LED switches on when the IO board is powered.
171-
* Use another computer to verify that the USB cable for `rpiboot` can reliably transfer data. For example, connect it to a Raspberry Pi keyboard with other devices connected to the keyboard USB hub.
172-
173-
#### Hardware - CM4 / CM5
174-
* The CM5 EEPROM supports MMC, USB-MSD, USB 2.0 (CM4 only), Network and NVMe boot by default. Try booting to Linux from an alternate boot mode (e.g. network) to verify the `nRPIBOOT` GPIO can be pulled low and that the USB 2.0 interface is working.
175-
* If `rpiboot` is running but the mass storage device does not appear then try running the `rpiboot -d mass-storage-gadget64` because this uses Linux instead of a custom VPU firmware to implement the mass-storage gadget. This also provides a login console on UART and HDMI.
176-
177-
#### Hardware - Raspberry Pi 5 / Compute Module 5
178-
* Press, and hold the power button before supplying power to the device.
179-
* Release the power button immediately after supplying power to the device.
180-
* Remove any non-essential USB peripherals or HATs.
181-
* Use a USB-3 port capable of supplying at least 900mA and use a high quality USB-C cable OR supply additional power via the 40-pin header.
182-
183-
### Software
184-
The recommended host setup is Raspberry Pi with Raspberry Pi OS. Alternatively, most Linux X86 builds are also suitable. Windows adds some extra complexity for the USB drivers so we recommend debugging on Linux first.
185-
186-
* Update to the latest software release using `apt update rpiboot` or download and rebuild this repository from Github.
187-
* Run `rpiboot -v | tee log` to capture verbose log output. N.B. This can be very verbose on some systems.
188-
189-
#### Boot flow
190-
The `rpiboot` system runs in multiple stages. The ROM, bootcode.bin, the VPU firmware (start.elf) and for the `mass-storage-gadget64` or `rpi-imager` a Linux initramfs. Each stage disconnects the USB device and presents a different USB descriptor. Each stage will appears as a new USB device connect in the `dmesg` log.
191-
192-
See also: [EEPROM boot flow](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#eeprom-boot-flow)
193-
194-
#### bootcode.bin
195-
Be careful not to overwrite `bootcode.bin` or `bootcode4.bin` with the executable from a different subdirectory. The `rpiboot` process simply looks for a file called `bootcode.bin` (or `bootcode4.bin` on BCM2711). However, the file in `recovery`/`secure-boot-recovery` directories is actually the `recovery.bin` EEPROM flashing tool.
156+
See [troubleshooting guide](docs/troubleshooting.md)
196157

197158
### Diagnostics
198159
* Monitor the Linux `dmesg` output and verify that a BCM boot device is detected immediately after powering on the device. If not, please check the `hardware` section.

docs/troubleshooting.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Troubleshooting
2+
3+
This section describes how to diagnose common `rpiboot` failures for Compute Modules. Whilst `rpiboot` is tested on every Compute Module during manufacture the system relies on multiple hardware and software elements. The aim of this guide is to make it easier to identify which component is failing.
4+
5+
## Product Information Portal
6+
The [Product Information Portal](https://pip.raspberrypi.com/) contains the official documentation for hardware revision changes for Raspberry Pi computers.
7+
Please check this first to check that the software is up to date.
8+
9+
## Hardware
10+
* Inspect the Compute Module pins and connector for signs of damage and verify that the socket is free from debris.
11+
* Check that the Compute Module is fully inserted.
12+
* Check that `nRPIBOOT` / EMMC disable is pulled low BEFORE powering on the device.
13+
* On BCM2711, if the USB cable is disconnected and the nRPIBOOT jumper is fitted then the green LED should be OFF. If the LED is on then the ROM is detecting that the GPIO for nRPIBOOT is high.
14+
* Remove any hubs between the Compute Module and the host.
15+
* Disconnect all other peripherals from the IO board.
16+
* Verify that the red power LED switches on when the IO board is powered.
17+
* Use another computer to verify that the USB cable for `rpiboot` can reliably transfer data. For example, connect it to a Raspberry Pi keyboard with other devices connected to the keyboard USB hub.
18+
19+
### Hardware - CM4 / CM5
20+
* The CM5 EEPROM supports MMC, USB-MSD, USB 2.0 (CM4 only), Network and NVMe boot by default. Try booting to Linux from an alternate boot mode (e.g. network) to verify the `nRPIBOOT` GPIO can be pulled low and that the USB 2.0 interface is working.
21+
* If `rpiboot` is running but the mass storage device does not appear then try running the `rpiboot -d mass-storage-gadget64` because this uses Linux instead of a custom VPU firmware to implement the mass-storage gadget. This also provides a login console on UART and HDMI.
22+
23+
### Hardware - Raspberry Pi 5 / Compute Module 5
24+
* Press, and hold the power button before supplying power to the device.
25+
* Release the power button immediately after supplying power to the device.
26+
* Remove any non-essential USB peripherals or HATs.
27+
* Use a USB-3 port capable of supplying at least 900mA and use a high quality USB-C cable OR supply additional power via the 40-pin header.
28+
29+
## Software
30+
The recommended host setup is Raspberry Pi with Raspberry Pi OS. Alternatively, most Linux X86 builds are also suitable. Windows adds some extra complexity for the USB drivers so we recommend debugging on Linux first.
31+
32+
* Update to the latest software release using `apt update rpiboot` or download and rebuild this repository from Github.
33+
* Run `rpiboot -v | tee log` to capture verbose log output. N.B. This can be very verbose on some systems.
34+
35+
### Boot flow
36+
The `rpiboot` system runs in multiple stages. The ROM, bootcode.bin, the VPU firmware (start.elf) and for the `mass-storage-gadget64` or `rpi-imager` a Linux initramfs. Each stage disconnects the USB device and presents a different USB descriptor. Each stage will appears as a new USB device connect in the `dmesg` log.
37+
38+
See also: [EEPROM boot flow](https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#eeprom-boot-flow)
39+
40+
### bootcode.bin
41+
Be careful not to overwrite `bootcode.bin` or `bootcode4.bin` with the executable from a different subdirectory. The `rpiboot` process simply looks for a file called `bootcode.bin` (or `bootcode4.bin` on BCM2711). However, the file in `recovery`/`secure-boot-recovery` directories is actually the `recovery.bin` EEPROM flashing tool.

0 commit comments

Comments
 (0)