Hi Simon, On Thu, 24 Aug 2023 at 05:29, Simon Glass <s...@chromium.org> wrote: > > Hi Sumit, > > On Tue, 12 Jul 2022 at 01:12, Sumit Garg <sumit.g...@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.g...@linaro.org> > > Reviewed-by: Ramon Fried <rfried....@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@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 -Sumit > > + > > +More information can be found on the `DragonBoard 845c page`_. > > > > .. _Samsung S9 page: https://en.wikipedia.org/wiki/Samsung_Galaxy_S9 > > +.. _DragonBoard 845c page: https://www.96boards.org/product/rb3-platform/ > > diff --git a/include/configs/dragonboard845c.h > > b/include/configs/dragonboard845c.h > > new file mode 100644 > > index 0000000000..108dde199b > > --- /dev/null > > +++ b/include/configs/dragonboard845c.h > > @@ -0,0 +1,28 @@ > > +/* SPDX-License-Identifier: GPL-2.0+ */ > > +/* > > + * Configuration file for Dragonboard 845c, based on Qualcomm SDA845 chip > > + * > > + * (C) Copyright 2022 Sumit Garg <sumit.g...@linaro.org> > > + */ > > + > > +#ifndef __CONFIGS_SDM845_H > > +#define __CONFIGS_SDM845_H > > + > > +#include <linux/sizes.h> > > +#include <asm/arch/sysmap-sdm845.h> > > + > > +#define CONFIG_SYS_BAUDRATE_TABLE { 115200, 230400, 460800, 921600 } > > + > > +#define CONFIG_EXTRA_ENV_SETTINGS \ > > + "bootm_size=0x5000000\0" \ > > + "bootm_low=0x80000000\0" \ > > + "bootcmd=bootm $prevbl_initrd_start_addr\0" > > + > > +/* Size of malloc() pool */ > > +#define CONFIG_SYS_BOOTM_LEN SZ_64M > > + > > +/* Monitor Command Prompt */ > > +#define CONFIG_SYS_CBSIZE 512 > > +#define CONFIG_SYS_MAXARGS 64 > > + > > +#endif > > -- > > 2.25.1 > > > > Regards, > Simon