[PATCH v3 5/9] board: qualcomm: Add support for dragonboard845c

Simon Glass sjg at chromium.org
Tue Aug 29 00:09:34 CEST 2023


Hi Peter,

On Mon, 28 Aug 2023 at 14:24, Peter Robinson <pbrobinson at gmail.com> wrote:
>
> On Mon, Aug 28, 2023 at 6:55 PM Simon Glass <sjg at chromium.org> wrote:
> >
> > Hi Sumit,
> >
> > On Thu, 24 Aug 2023 at 04:44, Sumit Garg <sumit.garg at linaro.org> wrote:
> > >
> > > Hi Simon,
> > >
> > > On Thu, 24 Aug 2023 at 05:29, Simon Glass <sjg at chromium.org> wrote:
> > > >
> > > > Hi Sumit,
> > > >
> > > > On Tue, 12 Jul 2022 at 01:12, Sumit Garg <sumit.garg at linaro.org> wrote:
> > > > >
> > > > > Add support for 96Boards Dragonboard 845C aka Robotics RB3 development
> > > > > platform. This board complies with 96Boards Open Platform Specifications.
> > > > >
> > > > > Features:
> > > > > - Qualcomm Snapdragon SDA845 SoC
> > > > > - 4GiB RAM
> > > > > - 64GiB UFS drive
> > > > >
> > > > > U-boot is chain loaded by ABL in 64-bit mode as part of boot.img.
> > > > > For detailed build and boot instructions, refer to
> > > > > doc/board/qualcomm/sdm845.rst, board: dragonboard845c.
> > > > >
> > > > > Signed-off-by: Sumit Garg <sumit.garg at linaro.org>
> > > > > Reviewed-by: Ramon Fried <rfried.dev at gmail.com>
> > > > > ---
> > > > >  arch/arm/dts/dragonboard845c-uboot.dtsi       |  37 +++++++
> > > > >  arch/arm/dts/dragonboard845c.dts              |  44 ++++++++
> > > > >  arch/arm/mach-snapdragon/Kconfig              |  14 +++
> > > > >  board/qualcomm/dragonboard845c/Kconfig        |  12 +++
> > > > >  board/qualcomm/dragonboard845c/MAINTAINERS    |   6 ++
> > > > >  board/qualcomm/dragonboard845c/Makefile       |   9 ++
> > > > >  board/qualcomm/dragonboard845c/db845c.its     |  63 +++++++++++
> > > > >  .../dragonboard845c/dragonboard845c.c         |   9 ++
> > > > >  configs/dragonboard845c_defconfig             |  28 +++++
> > > > >  doc/board/qualcomm/sdm845.rst                 | 100 +++++++++++++++---
> > > > >  include/configs/dragonboard845c.h             |  28 +++++
> > > > >  11 files changed, 337 insertions(+), 13 deletions(-)
> > > > >  create mode 100644 arch/arm/dts/dragonboard845c-uboot.dtsi
> > > > >  create mode 100644 arch/arm/dts/dragonboard845c.dts
> > > > >  create mode 100644 board/qualcomm/dragonboard845c/Kconfig
> > > > >  create mode 100644 board/qualcomm/dragonboard845c/MAINTAINERS
> > > > >  create mode 100644 board/qualcomm/dragonboard845c/Makefile
> > > > >  create mode 100644 board/qualcomm/dragonboard845c/db845c.its
> > > > >  create mode 100644 board/qualcomm/dragonboard845c/dragonboard845c.c
> > > > >  create mode 100644 configs/dragonboard845c_defconfig
> > > > >  create mode 100644 include/configs/dragonboard845c.h
> > > > >
> > > > [..]
> > > >
> > > > > diff --git a/doc/board/qualcomm/sdm845.rst b/doc/board/qualcomm/sdm845.rst
> > > > > index b6642c9579..8ef4749287 100644
> > > > > --- a/doc/board/qualcomm/sdm845.rst
> > > > > +++ b/doc/board/qualcomm/sdm845.rst
> > > > > @@ -35,9 +35,25 @@ Pack android boot image
> > > > >  ^^^^^^^^^^^^^^^^^^^^^^^
> > > > >  We'll assemble android boot image with ``u-boot.bin`` instead of linux kernel,
> > > > >  and FIT image instead of ``initramfs``. Android bootloader expect gzipped kernel
> > > > > -with appended dtb, so let's mimic linux to satisfy stock bootloader:
> > > > > +with appended dtb, so let's mimic linux to satisfy stock bootloader.
> > > > >
> > > >
> > > > [..]
> > > >
> > > > > +The dragonboard845c is a Qualcomm Robotics RB3 Development Platform, based on
> > > > > +the Qualcomm SDM845 SoC.
> > > > > +
> > > > > +Steps:
> > > > > +
> > > > > +- Build u-boot::
> > > > > +
> > > > > +       $ export CROSS_COMPILE=<aarch64 toolchain prefix>
> > > > > +       $ make dragonboard845c_defconfig
> > > > > +       $ make
> > > > > +
> > > > > +- Create dummy dtb::
> > > > > +
> > > > > +       workdir=/tmp/prepare_payload
> > > > > +       mkdir -p "$workdir"
> > > > > +       mock_dtb="$workdir"/payload_mock.dtb
> > > > > +
> > > > > +       dtc -I dts -O dtb -o "$mock_dtb" << EOF
> > > > > +       /dts-v1/;
> > > > > +       / {
> > > > > +               #address-cells = <2>;
> > > > > +               #size-cells = <2>;
> > > > > +
> > > > > +               memory at 80000000 {
> > > > > +                       device_type = "memory";
> > > > > +                       /* We expect the bootloader to fill in the size */
> > > > > +                       reg = <0 0x80000000 0 0>;
> > > > > +               };
> > > > > +
> > > > > +               chosen { };
> > > > > +       };
> > > > > +       EOF
> > > > > +
> > > > > +- gzip u-boot::
> > > > > +
> > > > > +       gzip u-boot.bin
> > > > > +
> > > > > +- Append dtb to gzipped u-boot::
> > > > > +
> > > > > +        cat u-boot.bin.gz "$mock_dtb" > u-boot.bin.gz-dtb
> > > > > +
> > > > > +- A ``db845c.its`` file can be found in ``board/qualcomm/dragonboard845c/``
> > > > > +  directory. It expects a folder as ``db845c_imgs/`` in the main directory
> > > > > +  containing pre-built kernel, dts and ramdisk images. See ``db845c.its``
> > > > > +  for full path to images::
> > > > > +
> > > > > +       mkimage -f db845c.its db845c.itb
> > > > > +
> > > > > +- Now we've got everything to build android boot image::
> > > > > +
> > > > > +       mkbootimg --kernel u-boot.bin.gz-dtb --ramdisk db845c.itb \
> > > > > +       --output boot.img --pagesize 4096 --base 0x80000000
> > > > > +
> > > > > +- Flash boot.img using db845c fastboot method.
> > > >
> > > > What command should be used here? I can run 'fastboot devices' but am
> > > > not sure what command to use to flash U-Boot.
> > > >
> > >
> > > At the time of writing this doc, I thought it was understood how to
> > > flash boot.img on db845c. But I will make that more explicit. Since
> > > u-boot has to be chain loaded by ABL, the command to flash boot.img
> > > (containing u-boot) is as follows:
> > >
> > > sudo fastboot flash boot boot.img
> > >
> > > > Also, is it possible to flash U-Boot as a first-stage bootloader?
> > > >
> > >
> > > That's not possible currently due to Qcom proprietary bootloader being
> > > used. But there were plans to replace atleast ABL with u-boot (See
> > > slide 9 from this Linaro connect Qcom keynote [1]). I hope that will
> > > materialize soon.
> > >
> > > [1] https://resources.linaro.org/en/resource/necH5bQcfrhCCkjSGHXJyA
> > >
> >
> > Thank you for the link. I am pleased to hear it and hope it plays out
> > as that slide seems to indicate.
> >
> > I would like to suggest that 96 boards should use open-source firmware
> > when they launch. Once they launch there is little incentive to clean
> > things up.
>
> It's something that has been suggested from the outset but the fact is
> there is no way to enforce it.

Er, the board is listed on Linaros web site and has presumably been
blessed by Linaro. So don't bless it until the patches are send and/or
landed?

Regards,
Simon


More information about the U-Boot mailing list