This patch series provides generic support for Raspberry PI 5 in U-Boot with additional hardware drivers. The following features were implemented: 1) add generic board config for Raspberry PI5 including device-tree files; 2) add support for RP1 chip with additional hardware; 3) add support for rp1-clock driver with dt-bindings update; 4) PCIE BRCMSTB driver support for Raspberry PI 5; 5) add clock/reset/gpio drivers; 6) add ethernet support in u-boot.
This patch-series introducing the basic set of supported drivers in U-Boot which allows using such features as tftp and\or NFS. I've posted this patch series as RFC because of the following commit: e51ca0d221 (HACK: drivers: mfd: set bar configuration for RP1 driver, 2024-05-21) It includes HACK for rp1 driver in u-boot. This HACK is setting bar address in the correct order because RP1 driver in Linux Kernel rely on the pci BAR configuration which initializes BARs based on BAR size. This results the Linux set BARs in the same order on each boot. U-boot does initialization without any sorting so the configuration may be different from the Linux kernel. BAR address configuration is set to match the Linux Kernel order to avoid fails on address translation. This should be changed after upstreaming RP1 driver to the Linux kernel mainline. Probably somebody from Raspberry will post an advise about how this can be properly done. U-Boot support for Raspberry PI 5 was added in terms of the following project: https://github.com/xen-troops/meta-xt-prod-devel-rpi5 This is xen-based dom0less system on the Raspberry PI 5 with Zephyr as Control Domain and Linux is Driver Domain. It is Yocto-based so it will be easy to build it on your side. Please visit link for the details. Oleksii Moisieiev (17): include: dt-bindings: clk: introduce bindings for rp1 clock include: dt-bindings: mfd: introduce bindings for RP1 driver arch: arm: mach-bcm283x: add pcie memory region to BCM2712 memmap arch: arm: mach-bcm283x: add BCM2712 board support drivers: net: macb: do not include arch/clk.h when clocks enabled drivers: core: of_addr: fix of_get_dma_range translation board: raspberrypi: rpi: save board_type to the global_data drivers: pci: add BCM2712 support for pcie_brcmstb driver drivers: mfd: introduce RP1 chip driver for RPI5 drivers: gpio: add support of RP1 GPIO for Raspberry PI 5 drivers: reset: introduce reset drivers for brcmstb drivers: clk: introduce clock driver for RP1 drivers: net: macb: introduce ePCI connection support for macb configs: add support for the Raspberrypi 5 board to default config HACK: drivers: mfd: set bar configuration for RP1 driver drivers: pci: pcie_brcmstb: use bus_base to config PCI device drivers: pci: pcie_brcmstb: set correct reset state on pcie_remove Volodymyr Babchuk (3): drivers: pci: take into account that ofnode_read_pci_vendev can fail board: raspberrypi: rpi: request RP1 in late_init bcm2712: enable linux kernel image header arch/arm/mach-bcm283x/Kconfig | 8 + arch/arm/mach-bcm283x/init.c | 10 +- board/raspberrypi/rpi/rpi.c | 28 ++ configs/rpi_arm64_defconfig | 19 ++ drivers/clk/Kconfig | 7 + drivers/clk/Makefile | 1 + drivers/clk/clk-rp1.c | 280 ++++++++++++++++++++ drivers/core/of_addr.c | 8 +- drivers/gpio/Kconfig | 7 + drivers/gpio/Makefile | 1 + drivers/gpio/rp1_gpio.c | 374 +++++++++++++++++++++++++++ drivers/mfd/Kconfig | 10 + drivers/mfd/Makefile | 1 + drivers/mfd/rp1.c | 134 ++++++++++ drivers/net/Kconfig | 1 + drivers/net/macb.c | 156 ++++++++--- drivers/net/macb.h | 16 ++ drivers/pci/pci-uclass.c | 9 +- drivers/pci/pcie_brcmstb.c | 328 +++++++++++++++++++++-- drivers/reset/Kconfig | 14 + drivers/reset/Makefile | 2 + drivers/reset/reset-brcmstb-rescal.c | 103 ++++++++ drivers/reset/reset-brcmstb.c | 97 +++++++ include/broadcom/bcm_board_types.h | 25 ++ include/dt-bindings/clk/rp1.h | 56 ++++ include/dt-bindings/mfd/rp1.h | 239 +++++++++++++++++ include/pci_ids.h | 3 + 27 files changed, 1882 insertions(+), 55 deletions(-) create mode 100644 drivers/clk/clk-rp1.c create mode 100644 drivers/gpio/rp1_gpio.c create mode 100644 drivers/mfd/rp1.c create mode 100644 drivers/reset/reset-brcmstb-rescal.c create mode 100644 drivers/reset/reset-brcmstb.c create mode 100644 include/broadcom/bcm_board_types.h create mode 100644 include/dt-bindings/clk/rp1.h create mode 100644 include/dt-bindings/mfd/rp1.h -- 2.34.1