Skip to content

Broken since recent commit #357

@decryphe

Description

@decryphe

Describe the bug

We use this tool to flash our embedded CM3+ modules located on a custom carrier board as part of our CI-pipeline hardware-in-the-loop testbench.

While updating all software of our test benches to some current versions, we also updated rpiboot. Checking the commit history and a few commits, I've narrowed breakage down to commit 6866561 "bootcode: Use USB2 HS mode for loading start.elf / ramdisk".

As the bringup process is a little involved (switching power paths from the host system to get the carrier into "flashing mode"), I can with low effort provide a journal log, which does contain the output of rpiboot:

Dec 23 15:47:37 fortunit test-bench-rpcd[1131]: RPIBOOT: build-date 2025/12/23 pkg-version local 68665619
Dec 23 15:47:37 fortunit test-bench-rpcd[1131]: Please fit the EMMC_DISABLE / nRPIBOOT jumper before connecting the power and USB cables to the target device.
Dec 23 15:47:37 fortunit test-bench-rpcd[1131]: If the device fails to connect then please see https://rpltd.co/rpiboot for debugging tips.
Dec 23 15:47:37 fortunit test-bench-rpcd[1131]: Waiting for BCM2835/6/7/2711/2712...
Dec 23 15:47:43 fortunit kernel: usb 1-1.2: new high-speed USB device number 16 using dwc_otg
Dec 23 15:47:43 fortunit kernel: usb 1-1.2: config index 0 descriptor too short (expected 55, got 32)
Dec 23 15:47:43 fortunit kernel: usb 1-1.2: New USB device found, idVendor=0a5c, idProduct=2764, bcdDevice= 0.00
Dec 23 15:47:43 fortunit kernel: usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Dec 23 15:47:43 fortunit kernel: usb 1-1.2: Product: BCM2710 Boot
Dec 23 15:47:43 fortunit kernel: usb 1-1.2: Manufacturer: Broadcom
Dec 23 15:47:43 fortunit mtp-probe[1134]: checking bus 1, device 16: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2"
Dec 23 15:47:44 fortunit mtp-probe[1134]: bus: 1, device: 16 was not an MTP device
Dec 23 15:47:44 fortunit test-bench-rpcd[1131]: Loading embedded: bootcode.bin
Dec 23 15:47:44 fortunit mtp-probe[1135]: checking bus 1, device 16: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2"
Dec 23 15:47:44 fortunit mtp-probe[1135]: bus: 1, device: 16 was not an MTP device
Dec 23 15:47:45 fortunit test-bench-rpcd[1131]: Sending bootcode.bin
Dec 23 15:47:46 fortunit test-bench-rpcd[1131]: Successful read 4 bytes
Dec 23 15:47:46 fortunit kernel: usb 1-1.2: USB disconnect, device number 16
Dec 23 15:47:47 fortunit test-bench-rpcd[1131]: Waiting for BCM2835/6/7/2711/2712...
Dec 23 15:47:47 fortunit kernel: usb 1-1.2: new high-speed USB device number 17 using dwc_otg
Dec 23 15:47:47 fortunit kernel: usb 1-1.2: config 1 interface 0 altsetting 0 bulk endpoint 0x1 has invalid maxpacket 64
Dec 23 15:47:47 fortunit kernel: usb 1-1.2: config 1 interface 0 altsetting 0 bulk endpoint 0x2 has invalid maxpacket 64
Dec 23 15:47:47 fortunit kernel: usb 1-1.2: New USB device found, idVendor=0a5c, idProduct=2764, bcdDevice= 0.00
Dec 23 15:47:47 fortunit kernel: usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=1
Dec 23 15:47:47 fortunit kernel: usb 1-1.2: Product: BCM2710 Boot
Dec 23 15:47:47 fortunit kernel: usb 1-1.2: Manufacturer: Broadcom
Dec 23 15:47:47 fortunit kernel: usb 1-1.2: SerialNumber: Broadcom
Dec 23 15:47:47 fortunit mtp-probe[1136]: checking bus 1, device 17: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2"
Dec 23 15:47:47 fortunit mtp-probe[1136]: bus: 1, device: 17 was not an MTP device
Dec 23 15:47:47 fortunit test-bench-rpcd[1131]: Loading embedded: bootcode.bin
Dec 23 15:47:47 fortunit mtp-probe[1137]: checking bus 1, device 17: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2"
Dec 23 15:47:47 fortunit mtp-probe[1137]: bus: 1, device: 17 was not an MTP device
Dec 23 15:47:48 fortunit test-bench-rpcd[1131]: Second stage boot server
Dec 23 15:47:48 fortunit test-bench-rpcd[1131]: Cannot open file autoboot.txt
Dec 23 15:47:48 fortunit test-bench-rpcd[1131]: Cannot open file config.txt
Dec 23 15:47:48 fortunit test-bench-rpcd[1131]: Cannot open file recovery.elf
Dec 23 15:47:48 fortunit test-bench-rpcd[1131]: Loading embedded: start.elf
Dec 23 15:47:48 fortunit test-bench-rpcd[1131]: File read: start.elf
Dec 23 15:47:53 fortunit test-bench-rpcd[1131]: Failed to write complete file to USB device

