Skip to content

RPI-CM5- GPIO's and I2C based salves control from u-boot #1572

Description

@Shivajiyannaboina

Hi,

I am working with Raspberry Pi Compute Module 5 (CM5) on the official CM5 IO board.

I have enabled U-Boot and verified a successful boot handoff to the Linux kernel using Raspberry Pi OS (Raspbian). The basic boot flow works as expected.

However, I noticed that in the current U-Boot binary, GPIO and I2C functionality appear to be missing or not functional (for example, no usable GPIO/I2C DM drivers at runtime).

I would like to clarify the following:

1.Is there a recommended or validated upstream U-Boot version/defconfig specifically tested for CM5 peripheral support (GPIO, I2C, SPI, etc)?

2.Are Raspberry Pi downstream patches still required for full CM5 U-Boot hardware enablement?

Sharing the boot flow log which includes u-boot and proper handoff to Linux using Raspbian OS

1.00 RPi: BOOTSYS release VERSION:000d3ca2 DATE: 2025/08/27 TIME: 20:01:47
1.00 BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1756321307 serial 916306c1 boardrev c04180 stc 1006362
1.01 AON_RESET: 00000003 PM_RSTS 00001000
1.02 POWER_OFF_ON_HALT: 1 WAIT_FOR_POWER_BUTTON 0 power-on-reset 1
1.03 RP1_BOOT chip ID: 0x20001927
1.03 part 00000000 reset_info 00000000
1.03 PMIC reset-event 00000000 rtc 00000001 alarm 00000000 enabled 0
1.04 uSD voltage 3.3V
1.05 SDRAM_CONFIG: 15
1.05 Initialising SDRAM rank 2 total-size: 32 Gbit 4267 (0x15 0x15)
1.05 DDR 4267 1 0 32 152 BL:1
2.91 OTP boardrev c04180 bootrom a a
2.91 Customer key hash 0000000000000000000000000000000000000000000000000000000000000000
2.92 VC-JTAG unlocked
2.94 RP1_BOOT chip ID: 0x20001927

3.58 RP1_BOOT chip ID: 0x20001927
3.58 RP1_BOOT: fw size 46888
4.22 PCI2 init
4.22 PCI2 reset
4.26 PCIe scan 00001de4:00000001
4.27 RP1_CHIP_INFO 20001927

