Skip to content

autoboot problem after updating to new firmware #1974

@Muzad

Description

@Muzad

I've created a yocto image with this partitions (with alt-root and all-boot partitions):

part /     --source rootfs --exclude-path boot/ --ondisk mmcblk0 --fstype=ext4 --label rootfs1 --align 4096 --fixed-size 400M
part /     --source rootfs --exclude-path boot/ --ondisk mmcblk0 --fstype=ext4 --label rootfs2 --align 4096 --fixed-size 400M
part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot1 --active --align 4096 --fixed-size 100M
part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot2 --active --align 4096 --fixed-size 100M

bootloader --ptable gpt

Recently i updated the firmware (start4.elf / fixup4.dat) to version 1.20250430. when 'boot_partition=0', rpi boots from first partition and every thing works as expected:

root@raspberrypi4:/boot# cat autoboot.txt 
boot_partition=0

boot log:

Read start4.elf bytes  2263968 hnd 0x00000000
Read fixup4.dat bytes     5456 hnd 0x00000000
Firmware: 5560078dcc8591a00f57b9068d13e5544aeef3aa Apr 30 2025 13:33:39
0x00b03140 0x00000000 0x00001fff
MEM GPU: 76 ARM: 948 TOTAL: 1024
Starting start4.elf @ 0xfec00200 partition 0
+

MESS:00:00:02.681911:0: arasan: arasan_emmc_open
MESS:00:00:02.683573:0: arasan: arasan_emmc_set_clock C0: 0x00800000 C1: 0x000e0047 emmc: 200000000 actual: 390625 div: 0x00000100 target: 400000 min: 400000 max: 400000 delay: 5
MESS:00:00:02.803812:0: arasan: arasan_emmc_set_clock C0: 0x00800000 C1: 0x000e0047 emmc: 200000000 actual: 390625 div: 0x00000100 target: 400000 min: 400000 max: 400000 delay: 5
MESS:00:00:02.816683:0: arasan: arasan_emmc_set_clock C0: 0x00800f00 C1: 0x000e0047 emmc: 200000000 actual: 390625 div: 0x00000100 target: 400000 min: 390000 max: 400000 delay: 5
MESS:00:00:02.867495:0: boot-part: 0 fs-type: 5
MESS:00:00:02.989326:0: boot-part: 0 fs-type: 2
MESS:00:00:02.990866:0: arasan: arasan_emmc_set_clock C0: 0x00800f02 C1: 0x000e0407 emmc: 200000000 actual: 25000000 div: 0x00000004 target: 25000000 min: 0 max: 25000000 delay: 1
MESS:00:00:03.121837:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:03.124570:0: brfs: File read: 84 bytes
MESS:00:00:03.150133:0: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.154642:0: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:03.171753:0: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.176255:0: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:03.181909:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:03.186859:0: gpioman: gpioman_get_pin_num: pin DISPLAY_SDA not defined
MESS:00:00:03.193836:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
MESS:00:00:03.663654:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
MESS:00:00:03.669296:0: *** Restart logging
MESS:00:00:03.671939:0: brfs: File read: 84 bytes
MESS:00:00:03.681556:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.686587:0: hdmi: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:03.697210:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.702235:0: hdmi: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:03.707834:0: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
MESS:00:00:03.721624:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.726647:0: hdmi: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:03.737268:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.742298:0: hdmi: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:03.747895:0: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
MESS:00:00:03.756660:0: HDMI0: hdmi_pixel_encoding: 300000000
MESS:00:00:03.762129:0: HDMI1: hdmi_pixel_encoding: 300000000
MESS:00:00:03.787680:0: brfs: File read: /mfs/sd/bcm2711-rpi-cm4.dtb
MESS:00:00:03.790930:0: Loaded 'bcm2711-rpi-cm4.dtb' to 0x100 size 0xbed9
MESS:00:00:03.809873:0: brfs: File read: 48857 bytes
MESS:00:00:03.883736:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:03.900667:0: brfs: File read: 84 bytes
MESS:00:00:03.902384:0: Failed to open command line file 'cmdline.txt'
MESS:00:00:04.303755:0: brfs: File read: /mfs/sd/kernel7l.img
MESS:00:00:04.306397:0: Loaded 'kernel7l.img' to 0x8000 size 0x86538
MESS:00:00:04.312487:0: Device tree loaded to 0x2eff3a00 (size 0xc549)
MESS:00:00:04.321209:0: uart: Set PL011 baud rate to 103448.300000 Hz
MESS:00:00:04.327792:0: uart: Baud rate change done...
MESS:00:00:04.329814:0:

U-Boot 2021.07 (Jul 05 2021 - 15:11:28 +0000)
...

But when 'boot_partition=1', it still just uses first partition for loading 'config.txt' and not the second partition:

root@raspberrypi4:/boot# cat autoboot.txt 
boot_partition=1

boot logs:

Read start4.elf bytes  2263968 hnd 0x00000000
Read fixup4.dat bytes     5456 hnd 0x00000000
Firmware: 5560078dcc8591a00f57b9068d13e5544aeef3aa Apr 30 2025 13:33:39
0x00b03140 0x00000000 0x00001fff
MEM GPU: 76 ARM: 948 TOTAL: 1024
Starting start4.elf @ 0xfec00200 partition 1
+

MESS:00:00:02.681030:0: arasan: arasan_emmc_open
MESS:00:00:02.682693:0: arasan: arasan_emmc_set_clock C0: 0x00800000 C1: 0x000e0047 emmc: 200000000 actual: 390625 div: 0x00000100 target: 400000 min: 400000 max: 400000 delay: 5
MESS:00:00:02.802935:0: arasan: arasan_emmc_set_clock C0: 0x00800000 C1: 0x000e0047 emmc: 200000000 actual: 390625 div: 0x00000100 target: 400000 min: 400000 max: 400000 delay: 5
MESS:00:00:02.815807:0: arasan: arasan_emmc_set_clock C0: 0x00800f00 C1: 0x000e0047 emmc: 200000000 actual: 390625 div: 0x00000100 target: 400000 min: 390000 max: 400000 delay: 5
MESS:00:00:02.866615:0: boot-part: 1 fs-type: 5
MESS:00:00:02.988459:0: boot-part: 0 fs-type: 2
MESS:00:00:02.990000:0: arasan: arasan_emmc_set_clock C0: 0x00800f02 C1: 0x000e0407 emmc: 200000000 actual: 25000000 div: 0x00000004 target: 25000000 min: 0 max: 25000000 delay: 1
MESS:00:00:03.121255:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:03.123981:0: brfs: File read: 84 bytes
MESS:00:00:03.149546:0: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.154055:0: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:03.171165:0: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.175668:0: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:03.181322:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:03.186271:0: gpioman: gpioman_get_pin_num: pin DISPLAY_SDA not defined
MESS:00:00:03.193249:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
MESS:00:00:03.663077:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
MESS:00:00:03.668719:0: *** Restart logging
MESS:00:00:03.671362:0: brfs: File read: 84 bytes
MESS:00:00:03.680979:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.686010:0: hdmi: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:03.696633:0: hdmi: HDMI0:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.701658:0: hdmi: HDMI0:EDID giving up on reading EDID block 0
MESS:00:00:03.707256:0: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
MESS:00:00:03.721047:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.726069:0: hdmi: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:03.736691:0: hdmi: HDMI1:EDID error reading EDID block 0 attempt 0
MESS:00:00:03.741720:0: hdmi: HDMI1:EDID giving up on reading EDID block 0
MESS:00:00:03.747318:0: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
MESS:00:00:03.756083:0: HDMI0: hdmi_pixel_encoding: 300000000
MESS:00:00:03.761551:0: HDMI1: hdmi_pixel_encoding: 300000000
MESS:00:00:03.787122:0: brfs: File read: /mfs/sd/bcm2711-rpi-cm4.dtb
MESS:00:00:03.790371:0: Loaded 'bcm2711-rpi-cm4.dtb' to 0x100 size 0xbed9
MESS:00:00:03.809314:0: brfs: File read: 48857 bytes
MESS:00:00:03.883179:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:03.900115:0: brfs: File read: 84 bytes
MESS:00:00:03.901833:0: Failed to open command line file 'cmdline.txt'
MESS:00:00:04.302568:0: brfs: File read: /mfs/sd/kernel7l.img
MESS:00:00:04.305211:0: Loaded 'kernel7l.img' to 0x8000 size 0x86538
MESS:00:00:04.311300:0: Device tree loaded to 0x2eff3a00 (size 0xc549)
MESS:00:00:04.320024:0: uart: Set PL011 baud rate to 103448.300000 Hz
MESS:00:00:04.326606:0: uart: Baud rate change done...
MESS:00:00:04.328629:0:

U-Boot 2021.07 (Jul 05 2021 - 15:11:28 +0000)
...

Expected behaviour
Everything works okay in version 2021 and when i set 'boot_partition=1' there, then 'config.txt' will be load from second partition and so 'bcm2711-rpi-cm4-alt.dtb' device tree will be loaded:

Read start4.elf bytes  2228800 hnd 0x00000000
Read fixup4.dat bytes     5448 hnd 0x00000000
Firmware: 564e5f9b852b23a330b1764bcf0b2d022a20afd0 Feb 25 2021 12:10:40
0x00b03140 0x00000000 0x000000ff
MEM GPU: 76 ARM: 948 TOTAL: 1024
Starting start4.elf @ 0xfec00200 partition 1
+

MESS:00:00:02.976908:0: arasan: arasan_emmc_open
MESS:00:00:03.627765:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:03.630491:0: brfs: File read: 88 bytes
MESS:00:00:03.697191:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:03.699868:0: gpioman: gpioman_get_pin_num: pin DISPLAY_SDA not defined
MESS:00:00:03.706858:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
MESS:00:00:03.729627:0: brfs: File read: 88 bytes
MESS:00:00:03.736248:0: gpioman: gpioman_get_pin_num: pin FLASH_0_ENABLE not defined
MESS:00:00:03.740881:0: gpioman: gpioman_get_pin_num: pin FLASH_0_INDICATOR not defined
MESS:00:00:03.748621:0: gpioman: gpioman_get_pin_num: pin FLASH_0_ENABLE not defined
MESS:00:00:03.756071:0: gpioman: gpioman_get_pin_num: pin FLASH_0_INDICATOR not defined
MESS:00:00:04.218930:0: gpioman: gpioman_get_pin_num: pin LEDS_PWR_OK not defined
MESS:00:00:04.224568:0: *** Restart logging
MESS:00:00:04.230762:0: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
MESS:00:00:04.240110:0: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead
MESS:00:00:04.246051:0: HDMI0: hdmi_pixel_encoding: 300000000
MESS:00:00:04.251522:0: HDMI1: hdmi_pixel_encoding: 300000000
MESS:00:00:04.257453:0: gpioman: gpioman_get_pin_num: pin CAMERA_0_I2C_PORT not defined
MESS:00:00:04.273737:0: brfs: File read: /mfs/sd/bcm2711-rpi-cm4-alt.dtb
MESS:00:00:04.277333:0: Loading 'bcm2711-rpi-cm4-alt.dtb' to 0x100 size 0xbed9
MESS:00:00:04.296902:0: brfs: File read: 48857 bytes
MESS:00:00:04.362471:0: brfs: File read: /mfs/sd/config.txt
MESS:00:00:04.372728:0: brfs: File read: 88 bytes
MESS:00:00:04.374410:0: Failed to open command line file 'cmdline.txt'
MESS:00:00:05.448644:0: brfs: File read: /mfs/sd/kernel7l.img
MESS:00:00:05.451290:0: Loading 'kernel7l.img' to 0x8000 size 0x86538
MESS:00:00:05.457460:0: Device tree loaded to 0x2eff3c00 (size 0xc3b3)
MESS:00:00:05.465471:0: uart: Set PL011 baud rate to 103448.300000 Hz
MESS:00:00:05.472769:0: uart: Baud rate change done...
MESS:00:00:05.474791:0:

U-Boot 2021.07 (Jul 05 2021 - 15:11:28 +0000)
...

System
Machine model: Raspberry Pi Compute Module 4 Rev 1.0

$ uname -a
Linux raspberrypi4 5.10.17-v7l #1 SMP Mon Mar 1 09:44:55 UTC 2021 armv7l GNU/Linux

$ cat /etc/os-release
ID=poky
NAME="Poky (Yocto Project Reference Distro)"
VERSION="3.2.4 (gatesgarth)"
VERSION_ID=3.2.4
PRETTY_NAME="Poky (Yocto Project Reference Distro) 3.2.4 (gatesgarth)"

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