Notes for reading:

  • fortunit is the hostname of the test-bench
  • test-bench-rpcd is the daemon that calls rpiboot upon receiving XML-RPC requests

To compare, this is what a good sequence looks like:

Dec 23 15:48:43 fortunit test-bench-rpcd[1185]: RPIBOOT: build-date 2025/12/23 pkg-version local d8a1f4c4
Dec 23 15:48:43 fortunit test-bench-rpcd[1185]: Please fit the EMMC_DISABLE / nRPIBOOT jumper before connecting the power and USB cables to the target device.
Dec 23 15:48:43 fortunit test-bench-rpcd[1185]: If the device fails to connect then please see https://rpltd.co/rpiboot for debugging tips.
Dec 23 15:48:43 fortunit test-bench-rpcd[1185]: Waiting for BCM2835/6/7/2711/2712...
Dec 23 15:48:49 fortunit kernel: usb 1-1.2: new high-speed USB device number 18 using dwc_otg
Dec 23 15:48:50 fortunit kernel: usb 1-1.2: config index 0 descriptor too short (expected 55, got 32)
Dec 23 15:48:50 fortunit kernel: usb 1-1.2: New USB device found, idVendor=0a5c, idProduct=2764, bcdDevice= 0.00
Dec 23 15:48:50 fortunit kernel: usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Dec 23 15:48:50 fortunit kernel: usb 1-1.2: Product: BCM2710 Boot
Dec 23 15:48:50 fortunit kernel: usb 1-1.2: Manufacturer: Broadcom
Dec 23 15:48:50 fortunit mtp-probe[1189]: checking bus 1, device 18: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2"
Dec 23 15:48:50 fortunit mtp-probe[1189]: bus: 1, device: 18 was not an MTP device
Dec 23 15:48:50 fortunit test-bench-rpcd[1185]: Loading embedded: bootcode.bin
Dec 23 15:48:50 fortunit mtp-probe[1190]: checking bus 1, device 18: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2"
Dec 23 15:48:50 fortunit mtp-probe[1190]: bus: 1, device: 18 was not an MTP device
Dec 23 15:48:51 fortunit test-bench-rpcd[1185]: Sending bootcode.bin
Dec 23 15:48:52 fortunit test-bench-rpcd[1185]: Successful read 4 bytes
Dec 23 15:48:53 fortunit test-bench-rpcd[1185]: Waiting for BCM2835/6/7/2711/2712...
Dec 23 15:48:53 fortunit test-bench-rpcd[1185]: Loading embedded: bootcode.bin
Dec 23 15:48:53 fortunit kernel: usb 1-1.2: USB disconnect, device number 18
Dec 23 15:48:53 fortunit kernel: usb 1-1.2: new full-speed USB device number 19 using dwc_otg
Dec 23 15:48:53 fortunit kernel: usb 1-1.2: not running at top speed; connect to a high speed hub
Dec 23 15:48:53 fortunit kernel: usb 1-1.2: New USB device found, idVendor=0a5c, idProduct=2764, bcdDevice= 0.00
Dec 23 15:48:53 fortunit kernel: usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=1
Dec 23 15:48:53 fortunit kernel: usb 1-1.2: Product: BCM2710 Boot
Dec 23 15:48:53 fortunit kernel: usb 1-1.2: Manufacturer: Broadcom
Dec 23 15:48:53 fortunit kernel: usb 1-1.2: SerialNumber: Broadcom
Dec 23 15:48:53 fortunit mtp-probe[1192]: checking bus 1, device 19: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2"
Dec 23 15:48:53 fortunit mtp-probe[1192]: bus: 1, device: 19 was not an MTP device
Dec 23 15:48:53 fortunit mtp-probe[1193]: checking bus 1, device 19: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2"
Dec 23 15:48:53 fortunit mtp-probe[1193]: bus: 1, device: 19 was not an MTP device
Dec 23 15:48:54 fortunit test-bench-rpcd[1185]: Loading embedded: bootcode.bin
Dec 23 15:48:55 fortunit test-bench-rpcd[1185]: Second stage boot server
Dec 23 15:48:55 fortunit test-bench-rpcd[1185]: Cannot open file autoboot.txt
Dec 23 15:48:55 fortunit test-bench-rpcd[1185]: Cannot open file config.txt
Dec 23 15:48:55 fortunit test-bench-rpcd[1185]: Cannot open file recovery.elf
Dec 23 15:48:55 fortunit test-bench-rpcd[1185]: Loading embedded: start.elf
Dec 23 15:48:55 fortunit test-bench-rpcd[1185]: File read: start.elf
Dec 23 15:48:56 fortunit test-bench-rpcd[1185]: Cannot open file fixup.dat
Dec 23 15:48:56 fortunit kernel: usb 1-1.2: USB disconnect, device number 19
Dec 23 15:48:57 fortunit test-bench-rpcd[1185]: Second stage boot server done
Dec 23 15:48:57 fortunit kernel: usb 1-1.2: new high-speed USB device number 20 using dwc_otg
Dec 23 15:48:57 fortunit kernel: usb 1-1.2: New USB device found, idVendor=0a5c, idProduct=0001, bcdDevice= 0.01
Dec 23 15:48:57 fortunit kernel: usb 1-1.2: New USB device strings: Mfr=2, Product=1, SerialNumber=3
Dec 23 15:48:57 fortunit kernel: usb 1-1.2: Product: Compute Module
Dec 23 15:48:57 fortunit kernel: usb 1-1.2: Manufacturer: Raspberry Pi
Dec 23 15:48:57 fortunit kernel: usb 1-1.2: SerialNumber: 4d80defc
Dec 23 15:48:57 fortunit kernel: usb-storage 1-1.2:1.0: USB Mass Storage device detected
Dec 23 15:48:57 fortunit kernel: scsi host0: usb-storage 1-1.2:1.0
Dec 23 15:48:57 fortunit mtp-probe[1198]: checking bus 1, device 20: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2"
Dec 23 15:48:57 fortunit mtp-probe[1198]: bus: 1, device: 20 was not an MTP device
Dec 23 15:48:57 fortunit mtp-probe[1199]: checking bus 1, device 20: "/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2"
Dec 23 15:48:57 fortunit mtp-probe[1199]: bus: 1, device: 20 was not an MTP device
Dec 23 15:48:58 fortunit test-bench-rpcd[1177]: result: Ok(ExitStatus(unix_wait_status(0)))
Dec 23 15:48:58 fortunit test-bench-rpcd[1177]: [src/main.rs:229:21] e = Os {
Dec 23 15:48:58 fortunit test-bench-rpcd[1177]:     code: 2,
Dec 23 15:48:58 fortunit test-bench-rpcd[1177]:     kind: NotFound,
Dec 23 15:48:58 fortunit test-bench-rpcd[1177]:     message: "No such file or directory",
Dec 23 15:48:58 fortunit test-bench-rpcd[1177]: }
Dec 23 15:48:58 fortunit test-bench-rpcd[1177]: trying once more ...
Dec 23 15:48:58 fortunit kernel: scsi 0:0:0:0: Direct-Access     RPi-MSD- 0001                  PQ: 0 ANSI: 2
Dec 23 15:48:58 fortunit kernel: sd 0:0:0:0: Attached scsi generic sg0 type 0
Dec 23 15:48:58 fortunit kernel: sd 0:0:0:0: [sda] 15269888 512-byte logical blocks: (7.82 GB/7.28 GiB)
Dec 23 15:48:58 fortunit kernel: sd 0:0:0:0: [sda] Write Protect is off
Dec 23 15:48:58 fortunit kernel: sd 0:0:0:0: [sda] Mode Sense: 0f 00 00 00
Dec 23 15:48:58 fortunit kernel: sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Dec 23 15:48:58 fortunit kernel:  sda: sda1 sda2
Dec 23 15:48:58 fortunit kernel: sd 0:0:0:0: [sda] Attached SCSI removable disk
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]: new socket
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]: listening
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]: accepting
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]: accepted
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]: [src/main.rs:263:13] &stream = PollEvented {
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]:     io: Some(
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]:         TcpStream {
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]:             addr: redacted
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]:         },
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]:     ),
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]: }
Dec 23 15:48:59 fortunit test-bench-rpcd[1177]: [src/main.rs:263:13] addr = redacted
Dec 23 15:49:00 fortunit test-bench-rpcd[1177]: receiving; 11.849 MB, 11.849 MB total (11.849 MB/s since 1 s)
Dec 23 15:49:01 fortunit test-bench-rpcd[1177]: receiving; 11.693 MB, 23.542 MB total (11.771 MB/s since 2 s)
Dec 23 15:49:02 fortunit test-bench-rpcd[1177]: receiving; 11.755 MB, 35.297 MB total (11.766 MB/s since 3 s)
Dec 23 15:49:03 fortunit test-bench-rpcd[1177]: receiving; 11.781 MB, 47.078 MB total (11.769 MB/s since 4 s)
...and on and on...

What other information can I provide to help debug this issue?

Steps to reproduce the behaviour

Requires our internal hardware.

Device(s)

Raspberry Pi CM3+

Compute Module IO board.

No response

RPIBOOT logs

No response

Kernel logs

No response

Device UART logs

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions