[PATCH v5 00/13] Raspberry Pi 400/Compute Module 4 support
Peter Robinson
pbrobinson at gmail.com
Tue Dec 29 11:58:11 CET 2020
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 <pbrobinson at 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
>
More information about the U-Boot
mailing list