2

I'm trying to set up autoboot.txt on a CM4. When partitioning the eMMC with MBR everything seems to work correctly, but if I switch to GPT it doesn't seems to manage to run the start4.elf firmware.

Here are some logs from the EEPROM bootloader with GPT partitioning + autoboot.txt (so not working):

  0.11 RPi: BOOTSYS release VERSION:5f18ffb6 DATE: 2024/07/30 TIME: 14:02:35
  0.15 BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1722344555 serial dc324b5f boardrev b03140 stc 515817
  0.33 PM_RSTS: 0x00001000
  0.33 part 00000000 reset_info 00000000
  0.36 uSD voltage 3.3V
  0.61 Initialising SDRAM 'Samsung' 16Gb x1 total-size: 16 Gbit 3200
  0.65 DDR 3200 0 0 16 152
  1.96 OTP boardrev b03140 bootrom 48b0 48b0
  1.97 Customer key hash 0000000000000000000000000000000000000000000000000000000000000000
  1.05 VC-JTAG unlocked

1.80 RPi: BOOTLOADER release VERSION:5f18ffb6 DATE: 2024/07/30 TIME: 14:02:35 1.84 BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1722344555 serial dc324b5f boardrev b03140 stc 1784982 1.20 Boot mode: SD (01) order f2564 1.35 SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276 1.46 SD HOST: 200000000 CTL0: 0x00800f00 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276 1.55 EMMC 2.55 SD retry 1 oc 0 2.79 SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276 2.91 OCR c0ff8080 [0] CID: 00150100424a5444345203a85aba4718 2.10 SD HOST: 200000000 CTL0: 0x00800f04 BUS: 25000000 Hz actual: 25000000 HZ div: 8 (4) status: 0x1fff0000 delay: 4 2.21 SD HOST: 200000000 CTL0: 0x00800f04 BUS: 50000000 Hz actual: 50000000 HZ div: 4 (2) status: 0x1fff0000 delay: 2 2.30 MBR: 0x00000001,15974433 type: 0xee 2.32 MBR: 0x00000000, 0 type: 0x00 2.36 MBR: 0x00000000, 0 type: 0x00 2.40 MBR: 0x00000000, 0 type: 0x00 2.44 Trying partition: 0 2.46 GPT 0000000000000000000000004d9b9ef0 000000001 000f3c021 num-partitions 128 entry-size 128 2.55 GPT partition: 0 ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 000002000..000081fff 2.62 Matched GUID bootable-part-idx 0 want partition 0 2.67 type: 16 lba: 8192 'mkfs.fat' ' V ^ ' clusters 130999 (4) 2.73 rsc 4 fat-sectors 128 root dir cluster 1 sectors 32 entries 512 2.80 FAT16 clusters 130999 2.84 Read autoboot.txt bytes 64 hnd 0x2 2.86 Select partition rsts 0 C(boot_partition) 2 EEPROM config 0 result 2 2.93 Trying partition: 2 2.96 GPT 0000000000000000000000004d9b9ef0 000000001 000f3c021 num-partitions 128 entry-size 128 2.04 GPT partition: 0 ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 000002000..000081fff 2.11 Matched GUID bootable-part-idx 0 want partition 1 2.16 GPT partition: 1 ebd0a0a2-b9e5-4433-87c0-68b6b72699c7 000082000..0000a1fff 2.23 Matched GUID bootable-part-idx 1 want partition 1 2.29 type: 16 lba: 532480 'mkfs.fat' ' V ^ ' clusters 32695 (4) 2.35 rsc 4 fat-sectors 128 root dir cluster 1 sectors 32 entries 512 2.41 FAT16 clusters 32695 2.48 Read config.txt bytes 2489 hnd 0x1e77 2.50 [sdcard] pieeprom.upd not found 2.53 [sdcard] recover4.elf not found 2.57 [sdcard] recovery.elf not found 2.79 Read start4.elf bytes 2256224 hnd 0x25e1 2.81 Read fixup4.dat bytes 5434 hnd 0x1e7d 2.85 0x00b03140 0x00000000 0x00001fff 2.88 MEM GPU: 76 ARM: 948 TOTAL: 1024 2.57 Firmware: f4e2138c2adc8f3a92a3a65939e458f11d7298ba Feb 29 2024 12:24:53 2.90 Starting start4.elf @ 0xfec00200 partition 2 2.92 PCI0 reset 2.04 +

Nothing is printed after this

And here are some logs from the MBR partitioning + autoboot.txt version:

  0.11 RPi: BOOTSYS release VERSION:5f18ffb6 DATE: 2024/07/30 TIME: 14:02:35
  0.15 BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1722344555 serial dc324b5f boardrev b03140 stc 515817
  0.33 PM_RSTS: 0x00001000
  0.33 part 00000000 reset_info 00000000
  0.36 uSD voltage 3.3V
  0.61 Initialising SDRAM 'Samsung' 16Gb x1 total-size: 16 Gbit 3200
  0.65 DDR 3200 0 0 16 152
  1.96 OTP boardrev b03140 bootrom 48b0 48b0
  1.98 Customer key hash 0000000000000000000000000000000000000000000000000000000000000000
  1.05 VC-JTAG unlocked

1.80 RPi: BOOTLOADER release VERSION:5f18ffb6 DATE: 2024/07/30 TIME: 14:02:35 1.85 BOOTMODE: 0x06 partition 0 build-ts BUILD_TIMESTAMP=1722344555 serial dc324b5f boardrev b03140 stc 1785188 1.20 Boot mode: SD (01) order f2564 1.35 SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276 1.46 SD HOST: 200000000 CTL0: 0x00800f00 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276 1.55 EMMC 2.55 SD retry 1 oc 0 2.79 SD HOST: 200000000 CTL0: 0x00800000 BUS: 400000 Hz actual: 390625 HZ div: 512 (256) status: 0x1fff0000 delay: 276 2.91 OCR c0ff8080 [0] CID: 00150100424a5444345203a85aba4718 2.10 SD HOST: 200000000 CTL0: 0x00800f04 BUS: 25000000 Hz actual: 25000000 HZ div: 8 (4) status: 0x1fff0000 delay: 4 2.21 SD HOST: 200000000 CTL0: 0x00800f04 BUS: 50000000 Hz actual: 50000000 HZ div: 4 (2) status: 0x1fff0000 delay: 2 2.30 MBR: 0x00002000, 524288 type: 0x0c 2.32 MBR: 0x00082000, 131072 type: 0x0c 2.36 MBR: 0x000a2000, 131072 type: 0x0c 2.40 MBR: 0x000c3ffe,15204354 type: 0x0f 2.44 Trying partition: 0 2.47 type: 16 lba: 8192 'mkfs.fat' ' V ^ ' clusters 130999 (4) 2.53 rsc 4 fat-sectors 128 root dir cluster 1 sectors 32 entries 512 2.59 FAT16 clusters 130999 2.64 Read autoboot.txt bytes 64 hnd 0x2 2.66 Select partition rsts 0 C(boot_partition) 2 EEPROM config 0 result 2 2.72 Trying partition: 2 2.75 type: 16 lba: 532480 'mkfs.fat' ' V ^ ' clusters 32695 (4) 2.81 rsc 4 fat-sectors 128 root dir cluster 1 sectors 32 entries 512 2.88 FAT16 clusters 32695 2.94 Read config.txt bytes 2489 hnd 0x1e77 2.97 [sdcard] pieeprom.upd not found 2.00 [sdcard] recover4.elf not found 2.03 [sdcard] recovery.elf not found 2.25 Read start4.elf bytes 2256224 hnd 0x25e1 2.28 Read fixup4.dat bytes 5434 hnd 0x1e7d 2.31 0x00b03140 0x00000000 0x00001fff 2.35 MEM GPU: 76 ARM: 948 TOTAL: 1024 2.04 Firmware: f4e2138c2adc8f3a92a3a65939e458f11d7298ba Feb 29 2024 12:24:53 2.37 Starting start4.elf @ 0xfec00200 partition 2 2.39 PCI0 reset 2.50 +

U-Boot 2024.01 (Jan 08 2024 - 15:37:48 +0000)

DRAM: 948 MiB (effective 1.9 GiB) RPI Compute Module 4 (0xb03140) Core: 212 devices, 16 uclasses, devicetree: board MMC: mmcnr@7e300000: 1, mmc@7e340000: 0 Loading Environment from MMC... *** Warning - bad CRC, using default environment ...

I can't see any meaningful difference. Is it known for autoboot.txt to not work with GPT partitioning? I expected this to work since with GPT booting into U-boot for example if it's on the first partition worked flawlessly.

MatsK
  • 2,882
  • 3
  • 17
  • 22
ArenaLor
  • 141
  • 4

1 Answers1

2

This actually seems to be a bug in the start4.elf firmware; for more information see:

Firmware fails to boot a GPT SD-card using autoboot.txt on first partrition on Pi 4-B, https://github.com/raspberrypi/rpi-eeprom/issues/654

I tried the test firmware (NOT released as of 2025-01-28) provided in https://github.com/raspberrypi/rpi-eeprom/issues/654#issuecomment-2596110497 and with the the boot process is successful, even with GPT partitioning.

MatsK
  • 2,882
  • 3
  • 17
  • 22
ArenaLor
  • 141
  • 4