Skip to content

NVMe boot behind multiple PCIe switches won't boot #2025

Description

@Aegwyn11

Describe the bug
A NVMe drive located behind multiple PCIe switches functions, but cannot boot.

To reproduce
HW: Raspberry Pi 5 + Waveshare 2-CH PCIe HAT + Waveshare PCIe To ETH And M.2 Adapter (SKU 28515) with NVMe SSD connected.
Configure the system to boot from NVMe and it does not boot.
Bootloader config:

[all]
PCIE_PROBE=1
NVME_CONTROLLER=1
BOOT_UART=1
BOOT_ORDER=0xf461
NET_INSTALL_AT_POWER_ON=1
PSU_MAX_CURRENT=5000

Note that both the Waveshare 2-CH PCIe HAT and the Waveshare 2-CH PCIe HAT have ASM1182e PCIe switches built onto them, so in this configuration the NVMe drive is behind two ASM1182e switches.

If the Waveshare 2-CH PCIe HAT is removed and the Waveshare PCIe to ETH and M.2 Adapter is connected directly to the Pi5, the system boots fine. Also, if the system works if it is configured in "hybrid" mode using a SD card to point to the NVMe drive.

Expected behaviour
The system should boot directly from NVMe, even with the NVMe drive behind multiple PCIe switches.

Actual behaviour
The system does not boot from NVMe when /boot/firmware is on the NVMe.

The system does boot with the same image loaded to:

  • SD card, both /boot/firmware and / pointing to the SD card
  • Hybrid, /boot/firmware points to SD card, / points to NVMe

In both booting configurations, once booted the NVMe SSD is fully accessible.

Again, if the 2-CH PCIe HAT is removed and the PCIe to ETH and M.2 Adapter is connected directly to the Pi5, everything boots as expected.

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:

NOTE: everything below is pulled while the system is booted and running from a SD card. The NMVe drive is connected, but only being used as storage currently.

graphics-raspinfo.txt

  • Which model of Raspberry Pi? Pi5
  • Which OS and version (cat /etc/rpi-issue)?
Raspberry Pi reference 2025-12-04
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 4997bf4e4e49bc3305eb182a4a08bd023529da04, stage4
  • Which firmware version (vcgencmd version)?
2026/02/06 14:31:40 
Copyright (c) 2012 Broadcom
version 8124798b (release) (embedded)
  • Which kernel version (uname -a)?
    Linux Livestream-Graphics 6.12.67-v8-16k+ #1938 SMP PREEMPT Fri Jan 23 16:07:39 GMT 2026 aarch64 GNU/Linux

Additional context
While it certainly would be possible to run this system in hybrid mode (SD card for /boot/firmware and NVMe for /), this creates concerns for me due to the design of the chassis around it. While the NVMe drive will be relatively easily accessible, the SD card will be extremely difficult to get to (when designing the chassis, I didn't expect to need a SD card at all).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions