Description
A regression appears to have been introduced with the latest firmware in that we are no longer able to boot binaries such as the Trusted Firmware or the UEFI firmware. Reverting to an older version of the RPi firmware solves this issue.
Steps to replicate
- Download
bl31.bin(A Raspberry Pi 4 build of the ARM Trusted Firmware binary) from https://github.com/tianocore/edk2-non-osi/blob/master/Platform/RaspberryPi/RPi4/TrustedFirmware/bl31.bin and save it to SD/USB - Add the latest
start4.elf,fixup4.datandbcm2711-rpi-4-b.dtb - Add the following
config.txt:
arm_64bit=1
enable_uart=1
uart_2ndstage=1
enable_gic=1
armstub=bl31.bin
disable_commandline_tags=1
disable_overscan=1
device_tree_address=0x1f0000
device_tree_end=0x200000
- Try to boot the platform
Result
The boot freezes after the following output on the serial console, with the multicoloured screen staying on:
recover4.elf not found (6)
recovery.elf not found (6)
Read start4.elf bytes 2277760 hnd 0x00000089 hash 'ae50b620c077baa5'
Read fixup4.dat bytes 5418 hnd 0x00000088 hash '3f2c561eec60a59c'
0x00c03111 0x00000000 0x0000001f
MEM GPU: 76 ARM: 948 TOTAL: 1024
Starting start4.elf @ 0xfec00200 partition 0
Then, if you replace start4.elf and fixup4.dat with a version published before 2020.07.14, everything works as expected, and you get the expected output:
recover4.elf not found (6)
recovery.elf not found (6)
Read start4.elf bytes 2277248 hnd 0x00000089 hash '8e98b15f075142da'
Read fixup4.dat bytes 5409 hnd 0x00000088 hash 'bdc1f053a4ad68f8'
0x00c03111 0x00000000 0x0000001f
MEM GPU: 76 ARM: 948 TOTAL: 1024
Starting start4.elf @ 0xfec00200 partition 0
NOTICE: BL31: v2.3():v2.3
NOTICE: BL31: Built : 10:40:51, Apr 21 2020
Note that commenting out the device_tree_address=0x1f0000, device_tree_end=0x200000 has no effect, so it's not a device tree setup issue.
We are in the process of pinpointing the exact revision of start4.elf that introduced this issue, but since we didn't expect such a major regression and now have to scramble to fix our UEFI firmware downloads as a result, it might be a while before we can do so...