[PATCH 00/15] ARM: rpi: add basic Raspberry Pi 4 support

Ahmad Fatoum a.fatoum at pengutronix.de
Fri May 6 05:47:59 PDT 2022


Hi,

On 05.05.22 10:01, Ahmad Fatoum wrote:
> Just basic support, so we get a shell on mini-uart and SD
> working. Needs more work for USB and Ethernet, but I'll leave that
> to others now that the initial hurdle is overcome.
> 
> I tested this series on Raspberry Pi 3b (both 32-bit and newly
> added 64-bit support) and Raspberry Pi 4b (both 32/64-bit).
> 
> @Oleksij, could you give this a test on Raspberry Pi 2 as well?
> 
> barebox-dt-2nd.img is the image to use for all configurations.
> barebox didn't start up (or at least serial was silent) with
> Daily built Debian raspi_4_bullseye.img. Worked fine though
> with firmware in 2022-04-04-raspios-bullseye-arm64-lite.img.
> If in doubt, use firmware described in barebox documentation.

We discussed this on the mailing list a bit and I see now that
barebox-dt-2nd.img may not be the best way forward for Raspberry
Pi: Many users are depending on the VideoCore to apply overlays
and the VideoCore has special magic when applying specific overlays,
e.g. turning on USB PHY for dwc2 when applying dwc2 overlay.

While we could apply overlays in barebox, this would add extra
complexity (e.g. parse config.txt) and using same device tree
for kernel and barebox may not be feasible, because of differing
bindings, e.g. when using the Raspberry Pi kernel instead of
mainline.

I'll instead build a new raspberry pi specific image with
multiple device trees embedded for v2. This may allow removing
some quirky stuff in this series too.

Cheers,
Ahmad

> 
> Boot log:
> 
>   barebox 2022.04.0-00101-g5fea3e8979b2 #205 Tue May 3 09:33:54 CEST 2022
> 
> 
>   Board: Raspberry Pi 4 Model B Rev 1.1
>   Deep probe supported due to raspberrypi,4-model-b
>   bcm2835_mci fe300000.mmc at 7e300000.of: registered as mci0
>   WARNING: dwc2 fe980000.usb at 7e980000.of: dwc2_core_reset: Timeout! Waiting for Core Soft Reset
>   ERROR: dwc2 fe980000.usb at 7e980000.of: probe failed: Connection timed out
>   WARNING: bcm2835_mci fe340000.mmc at 7e340000.of: Failed to get 'vmmc' regulator (ignored).
>   bcm2835_mci fe340000.mmc at 7e340000.of: registered as mci1
>   ERROR: translation of DMA address(400000000) to CPU address failed node(pcie at 7d500000)
>   malloc space: 0x1d8fc800 -> 0x3b1f8fff (size 473 MiB)
>   mci1: detected SD card version 2.0
>   mci1: registered disk0
>   environment load /boot/barebox.env: No such file or directory
>   Maybe you have to create the partition.
> 
> Ahmad Fatoum (13):
>   PBL: fdt: fix /memory parsing when #address-cells != #size-cells
>   serial: ns16550: rpi: remove ungating now done by proper clk driver
>   ARM: cpu: prevent recursive dependencies via CPU_SUPPORTS_64BIT_KERNEL
>   ARM: rpi: add Raspberry Pi 3 64-bit build support
>   ARM: rpi: rpi3: disallow MMU_EARLY && 64BIT
>   clk: rpi: add Raspberry Pi 4 support
>   serial: ns16550: rpi: skip baudrate changes for bcm2711
>   clocksource: bcm2835: bump below architeced timer for AArch64
>   ARM: rpi: add Raspberry Pi 4 support
>   ARM: rpi: add debug_ll support for Raspberry Pi 4
>   ARM: rpi: add heuristic for skipping detection of SDIO card
>   doc: bcm283x: add initial docs for Raspberry Pi 4 support
>   doc: bcm283x: reference newer firmware
> 
> Uwe Kleine-König (2):
>   of: address: fix printing of OF node name in error message
>   mci: bcm2835: add bcm2711-emmc2 (Rpi4) support
> 
>  Documentation/boards/bcm2835.rst              |  65 ++++++++--
>  arch/arm/Kconfig                              |   4 +
>  arch/arm/boards/raspberry-pi/rpi-common.c     |  51 +++++++-
>  arch/arm/configs/rpi_v8a_defconfig            | 111 ++++++++++++++++++
>  arch/arm/cpu/Kconfig                          |   1 -
>  arch/arm/dts/Makefile                         |   1 +
>  arch/arm/dts/bcm2711-rpi-4-b.dts              |   1 +
>  arch/arm/mach-bcm283x/Kconfig                 |  28 ++++-
>  arch/arm/mach-bcm283x/include/mach/debug_ll.h |  21 ++++
>  arch/arm/mach-bcm283x/include/mach/mbox.h     |   4 +
>  arch/arm/mach-bcm283x/include/mach/platform.h |   5 +-
>  arch/arm/mach-bcm283x/mbox.c                  |   2 +-
>  common/Kconfig                                |   7 ++
>  drivers/clk/clk-rpi.c                         |  42 +++++--
>  drivers/clocksource/bcm2835.c                 |   3 +-
>  drivers/mci/mci-bcm2835.c                     |   4 +-
>  drivers/of/address.c                          |   4 +-
>  drivers/serial/serial_ns16550.c               |  18 ++-
>  images/Makefile.bcm283x                       |   6 +
>  pbl/fdt.c                                     |   2 +-
>  20 files changed, 341 insertions(+), 39 deletions(-)
>  create mode 100644 arch/arm/configs/rpi_v8a_defconfig
>  create mode 100644 arch/arm/dts/bcm2711-rpi-4-b.dts
> 


-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list