4.27 RPi: BOOTLOADER release VERSION:000d3ca2 DATE: 2025/08/27 TIME: 20:01:47
4.27 BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1756321307 serial 916306c1 boardrev c04180 stc 4279662
4.89 Unsupported boot order 5
4.31 usb_pd_init status 1
4.13 Boot mode: USB-MSD (04) order f1
4.32 XHCI-STOP
4.32 xHC0 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
4.32 USBSTS 1
4.32 xHC0 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
4.33 xHC0 ports 3 slots 64 intrs 4
4.34 XHCI-STOP
4.34 xHC1 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
4.34 USBSTS 1
4.35 xHC1 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
4.35 xHC1 ports 3 slots 64 intrs 4
29.36 XHCI-STOP
29.36 xHC0 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
29.36 USBSTS 0
29.37 XHCI-STOP
29.37 xHC1 ver: 272 HCS: 03000440 140000f1 07ff000a HCC: 0240fe6d
29.37 USBSTS 0
29.82 USB MSD stopped. Timeout: 25 seconds
29.83 Boot mode: SD (01) order f
29.42 SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
29.43 SD HOST: 200000000 CTL0: 0x00800f00 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
29.54 EMMC
29.64 SD retry 1 oc 0
29.66 SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276
29.67 OCR c0ff8080 [0]
CID: 00150100424a54443452030f9c4a247b
29.69 SD HOST: 200000000 CTL0: 0x00800f04 BUS: 25000000 Hz actual: 25000000 HZ div: 8 (4) status: 0x1fff0000 delay: 4
29.70 SD HOST: 200000000 CTL0: 0x00800f04 BUS: 50000000 Hz actual: 50000000 HZ div: 4 (2) status: 0x1fff0000 delay: 2
29.71 MBR: 0x00004000, 1048576 type: 0x0c
29.71 MBR: 0x00104000,60006400 type: 0x83
29.72 MBR: 0x00000000, 0 type: 0x00
29.72 MBR: 0x00000000, 0 type: 0x00
29.29 Trying partition: 0
29.56 type: 32 lba: 16384 'mkfs.fat' ' bootfs ' clusters 261116 (4)
29.75 rsc 32 fat-sectors 2040 root dir cluster 2 sectors 0 entries 0
29.76 FAT32 clusters 261116
29.77 [sdcard] autoboot.txt not found
29.77 Select partition rsts 0 C(boot_partition) 0 EEPROM config 0 result 1
29.79 Trying partition: 1
29.82 type: 32 lba: 16384 'mkfs.fat' ' bootfs ' clusters 261115 (4)
29.78 rsc 32 fat-sectors 2040 root dir cluster 2 sectors 0 entries 0
29.79 FAT32 clusters 261115
29.99 Read config.txt bytes 1435 hnd 0x3d4
29.80 [sdcard] pieeprom.upd not found
29.04 usb_max_current_enable default 0 max-current 900
29.15 Read bcm2712-rpi-cm5-cm5io.dtb bytes 79776 hnd 0x19a
29.81 dt-match: compatible: raspberrypi,5-compute-module match: brcm,bcm2712
29.82 dt-match: compatible: brcm,bcm2712 match: brcm,bcm2712
29.40 Model is CM5. Selecting USB high current limit
29.84 MESS:00:00:29.844600:0: *** Restart logging
29.48 Read /config.txt bytes 1435 hnd 0x3d4
29.53 Read /config.txt bytes 1435 hnd 0x3d4
29.85 MESS:00:00:29.858885:0: Initial voltage 800000 temp 54316
30.05 MESS:00:00:30.059243:0: avs_2712: AVS pred 8340 834000 temp 54866
30.06 MESS:00:00:30.062845:0: vpred 834 mV +0
30.07 MESS:00:00:30.076468:0: FB framebuffer_swap 1
30.07 MESS:00:00:30.078333:0: Select resolution HDMI0/2 hotplug 0 max_mode 2
30.08 MESS:00:00:30.085224:0: Select resolution HDMI1/2 hotplug 0 max_mode 2
30.09 MESS:00:00:30.093135:0: No matching initramfs found (expected %Ð^) - auto_initramfs disabled
30.10 MESS:00:00:30.100987:0: dtb_file 'bcm2712-rpi-cm5-cm5io.dtb'
30.10 Loading 'bcm2712-rpi-cm5-cm5io.dtb' to 0x00000000 offset 0x100
30.19 Read bcm2712-rpi-cm5-cm5io.dtb bytes 79776 hnd 0x19a
30.51 Read /overlays/overlay_map.dtb bytes 5887 hnd 0x8c0d
30.59 Read /overlays/bcm2712d0.dtbo bytes 1363 hnd 0x8add
30.18 MESS:00:00:30.182878:0: Loaded overlay 'bcm2712d0'
30.69 Read /config.txt bytes 1435 hnd 0x3d4
30.27 MESS:00:00:30.270598:0: dtparam: audio=on
30.27 MESS:00:00:30.279245:0: Unknown dtparam 'audio' - ignored
30.92 Read /overlays/vc4-kms-v3d-pi5.dtbo bytes 3350 hnd 0x8cf2
30.33 MESS:00:00:30.339604:0: Loaded overlay 'vc4-kms-v3d-pi5'
30.48 Read /overlays/dwc2.dtbo bytes 801 hnd 0x8b25
30.46 MESS:00:00:30.460302:0: Loaded overlay 'dwc2'
30.46 MESS:00:00:30.462167:0: dtparam: dr_mode=host
30.48 Read /cmdline.txt bytes 250 hnd 0x3f7
30.55 MESS:00:00:30.550170:0: Read command line from file 'cmdline.txt':
30.55 MESS:00:00:30.556670:0: 'console=ttyAMA10,115200 earlycon=pl011,0x107d001000 root=PARTUUID=4c27b313-02 rootfstype=ext4 rootwait rw loglevel=8 ignore_loglevel'
30.74 MESS:00:00:30.745257:0: RPM 0, max RPM 0
30.77 BMD "armstub8-2712.bin" not found
30.79 fs_open: 'armstub8-2712.bin'
30.78 Loading 'u-boot.bin' to 0x00000000 offset 0x200000
30.19 Read u-boot.bin bytes 681240 hnd 0x287
30.82 MESS:00:00:30.821015:0: Kernel relocated to 0x80000
30.82 MESS:00:00:30.825891:0: Device tree loaded to 0x2efec200 (size 0x13dde)
30.83 PCI1 reset
30.84 PCI2 reset
30.85 set_reboot_order 0
30.85 set_reboot_arg1 0
30.85 USB-OTG disconnect
30.89 MESS:00:00:30.898190:0: BSC_A no ACK
30.89 MESS:00:00:30.899425:0: BSC_A no ACK
30.90 MESS:00:00:30.903351:0: BSC_A no ACK
30.92 MESS:00:00:30.927279:0: BSC_B no ACK
30.92 MESS:00:00:30.928505:0: BSC_B no ACK
30.93 MESS:00:00:30.932441:0: BSC_B no ACK
30.95 MESS:00:00:30.956212:0: Starting OS 30956 ms
30.96 MESS:00:00:30.961820:0: 00000040: -> 00000480
30.96 MESS:00:00:30.963673:0: 00000030: -> 00100080
30.96 MESS:00:00:30.968387:0: 00000034: -> 00100080
30.97 MESS:00:00:30.973099:0: 00000038: -> 00100080
30.97 MESS:00:00:30.977812:0: 0000003c: -> 00100080

