Hi! Recently I've upgraded a video core firmware on my RPi4 and I've noticed that u-boot in ARM 32bit mode stopped working properly or even randomly crashes. I've bisected the firmware releases and the issue appears for the first time in the commit 63b1922311 ("firmware: arm_loader: Update armstubs with those from PR 117 See: https://github.com/raspberrypi/tools/pull/117").
This issue can be easily observed as a failure of the xhci. See the attached log: Read start4x.elf bytes 2984808 hnd 0x000006e2 sha256 d21bf9d3954fea04 Read fixup4x.dat bytes 8432 hnd 0x000006dd sha256 10d3b073ab232613 0x00a03111 0x00000000 0x0000001f MEM GPU: 76 ARM: 948 TOTAL: 1024 Starting start4x.elf @ 0xfec00200 partition 0 PCI reset + MESS:00:00:04.800023:0: arasan: arasan_emmc_open MESS:00:00:04.975752:0: brfs: File read: /mfs/sd/config.txt MESS:00:00:04.979162:0: brfs: File read: 2153 bytes MESS:00:00:05.046081:0: brfs: File read: /mfs/sd/config.txt MESS:00:00:06.121174:0: gpioman: gpioman_get_pin_num: pin DISPLAY_DSI_PORT not defined MESS:00:00:06.128433:0: *** Restart logging MESS:00:00:06.129897:0: brfs: File read: 2153 bytes MESS:00:00:06.148533:0: hdmi: HDMI:hdmi_get_state is deprecated, use hdmi_get_display_state instead MESS:00:00:06.154474:0: HDMI0: hdmi_pixel_encoding: 300000000 MESS:00:00:06.159948:0: HDMI1: hdmi_pixel_encoding: 300000000 MESS:00:00:06.166901:0: dtb_file 'bcm2711-rpi-4-b.dtb' MESS:00:00:06.178359:0: brfs: File read: /mfs/sd/bcm2711-rpi-4-b.dtb MESS:00:00:06.181601:0: Loading 'bcm2711-rpi-4-b.dtb' to 0x100 size 0xc901 MESS:00:00:06.201386:0: brfs: File read: 51457 bytes MESS:00:00:06.267975:0: brfs: File read: /mfs/sd/config.txt MESS:00:00:06.270915:0: dtparam: audio=on MESS:00:00:06.283974:0: brfs: File read: 2153 bytes MESS:00:00:06.286148:0: Failed to load overlay 'vc4-fkms-v3d' MESS:00:00:06.291378:0: brfs: File read: /mfs/sd/overlays/vc4-fkms-v3d.dtbo MESS:00:00:06.304096:0: Failed to open command line file 'cmdline.txt' MESS:00:00:07.484256:0: brfs: File read: /mfs/sd/u-boot.bin MESS:00:00:07.486726:0: Loading 'u-boot.bin' to 0x8000 size 0x84cf4 MESS:00:00:07.492726:0: Device tree loaded to 0x2eff3100 (size 0xce24) MESS:00:00:07.500863:0: uart: Set PL011 baud rate to 103448.300000 Hz MESS:00:00:07.508031:0: uart: Baud rate change done... MESS:00:00:07.510053:0: U-Boot 2021.04-rc2 (Feb 25 2021 - 11:21:44 +0100) DRAM: 948 MiB RPI 4 Model B (0xa03111) MMC: mmcnr@7e300000: 1, emmc2@7e340000: 0 Loading Environment from FAT... OK In: serial Out: serial Err: serial Net: eth0: ethernet@7d580000 Hit any key to stop autoboot: 0 U-Boot> pci enum PCIe BRCM: link up, 5.0 Gbps x1 (SSC) U-Boot> usb start starting USB... Bus xhci_pci: Host not halted after 16000 microseconds. probe failed, error -16 No working controllers found U-Boot> Is it a known issue? In ARM64 mode everything works fine, but this not very surprising, because the firmware change in the mentioned commit is related to the ARM 32bit mode. Does anyone have an idea how to fix this issue? I've checked also the latest version of the RPi firmware, but the issue is still there. Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland