[PATCH v2 0/8] Raspberry Pi 400/Compute Module 4 support
Nicolas Saenz Julienne
nsaenzjulienne at suse.de
Thu Dec 10 10:42:17 CET 2020
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 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 (8):
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: Introduce DMA constraints into the core device model
dm: Introduce 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()
board/raspberrypi/rpi/rpi.c | 10 +++++
common/fdt_support.c | 73 ++++++++++++++++++++++++++++++++++++
drivers/core/device.c | 24 ++++++++++++
drivers/core/of_addr.c | 71 +++++++++++++++++++++++++++++++++++
drivers/core/ofnode.c | 9 +++++
drivers/core/read.c | 9 +++++
drivers/mmc/sdhci.c | 7 ++--
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 +-
include/dm/device.h | 1 +
include/dm/of_addr.h | 17 +++++++++
include/dm/ofnode.h | 16 ++++++++
include/dm/read.h | 21 +++++++++++
include/fdt_support.h | 14 +++++++
include/mmc.h | 10 +++++
include/phys2bus.h | 16 ++++++++
include/usb/xhci.h | 22 ++++++++++-
19 files changed, 354 insertions(+), 38 deletions(-)
--
2.29.2
More information about the U-Boot
mailing list