Hi Nicolas, With the xhci patch snippet the pci/xhci crash I was seeing is now gone.
I am seeing an error which I need to test a bit more around mmc voltage select which I didn't see previously: Card did not respond to voltage select! : -110 I'm going to do some wider testing. Overall this looks good Series Tested-by: Peter Robinson <pbrobin...@gmail.com> > This series could be split into at least two or even three parts, but I > kept it as is for now as it contains all the changes needed in order to > have u-boot working on the new Raspberry Pi 400 and Raspberry Pi Compute > Module 4. > > There are core changes, specifically with regard to cpu to bus address > space translations. So far we had relied on hard-coded values but RPi > needs per device translations as it has at least three distinct bus > address spaces with different offsets. So it's a good opportunity to > implement bus translations the right way by parsing DT's dma-ranges. > > Here's a more concrete example of what we're dealing with: > > - On a RPi4, SoC version BCM2711C0 with 8GB of memory > > [0x0 0x200000000] [0x200000000 0x400000000] [0xc0000000 > 0x100000000] [0x00000000 0x100000000] > phys/cpu address PCIe bus address Legacy peripheral > emmc2 address > space space address space > space > > - On a RPi4, SoC version BCM2711C0 with 4GB of memory > > [0x0 0x100000000] [0x100000000 0x200000000] [0xc0000000 > 0x100000000] [0x00000000 0x100000000] > phys/cpu address PCIe bus address Legacy peripheral > emmc2 address > space space address space > space > > - On a RPi4, SoC version BCM2711B0 with 8GB of memory (bus can only access the > lower 3GB of memory because of a SoC routing bug) > > [0x0 0x200000000] [0x00000000 0xC0000000] [0xc0000000 0x100000000] > phys/cpu address PCIe bus address Legacy peripheral > space space address space > > --- > > Changes since v4: > - Get rid of #ifs all over the place > > Changes since v3: > - Add commit "video: arm: rpi: Add brcm,bcm2711-hdmi0 compatible", it's > pretty harmless > - Get rid of non-device based phys2bus call in xhci & mmc > - Simon's review changes in tests > - Comment some of the APIs > > Changes since v2: > - Test builds not broken with buildman > - Add tests to all DM changes > - Make code conditional with config option > - Correct OF refcount > - Add config changes > - Address small changes as per reviews > > Changes since v1: > - Fix some issues in 'dm: Introduce xxx_get_dma_range()' > - Fix some typos in commit messages > - Change DTB file name for RPi400 > - Address Matthias' comments > > Nicolas Saenz Julienne (13): > rpi: Add identifier for the new RPi400 > rpi: Add identifier for the new CM4 > pci: pcie-brcmstb: Fix inbound window configurations > dm: Introduce xxx_get_dma_range() > dm: test: Add test case for dev_get_dma_ranges() > dm: Introduce DMA constraints into the core device model > dm: test: Add test case for dev->dma_offset > dm: Introduce dev_phys_to_bus()/dev_bus_to_phys() > dm: test: Add test case for dev_phys_to_bus()/dev_bus_to_phys() > xhci: translate virtual addresses into the bus's address space > mmc: Introduce mmc_phys_to_bus()/mmc_bus_to_phys() > configs: rpi4: Enable DM_DMA across all RPi4 configurations > video: arm: rpi: Add brcm,bcm2711-hdmi0 compatible > > arch/sandbox/dts/test.dts | 21 ++++++++ > board/raspberrypi/rpi/rpi.c | 10 ++++ > common/fdt_support.c | 73 ++++++++++++++++++++++++++++ > configs/rpi_4_32b_defconfig | 1 + > configs/rpi_4_defconfig | 1 + > configs/rpi_arm64_defconfig | 1 + > configs/sandbox64_defconfig | 1 + > configs/sandbox_defconfig | 1 + > configs/sandbox_flattree_defconfig | 1 + > configs/sandbox_spl_defconfig | 1 + > drivers/core/Kconfig | 10 ++++ > drivers/core/device.c | 41 ++++++++++++++++ > drivers/core/of_addr.c | 78 ++++++++++++++++++++++++++++++ > drivers/core/ofnode.c | 9 ++++ > drivers/core/read.c | 6 +++ > drivers/mmc/sdhci.c | 12 +++-- > drivers/pci/pcie_brcmstb.c | 12 ++--- > drivers/usb/host/xhci-mem.c | 45 +++++++++-------- > drivers/usb/host/xhci-ring.c | 11 +++-- > drivers/usb/host/xhci.c | 4 +- > drivers/video/bcm2835.c | 1 + > include/dm/device.h | 13 +++++ > include/dm/of_addr.h | 17 +++++++ > include/dm/ofnode.h | 16 ++++++ > include/dm/read.h | 21 ++++++++ > include/fdt_support.h | 14 ++++++ > include/mmc.h | 6 +++ > include/phys2bus.h | 17 +++++++ > include/usb/xhci.h | 20 +++++++- > test/dm/Makefile | 2 + > test/dm/core.c | 30 ++++++++++++ > test/dm/phys2bus.c | 37 ++++++++++++++ > test/dm/read.c | 49 +++++++++++++++++++ > 33 files changed, 542 insertions(+), 40 deletions(-) > create mode 100644 test/dm/phys2bus.c > create mode 100644 test/dm/read.c > > -- > 2.29.2 >