[PATCH v2 0/4] Fix NVMe, not only on Raspberry Pi 5

Torsten Duwe duwe at lst.de
Mon Jul 6 19:20:28 CEST 2026


Hi,

Here's the rework of the central fix as requested by Neil, the DMA
addresses as required by the NVMe device are no longer calculated
"last minute" before going into the registers or into the memory
locations, but early, as they occur.  Hopefully talking variable names
and member names are used to store the values when they are needed at
a later point.

Changes from v1:
  - rework address translation towards the source,
    storing the calculated dma (bus) values where applicable
  - add a unit test for phys_to_bus
  - automatically scan for any NVMes to maybe boot the Pi from
  - remove some dead code
  - add Peter's review and test tags

Changes from the single patch:
  - the ternary in the macro is gone, explanation updated accordingly
  - instead, device_get_dma_constraints is enhanced to try harder
  - Raspberry Pi NVMe config added

Torsten Duwe (4):
  core: Skip parent device nodes without a DT reference when looking for
    dma-ranges
  test: Add a unit test in phys_to_bus for dynamically created device nodes
  nvme: Fix missing address translation for PCIe inbound access
  configs: enable NVMe

 arch/sandbox/dts/test.dts   |  9 +++++
 configs/rpi_arm64_defconfig |  3 +-
 drivers/core/device.c       | 14 +++++++-
 drivers/nvme/nvme.c         | 71 ++++++++++++++-----------------------
 drivers/nvme/nvme.h         |  3 ++
 test/dm/phys2bus.c          | 25 ++++++++++++-
 6 files changed, 77 insertions(+), 48 deletions(-)

-- 
2.54.0



More information about the U-Boot mailing list