Re: [PATCH v2 0/4] Add minimal boot support for Raspberry Pi 5

From: Andrea della Porta
Date: Thu May 16 2024 - 06:32:12 EST


On 08:27 Mon 13 May , Rob Herring (Arm) wrote:
>
> On Fri, 10 May 2024 16:35:26 +0200, Andrea della Porta wrote:
> > Hi,
> >
> > This patchset adds minimal support for the Broadcom BCM2712 SoC and for
> > the on-board SDHCI controller on Broadcom BCM2712 in order to make it
> > possible to boot (particularly) a Raspberry Pi 5 from SD card and get a
> > console through uart.
> > Changes to arm64/defconfig are not needed since the actual options work
> > as they are.
> > This work is heavily based on downstream contributions.
> >
> > Tested on Tumbleweed substituting the stock kernel with upstream one,
> > either chainloading uboot+grub+kernel or directly booting the kernel
> > from 1st stage bootloader. Steps to reproduce:
> > - prepare an SD card from a Raspberry enabled raw image, mount the first
> > FAT partition.
> > - make sure the FAT partition is big enough to contain the kernel,
> > anything bigger than 64Mb is usually enough, depending on your kernel
> > config options.
> > - build the kernel and dtbs making sure that the support for your root
> > fs type is compiled as builtin.
> > - copy the kernel image in your FAT partition overwriting the older one
> > (e.g. kernel*.img for Raspberry Pi OS or u-boot.bin for Tumbleweed).
> > - copy arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb on FAT partition.
> > - make sure you have a cmdline.txt file in FAT partition with the
> > following content:
> > # cat /boot/efi/cmdline.txt
> > root=/dev/mmcblk0p3 rootwait rw console=tty ignore_loglevel earlycon
> > console=ttyAMA10,115200
> > - if you experience random SD issues during boot, try to set
> > initial_turbo=0 in config.txt.
> >
> > Changes in V2:
> >
> > - the patchshet has been considerably simplified, both in terms of dts and
> > driver code. Notably, the pinctrl/pinmux driver (and associated binding)
> > was not strictly needed to use the SD card so it has been dropped.
> > - dropped the optional SD express support patch
> > - the patches order has been revisited
> > - pass all checks (binding, dtb, checkpatch)
> >
> > Many thanks,
> > Andrea
> >
> > References:
> > - Link to V1: https://lore.kernel.org/all/cover.1713036964.git.andrea.porta@xxxxxxxx/
> >
> > Andrea della Porta (4):
> > dt-bindings: arm: bcm: Add BCM2712 SoC support
> > dt-bindings: mmc: Add support for BCM2712 SD host controller
> > mmc: sdhci-brcmstb: Add BCM2712 support
> > arm64: dts: broadcom: Add support for BCM2712
> >
> > .../devicetree/bindings/arm/bcm/bcm2835.yaml | 6 +
> > .../bindings/mmc/brcm,sdhci-brcmstb.yaml | 23 ++
> > arch/arm64/boot/dts/broadcom/Makefile | 1 +
> > .../boot/dts/broadcom/bcm2712-rpi-5-b.dts | 62 ++++
> > arch/arm64/boot/dts/broadcom/bcm2712.dtsi | 302 ++++++++++++++++++
> > drivers/mmc/host/sdhci-brcmstb.c | 81 +++++
> > 6 files changed, 475 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
> > create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712.dtsi
> >
> > --
> > 2.35.3
> >
> >
> >
>
>
> My bot found new DTB warnings on the .dts files added or changed in this
> series.
>
> Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
> are fixed by another series. Ultimately, it is up to the platform
> maintainer whether these warnings are acceptable or not. No need to reply
> unless the platform maintainer has comments.
>
> If you already ran DT checks and didn't see these error(s), then
> make sure dt-schema is up to date:
>
> pip3 install dtschema --upgrade
>
>
> New warnings running 'make CHECK_DTBS=y broadcom/bcm2712-rpi-5-b.dtb' for cover.1715332922.git.andrea.porta@xxxxxxxx:
>
> arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: /soc@107c000000/timer@7c003000: failed to match any schema with compatible: ['brcm,bcm2835-system-timer']
> arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: /soc@107c000000/local-intc@7cd00000: failed to match any schema with compatible: ['brcm,bcm2836-l1-intc']

Those two property come respectively from:
- Documentation/devicetree/bindings/timer/brcm,bcm2835-system-timer.txt
- Documentation/devicetree/bindings/interrupt-controller/brcm,bcm2836-l1-intc.txt

that are old style txt bindings. So unfortunally they will output that
kind of warnings: converting txt to yaml schema wouldbe great, but I
think a little outside the scope of this patchset. I would say it is
a good cancidate for a separate patch.

Many thanks,
Andrea