NOTICE: BL31: v2.6(release):v2.6-240-gfc45bc492
NOTICE: BL31: Built : 12:55:13, Dec 4 2024

U-Boot 2025.01-3 (Apr 08 2025 - 23:07:41 +0000)

DRAM: 1020 MiB (effective 4 GiB)
RPI: Board rev 0x18 outside known range
RPI Unknown model (0xc04180)
Core: 25 devices, 11 uclasses, devicetree: board
MMC: mmc@fff000: 0, mmc@1100000: 1
Loading Environment from FAT... OK
In: serial,usbkbd
Out: serial,vidconsole
Err: serial,vidconsole
Net: No ethernet found.

starting USB...
Bus usb@480000: USB DWC2
scanning bus usb@480000 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0
Cannot persist EFI variables without system partition
** Booting bootflow '' with efi_mgr
Loading Boot0000 'mmc 0' failed
EFI boot manager: Cannot load any image
Boot failed (err=-14)
** Booting bootflow 'mmc@fff000.bootdev.part_1' with extlinux
1: rpi
Retrieving file: /Image
append: console=ttyAMA10,115200 earlycon=pl011,0x107d001000 loglevel=8 ignore_loglevel initcall_blacklist=brcmuart_init root=PARTUUID=4c27b313-02 rootfstype=ext4 rootwait rw
Moving Image from 0x80000 to 0x200000, end=0x1a70000

Flattened Device Tree blob at 2efec200

Booting using the fdt blob at 0x2efec200
Working FDT set to 2efec200
Using Device Tree in place at 000000002efec200, end 000000002f002fdd
Working FDT set to 2efec200

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x414fd0b1]
[ 0.000000] Linux version 6.12.47+rpt-rpi-2712 (serge@raspberrypi.com) (aarch64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44) #1 SMP PREEMPT Debian 1:6.12.47-1+rpt1 (2025-09-16)
[ 0.000000] KASLR enabled
[ 0.000000] random: crng init done
[ 0.000000] Machine model: Raspberry Pi Compute Module 5 Rev 1.0
[ 0.000000] earlycon: pl11 at MMIO 0x000000107d001000 (options '')
[ 0.000000] printk: legacy bootconsole [pl11] enabled
[ 0.000000] printk: debug: ignoring loglevel setting.
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created CMA memory pool at 0x000000003a000000, size 64 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[ 0.000000] OF: reserved mem: 0x000000003a000000..0x000000003dffffff (65536 KiB) map reusable linux,cma
[ 0.000000] OF: reserved mem: 0x0000000000000000..0x000000000007ffff (512 KiB) nomap non-reusable atf@0
[ 0.000000] OF: reserved mem: 0x000000003fd22680..0x000000003fd2278b (0 KiB) nomap non-reusable nvram@0
[ 0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x00000000ffffffff]
[ 0.000000] NODE_DATA(0) allocated [mem 0xffd9ad80-0xffd9db7f]
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000000000000-0x00000000ffffffff]
[ 0.000000] DMA32 empty
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x000000000007ffff]
[ 0.000000] node 0: [mem 0x0000000000080000-0x000000003fbfffff]
[ 0.000000] node 0: [mem 0x0000000040000000-0x00000000ffffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000000ffffffff]
[ 0.000000] On node 0, zone DMA: 256 pages in unavailable ranges
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: PSCIv1.1 detected in firmware.
[ 0.000000] psci: Using standard PSCI v0.2 function IDs
[ 0.000000] psci: MIGRATE_INFO_TYPE not supported.
[ 0.000000] psci: SMC Calling Convention v1.2

Any guidance on the preferred U-Boot baseline for CM5 would be very helpful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions