You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a proposal for the bootloader to work around some PCIe devices that do not work with 0x00000000 memory mapped I/O addresses.
A few devices have been found that do not work with these low mmio addresses like the ASMedia 2806 PCIe switch (see raspberrypi/linux#6278) and Intel i225 and i226 NICS (see raspberrypi/linux#6134). A dtoverlay was made that works around this issue (see raspberrypi/linux#6186) however this does not affect the bootloader process which prevents booting from NVME behind the ASMedia 2806 for example.
My proposal is for the bootloader to behave similarly to the dtoverlay and skip the initial addresses so these devices can function properly. There is 4GB of available mmio addresses (32 bit anyway) from my understanding so skipping a portion for the bootloader should not cause any issues and allow these devices to work properly. While this is a workaround it seems to have little to no consequence to the bootloader as I can't for see any issue with the bootloader running out of addresses and could only help with compatibility of devices. This is with somewhat limited understanding of the bootloader process so I could be way off and this be a much harder problem than it looks on the outside.
I've posted a UART log below of the issue.
System
Copy and paste the results of the raspinfo command in to this section. Alternatively, copy and paste a pastebin link, or add answers to the following questions:
Which model of Raspberry Pi? Pi5
Which OS and version (cat /etc/rpi-issue)?
Raspberry Pi reference 2023-12-11
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 2acf7afcba7d11500313a7b93bb55a2aae20b2d6, stage2
Which firmware version (vcgencmd version)?
2024/06/05 16:41:49
Copyright (c) 2012 Broadcom
version 6fe0b091 (release) (embedded)
I would gladly re-submit under rpi-eeprom if that makes more sense. If someone can't move this automatically and I haven't heard otherwise, I'll open this new there in a few days.
This is a proposal for the bootloader to work around some PCIe devices that do not work with 0x00000000 memory mapped I/O addresses.
A few devices have been found that do not work with these low mmio addresses like the ASMedia 2806 PCIe switch (see raspberrypi/linux#6278) and Intel i225 and i226 NICS (see raspberrypi/linux#6134). A dtoverlay was made that works around this issue (see raspberrypi/linux#6186) however this does not affect the bootloader process which prevents booting from NVME behind the ASMedia 2806 for example.
My proposal is for the bootloader to behave similarly to the dtoverlay and skip the initial addresses so these devices can function properly. There is 4GB of available mmio addresses (32 bit anyway) from my understanding so skipping a portion for the bootloader should not cause any issues and allow these devices to work properly. While this is a workaround it seems to have little to no consequence to the bootloader as I can't for see any issue with the bootloader running out of addresses and could only help with compatibility of devices. This is with somewhat limited understanding of the bootloader process so I could be way off and this be a much harder problem than it looks on the outside.
I've posted a UART log below of the issue.
System
Copy and paste the results of the raspinfo command in to this section. Alternatively, copy and paste a pastebin link, or add answers to the following questions:
cat /etc/rpi-issue
)?vcgencmd version
)?uname -a
)?Logs
Here's a UART log with
BOOT_ORDER=0xf416
andPCIE_PROBE=1
using the ASMedia 2806 PCIe switch.UART Log (Click to expand)
The text was updated successfully, but these errors were encountered: