[RFC PATCH v1 00/20] Introduce support for Raspberry PI 5.

Peter Robinson pbrobinson at gmail.com
Wed Feb 19 20:37:31 CET 2025


Hi Oleksii,

I've started to look at this.

On Wed, 5 Feb 2025 at 10:15, Oleksii Moisieiev <Oleksii_Moisieiev at epam.com>
wrote:

> 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;
>

We already have basic support for the RPi5 since Jan last year, you can see
the patches [1]. This serious should build on that rather than add new
duplicated bits. It supports basic serial and mSD support.


> 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.
>

I'll review and test the rest in the context of the existing support.

[1] https://lists.denx.de/pipermail/u-boot/2024-January/543011.html


> 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
>


More information about the U-Boot mailing list