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

Andrea della Porta andrea.porta at suse.com
Thu May 16 03:32:10 PDT 2024


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@suse.com/
> > 
> > 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 at suse.com:
> 
> arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: /soc at 107c000000/timer at 7c003000: failed to match any schema with compatible: ['brcm,bcm2835-system-timer']
> arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: /soc at 107c000000/local-intc at 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



More information about the linux-arm-kernel mailing list