[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