mbox series

[v2,0/9] New boards support: db845c and qcs404-evb

Message ID 20220708131404.1489347-1-sumit.garg@linaro.org
Headers show
Series New boards support: db845c and qcs404-evb | expand

Message

Sumit Garg July 8, 2022, 1:13 p.m. UTC
Add support for two new boards db845c and qcs404-evb:
- db845c is a 96boards compliant platform aka RB3 based on Qualcomm
  SDM845 SoC.
- qcs404-evb is an evaluation board from Qualcomm based on QCS404 SoC.

Both these platforms have one thing in common that u-boot is chain-loaded
in 64-bit mode via Android Boot Loader (ABL) which is an EFI application.
For further details on chain-loading refer to platform specific
documentation:
- doc/board/qualcomm/sdm845.rst
- doc/board/qualcomm/qcs404.rst

Changes in v2:
- Added patch #1 to fix DT node overrides in starqltechn-uboot.dtsi.
- Updated patch #2 commit description.
- Fixed a typo (s/96Board/96Boards/) in patch #5.

Sumit Garg (9):
  board: starqltechn: Align DT node overrides with sdm845.dtsi
  arm64: dts: sdm845: Remove redundant u-boot DT properties
  clocks: sdm845: Import qcom,gcc-sdm845.h
  uart: sdm845: Fix debug UART pinmux
  board: qualcomm: Add support for dragonboard845c
  mmc: msm_sdhci: Add SDCC version 5.0.0 support
  pinctrl: qcom: Add pinctrl driver for QCS404 SoC
  clocks: qcom: Add clock driver for QCS404 SoC
  board: qualcomm: Add support for QCS404 EVB

 arch/arm/dts/Makefile                         |   1 +
 arch/arm/dts/dragonboard845c-uboot.dtsi       |  37 +++
 arch/arm/dts/dragonboard845c.dts              |  44 ++++
 arch/arm/dts/qcs404-evb-uboot.dtsi            |  24 ++
 arch/arm/dts/qcs404-evb.dts                   |  81 ++++++
 arch/arm/dts/sdm845.dtsi                      |   8 +-
 arch/arm/dts/starqltechn-uboot.dtsi           |  18 +-
 arch/arm/dts/starqltechn.dts                  |   2 +-
 arch/arm/mach-snapdragon/Kconfig              |  25 ++
 arch/arm/mach-snapdragon/Makefile             |   3 +
 arch/arm/mach-snapdragon/clock-qcs404.c       |  30 +++
 arch/arm/mach-snapdragon/clock-sdm845.c       |   3 +-
 arch/arm/mach-snapdragon/clock-snapdragon.c   |   1 +
 .../include/mach/sysmap-qcs404.h              |  13 +
 arch/arm/mach-snapdragon/pinctrl-qcs404.c     |  55 ++++
 arch/arm/mach-snapdragon/pinctrl-snapdragon.c |   1 +
 arch/arm/mach-snapdragon/pinctrl-snapdragon.h |   1 +
 arch/arm/mach-snapdragon/sysmap-qcs404.c      |  31 +++
 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 +
 board/qualcomm/qcs404-evb/Kconfig             |  15 ++
 board/qualcomm/qcs404-evb/MAINTAINERS         |   6 +
 board/qualcomm/qcs404-evb/Makefile            |   6 +
 board/qualcomm/qcs404-evb/qcs404-evb.c        |  33 +++
 board/qualcomm/qcs404-evb/qcs404-evb.its      |  64 +++++
 configs/dragonboard845c_defconfig             |  28 ++
 configs/qcs404evb_defconfig                   |  39 +++
 doc/board/qualcomm/index.rst                  |   1 +
 doc/board/qualcomm/qcs404.rst                 |  79 ++++++
 doc/board/qualcomm/sdm845.rst                 | 100 ++++++-
 drivers/mmc/msm_sdhci.c                       |  96 ++++---
 include/configs/dragonboard845c.h             |  28 ++
 include/configs/qcs404-evb.h                  |  27 ++
 include/dt-bindings/clock/qcom,gcc-qcs404.h   | 180 +++++++++++++
 include/dt-bindings/clock/qcom,gcc-sdm845.h   | 246 ++++++++++++++++++
 38 files changed, 1363 insertions(+), 62 deletions(-)
 create mode 100644 arch/arm/dts/dragonboard845c-uboot.dtsi
 create mode 100644 arch/arm/dts/dragonboard845c.dts
 create mode 100644 arch/arm/dts/qcs404-evb-uboot.dtsi
 create mode 100644 arch/arm/dts/qcs404-evb.dts
 create mode 100644 arch/arm/mach-snapdragon/clock-qcs404.c
 create mode 100644 arch/arm/mach-snapdragon/include/mach/sysmap-qcs404.h
 create mode 100644 arch/arm/mach-snapdragon/pinctrl-qcs404.c
 create mode 100644 arch/arm/mach-snapdragon/sysmap-qcs404.c
 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 board/qualcomm/qcs404-evb/Kconfig
 create mode 100644 board/qualcomm/qcs404-evb/MAINTAINERS
 create mode 100644 board/qualcomm/qcs404-evb/Makefile
 create mode 100644 board/qualcomm/qcs404-evb/qcs404-evb.c
 create mode 100644 board/qualcomm/qcs404-evb/qcs404-evb.its
 create mode 100644 configs/dragonboard845c_defconfig
 create mode 100644 configs/qcs404evb_defconfig
 create mode 100644 doc/board/qualcomm/qcs404.rst
 create mode 100644 include/configs/dragonboard845c.h
 create mode 100644 include/configs/qcs404-evb.h
 create mode 100644 include/dt-bindings/clock/qcom,gcc-qcs404.h
 create mode 100644 include/dt-bindings/clock/qcom,gcc-sdm845.h

Comments

Peng Fan (OSS) July 12, 2022, 12:56 a.m. UTC | #1
On 7/8/2022 9:13 PM, Sumit Garg wrote:
> Add support for two new boards db845c and qcs404-evb:
> - db845c is a 96boards compliant platform aka RB3 based on Qualcomm
>    SDM845 SoC.
> - qcs404-evb is an evaluation board from Qualcomm based on QCS404 SoC.
> 
> Both these platforms have one thing in common that u-boot is chain-loaded
> in 64-bit mode via Android Boot Loader (ABL) which is an EFI application.
> For further details on chain-loading refer to platform specific

Just curious about the flow:
ABL(an EFI applicaiton)->load U-Boot->start U-Boot? or you mean U-Boot 
run as EFI application?

THanks,
Peng.

> documentation:
> - doc/board/qualcomm/sdm845.rst
> - doc/board/qualcomm/qcs404.rst
> 
> Changes in v2:
> - Added patch #1 to fix DT node overrides in starqltechn-uboot.dtsi.
> - Updated patch #2 commit description.
> - Fixed a typo (s/96Board/96Boards/) in patch #5.
> 
> Sumit Garg (9):
>    board: starqltechn: Align DT node overrides with sdm845.dtsi
>    arm64: dts: sdm845: Remove redundant u-boot DT properties
>    clocks: sdm845: Import qcom,gcc-sdm845.h
>    uart: sdm845: Fix debug UART pinmux
>    board: qualcomm: Add support for dragonboard845c
>    mmc: msm_sdhci: Add SDCC version 5.0.0 support
>    pinctrl: qcom: Add pinctrl driver for QCS404 SoC
>    clocks: qcom: Add clock driver for QCS404 SoC
>    board: qualcomm: Add support for QCS404 EVB
> 
>   arch/arm/dts/Makefile                         |   1 +
>   arch/arm/dts/dragonboard845c-uboot.dtsi       |  37 +++
>   arch/arm/dts/dragonboard845c.dts              |  44 ++++
>   arch/arm/dts/qcs404-evb-uboot.dtsi            |  24 ++
>   arch/arm/dts/qcs404-evb.dts                   |  81 ++++++
>   arch/arm/dts/sdm845.dtsi                      |   8 +-
>   arch/arm/dts/starqltechn-uboot.dtsi           |  18 +-
>   arch/arm/dts/starqltechn.dts                  |   2 +-
>   arch/arm/mach-snapdragon/Kconfig              |  25 ++
>   arch/arm/mach-snapdragon/Makefile             |   3 +
>   arch/arm/mach-snapdragon/clock-qcs404.c       |  30 +++
>   arch/arm/mach-snapdragon/clock-sdm845.c       |   3 +-
>   arch/arm/mach-snapdragon/clock-snapdragon.c   |   1 +
>   .../include/mach/sysmap-qcs404.h              |  13 +
>   arch/arm/mach-snapdragon/pinctrl-qcs404.c     |  55 ++++
>   arch/arm/mach-snapdragon/pinctrl-snapdragon.c |   1 +
>   arch/arm/mach-snapdragon/pinctrl-snapdragon.h |   1 +
>   arch/arm/mach-snapdragon/sysmap-qcs404.c      |  31 +++
>   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 +
>   board/qualcomm/qcs404-evb/Kconfig             |  15 ++
>   board/qualcomm/qcs404-evb/MAINTAINERS         |   6 +
>   board/qualcomm/qcs404-evb/Makefile            |   6 +
>   board/qualcomm/qcs404-evb/qcs404-evb.c        |  33 +++
>   board/qualcomm/qcs404-evb/qcs404-evb.its      |  64 +++++
>   configs/dragonboard845c_defconfig             |  28 ++
>   configs/qcs404evb_defconfig                   |  39 +++
>   doc/board/qualcomm/index.rst                  |   1 +
>   doc/board/qualcomm/qcs404.rst                 |  79 ++++++
>   doc/board/qualcomm/sdm845.rst                 | 100 ++++++-
>   drivers/mmc/msm_sdhci.c                       |  96 ++++---
>   include/configs/dragonboard845c.h             |  28 ++
>   include/configs/qcs404-evb.h                  |  27 ++
>   include/dt-bindings/clock/qcom,gcc-qcs404.h   | 180 +++++++++++++
>   include/dt-bindings/clock/qcom,gcc-sdm845.h   | 246 ++++++++++++++++++
>   38 files changed, 1363 insertions(+), 62 deletions(-)
>   create mode 100644 arch/arm/dts/dragonboard845c-uboot.dtsi
>   create mode 100644 arch/arm/dts/dragonboard845c.dts
>   create mode 100644 arch/arm/dts/qcs404-evb-uboot.dtsi
>   create mode 100644 arch/arm/dts/qcs404-evb.dts
>   create mode 100644 arch/arm/mach-snapdragon/clock-qcs404.c
>   create mode 100644 arch/arm/mach-snapdragon/include/mach/sysmap-qcs404.h
>   create mode 100644 arch/arm/mach-snapdragon/pinctrl-qcs404.c
>   create mode 100644 arch/arm/mach-snapdragon/sysmap-qcs404.c
>   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 board/qualcomm/qcs404-evb/Kconfig
>   create mode 100644 board/qualcomm/qcs404-evb/MAINTAINERS
>   create mode 100644 board/qualcomm/qcs404-evb/Makefile
>   create mode 100644 board/qualcomm/qcs404-evb/qcs404-evb.c
>   create mode 100644 board/qualcomm/qcs404-evb/qcs404-evb.its
>   create mode 100644 configs/dragonboard845c_defconfig
>   create mode 100644 configs/qcs404evb_defconfig
>   create mode 100644 doc/board/qualcomm/qcs404.rst
>   create mode 100644 include/configs/dragonboard845c.h
>   create mode 100644 include/configs/qcs404-evb.h
>   create mode 100644 include/dt-bindings/clock/qcom,gcc-qcs404.h
>   create mode 100644 include/dt-bindings/clock/qcom,gcc-sdm845.h
>
Sumit Garg July 12, 2022, 5:53 a.m. UTC | #2
Hi Peng,

On Tue, 12 Jul 2022 at 06:27, Peng Fan <peng.fan@oss.nxp.com> wrote:
>
>
>
> On 7/8/2022 9:13 PM, Sumit Garg wrote:
> > Add support for two new boards db845c and qcs404-evb:
> > - db845c is a 96boards compliant platform aka RB3 based on Qualcomm
> >    SDM845 SoC.
> > - qcs404-evb is an evaluation board from Qualcomm based on QCS404 SoC.
> >
> > Both these platforms have one thing in common that u-boot is chain-loaded
> > in 64-bit mode via Android Boot Loader (ABL) which is an EFI application.
> > For further details on chain-loading refer to platform specific
>
> Just curious about the flow:
> ABL(an EFI applicaiton)->load U-Boot->start U-Boot? or you mean U-Boot
> run as EFI application?
>

Here you can think of u-boot as just a replacement of the kernel image
within the boot.img. U-boot already has a provision for
LINUX_KERNEL_IMAGE_HEADER [1] which makes it look like a kernel image.
Boot chain:

XBL (edk2 proprietary source code) -> ABL(an EFI applicaiton) ->
U-boot (part of boot.img as a replacement of kernel) -> FIT image
(part of boot.img as a replacement of ramdisk)

Also, the final stage is configurable as u-boot allows interactions
with various media (eMMC, USB (WIP), network (WIP) etc.)

[1] https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/Kconfig#L82

-Sumit

> THanks,
> Peng.
>
> > documentation:
> > - doc/board/qualcomm/sdm845.rst
> > - doc/board/qualcomm/qcs404.rst
> >
> > Changes in v2:
> > - Added patch #1 to fix DT node overrides in starqltechn-uboot.dtsi.
> > - Updated patch #2 commit description.
> > - Fixed a typo (s/96Board/96Boards/) in patch #5.
> >
> > Sumit Garg (9):
> >    board: starqltechn: Align DT node overrides with sdm845.dtsi
> >    arm64: dts: sdm845: Remove redundant u-boot DT properties
> >    clocks: sdm845: Import qcom,gcc-sdm845.h
> >    uart: sdm845: Fix debug UART pinmux
> >    board: qualcomm: Add support for dragonboard845c
> >    mmc: msm_sdhci: Add SDCC version 5.0.0 support
> >    pinctrl: qcom: Add pinctrl driver for QCS404 SoC
> >    clocks: qcom: Add clock driver for QCS404 SoC
> >    board: qualcomm: Add support for QCS404 EVB
> >
> >   arch/arm/dts/Makefile                         |   1 +
> >   arch/arm/dts/dragonboard845c-uboot.dtsi       |  37 +++
> >   arch/arm/dts/dragonboard845c.dts              |  44 ++++
> >   arch/arm/dts/qcs404-evb-uboot.dtsi            |  24 ++
> >   arch/arm/dts/qcs404-evb.dts                   |  81 ++++++
> >   arch/arm/dts/sdm845.dtsi                      |   8 +-
> >   arch/arm/dts/starqltechn-uboot.dtsi           |  18 +-
> >   arch/arm/dts/starqltechn.dts                  |   2 +-
> >   arch/arm/mach-snapdragon/Kconfig              |  25 ++
> >   arch/arm/mach-snapdragon/Makefile             |   3 +
> >   arch/arm/mach-snapdragon/clock-qcs404.c       |  30 +++
> >   arch/arm/mach-snapdragon/clock-sdm845.c       |   3 +-
> >   arch/arm/mach-snapdragon/clock-snapdragon.c   |   1 +
> >   .../include/mach/sysmap-qcs404.h              |  13 +
> >   arch/arm/mach-snapdragon/pinctrl-qcs404.c     |  55 ++++
> >   arch/arm/mach-snapdragon/pinctrl-snapdragon.c |   1 +
> >   arch/arm/mach-snapdragon/pinctrl-snapdragon.h |   1 +
> >   arch/arm/mach-snapdragon/sysmap-qcs404.c      |  31 +++
> >   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 +
> >   board/qualcomm/qcs404-evb/Kconfig             |  15 ++
> >   board/qualcomm/qcs404-evb/MAINTAINERS         |   6 +
> >   board/qualcomm/qcs404-evb/Makefile            |   6 +
> >   board/qualcomm/qcs404-evb/qcs404-evb.c        |  33 +++
> >   board/qualcomm/qcs404-evb/qcs404-evb.its      |  64 +++++
> >   configs/dragonboard845c_defconfig             |  28 ++
> >   configs/qcs404evb_defconfig                   |  39 +++
> >   doc/board/qualcomm/index.rst                  |   1 +
> >   doc/board/qualcomm/qcs404.rst                 |  79 ++++++
> >   doc/board/qualcomm/sdm845.rst                 | 100 ++++++-
> >   drivers/mmc/msm_sdhci.c                       |  96 ++++---
> >   include/configs/dragonboard845c.h             |  28 ++
> >   include/configs/qcs404-evb.h                  |  27 ++
> >   include/dt-bindings/clock/qcom,gcc-qcs404.h   | 180 +++++++++++++
> >   include/dt-bindings/clock/qcom,gcc-sdm845.h   | 246 ++++++++++++++++++
> >   38 files changed, 1363 insertions(+), 62 deletions(-)
> >   create mode 100644 arch/arm/dts/dragonboard845c-uboot.dtsi
> >   create mode 100644 arch/arm/dts/dragonboard845c.dts
> >   create mode 100644 arch/arm/dts/qcs404-evb-uboot.dtsi
> >   create mode 100644 arch/arm/dts/qcs404-evb.dts
> >   create mode 100644 arch/arm/mach-snapdragon/clock-qcs404.c
> >   create mode 100644 arch/arm/mach-snapdragon/include/mach/sysmap-qcs404.h
> >   create mode 100644 arch/arm/mach-snapdragon/pinctrl-qcs404.c
> >   create mode 100644 arch/arm/mach-snapdragon/sysmap-qcs404.c
> >   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 board/qualcomm/qcs404-evb/Kconfig
> >   create mode 100644 board/qualcomm/qcs404-evb/MAINTAINERS
> >   create mode 100644 board/qualcomm/qcs404-evb/Makefile
> >   create mode 100644 board/qualcomm/qcs404-evb/qcs404-evb.c
> >   create mode 100644 board/qualcomm/qcs404-evb/qcs404-evb.its
> >   create mode 100644 configs/dragonboard845c_defconfig
> >   create mode 100644 configs/qcs404evb_defconfig
> >   create mode 100644 doc/board/qualcomm/qcs404.rst
> >   create mode 100644 include/configs/dragonboard845c.h
> >   create mode 100644 include/configs/qcs404-evb.h
> >   create mode 100644 include/dt-bindings/clock/qcom,gcc-qcs404.h
> >   create mode 100644 include/dt-bindings/clock/qcom,gcc-sdm845.h
> >
Peng Fan (OSS) July 12, 2022, 8:28 a.m. UTC | #3
On 7/12/2022 1:53 PM, Sumit Garg wrote:
> Hi Peng,
> 
> On Tue, 12 Jul 2022 at 06:27, Peng Fan <peng.fan@oss.nxp.com> wrote:
>>
>>
>>
>> On 7/8/2022 9:13 PM, Sumit Garg wrote:
>>> Add support for two new boards db845c and qcs404-evb:
>>> - db845c is a 96boards compliant platform aka RB3 based on Qualcomm
>>>     SDM845 SoC.
>>> - qcs404-evb is an evaluation board from Qualcomm based on QCS404 SoC.
>>>
>>> Both these platforms have one thing in common that u-boot is chain-loaded
>>> in 64-bit mode via Android Boot Loader (ABL) which is an EFI application.
>>> For further details on chain-loading refer to platform specific
>>
>> Just curious about the flow:
>> ABL(an EFI applicaiton)->load U-Boot->start U-Boot? or you mean U-Boot
>> run as EFI application?
>>
> 
> Here you can think of u-boot as just a replacement of the kernel image
> within the boot.img. U-boot already has a provision for
> LINUX_KERNEL_IMAGE_HEADER [1] which makes it look like a kernel image.
> Boot chain:
> 
> XBL (edk2 proprietary source code) -> ABL(an EFI applicaiton) ->
> U-boot (part of boot.img as a replacement of kernel) -> FIT image
> (part of boot.img as a replacement of ramdisk)

Oh. This is complicated boot flow. Just guess this is easy to
support Windows ARM and Android both.

> 
> Also, the final stage is configurable as u-boot allows interactions
> with various media (eMMC, USB (WIP), network (WIP) etc.)

U-Boot through XBL to access the various media or directly access.
I guess it is as U-Boot runs as EFI application, through XBL to access
the various media.

Thanks,
Peng.

> 
> [1] https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/Kconfig#L82
> 
> -Sumit
> 
>> THanks,
>> Peng.
>>
>>> documentation:
>>> - doc/board/qualcomm/sdm845.rst
>>> - doc/board/qualcomm/qcs404.rst
>>>
>>> Changes in v2:
>>> - Added patch #1 to fix DT node overrides in starqltechn-uboot.dtsi.
>>> - Updated patch #2 commit description.
>>> - Fixed a typo (s/96Board/96Boards/) in patch #5.
>>>
>>> Sumit Garg (9):
>>>     board: starqltechn: Align DT node overrides with sdm845.dtsi
>>>     arm64: dts: sdm845: Remove redundant u-boot DT properties
>>>     clocks: sdm845: Import qcom,gcc-sdm845.h
>>>     uart: sdm845: Fix debug UART pinmux
>>>     board: qualcomm: Add support for dragonboard845c
>>>     mmc: msm_sdhci: Add SDCC version 5.0.0 support
>>>     pinctrl: qcom: Add pinctrl driver for QCS404 SoC
>>>     clocks: qcom: Add clock driver for QCS404 SoC
>>>     board: qualcomm: Add support for QCS404 EVB
>>>
>>>    arch/arm/dts/Makefile                         |   1 +
>>>    arch/arm/dts/dragonboard845c-uboot.dtsi       |  37 +++
>>>    arch/arm/dts/dragonboard845c.dts              |  44 ++++
>>>    arch/arm/dts/qcs404-evb-uboot.dtsi            |  24 ++
>>>    arch/arm/dts/qcs404-evb.dts                   |  81 ++++++
>>>    arch/arm/dts/sdm845.dtsi                      |   8 +-
>>>    arch/arm/dts/starqltechn-uboot.dtsi           |  18 +-
>>>    arch/arm/dts/starqltechn.dts                  |   2 +-
>>>    arch/arm/mach-snapdragon/Kconfig              |  25 ++
>>>    arch/arm/mach-snapdragon/Makefile             |   3 +
>>>    arch/arm/mach-snapdragon/clock-qcs404.c       |  30 +++
>>>    arch/arm/mach-snapdragon/clock-sdm845.c       |   3 +-
>>>    arch/arm/mach-snapdragon/clock-snapdragon.c   |   1 +
>>>    .../include/mach/sysmap-qcs404.h              |  13 +
>>>    arch/arm/mach-snapdragon/pinctrl-qcs404.c     |  55 ++++
>>>    arch/arm/mach-snapdragon/pinctrl-snapdragon.c |   1 +
>>>    arch/arm/mach-snapdragon/pinctrl-snapdragon.h |   1 +
>>>    arch/arm/mach-snapdragon/sysmap-qcs404.c      |  31 +++
>>>    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 +
>>>    board/qualcomm/qcs404-evb/Kconfig             |  15 ++
>>>    board/qualcomm/qcs404-evb/MAINTAINERS         |   6 +
>>>    board/qualcomm/qcs404-evb/Makefile            |   6 +
>>>    board/qualcomm/qcs404-evb/qcs404-evb.c        |  33 +++
>>>    board/qualcomm/qcs404-evb/qcs404-evb.its      |  64 +++++
>>>    configs/dragonboard845c_defconfig             |  28 ++
>>>    configs/qcs404evb_defconfig                   |  39 +++
>>>    doc/board/qualcomm/index.rst                  |   1 +
>>>    doc/board/qualcomm/qcs404.rst                 |  79 ++++++
>>>    doc/board/qualcomm/sdm845.rst                 | 100 ++++++-
>>>    drivers/mmc/msm_sdhci.c                       |  96 ++++---
>>>    include/configs/dragonboard845c.h             |  28 ++
>>>    include/configs/qcs404-evb.h                  |  27 ++
>>>    include/dt-bindings/clock/qcom,gcc-qcs404.h   | 180 +++++++++++++
>>>    include/dt-bindings/clock/qcom,gcc-sdm845.h   | 246 ++++++++++++++++++
>>>    38 files changed, 1363 insertions(+), 62 deletions(-)
>>>    create mode 100644 arch/arm/dts/dragonboard845c-uboot.dtsi
>>>    create mode 100644 arch/arm/dts/dragonboard845c.dts
>>>    create mode 100644 arch/arm/dts/qcs404-evb-uboot.dtsi
>>>    create mode 100644 arch/arm/dts/qcs404-evb.dts
>>>    create mode 100644 arch/arm/mach-snapdragon/clock-qcs404.c
>>>    create mode 100644 arch/arm/mach-snapdragon/include/mach/sysmap-qcs404.h
>>>    create mode 100644 arch/arm/mach-snapdragon/pinctrl-qcs404.c
>>>    create mode 100644 arch/arm/mach-snapdragon/sysmap-qcs404.c
>>>    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 board/qualcomm/qcs404-evb/Kconfig
>>>    create mode 100644 board/qualcomm/qcs404-evb/MAINTAINERS
>>>    create mode 100644 board/qualcomm/qcs404-evb/Makefile
>>>    create mode 100644 board/qualcomm/qcs404-evb/qcs404-evb.c
>>>    create mode 100644 board/qualcomm/qcs404-evb/qcs404-evb.its
>>>    create mode 100644 configs/dragonboard845c_defconfig
>>>    create mode 100644 configs/qcs404evb_defconfig
>>>    create mode 100644 doc/board/qualcomm/qcs404.rst
>>>    create mode 100644 include/configs/dragonboard845c.h
>>>    create mode 100644 include/configs/qcs404-evb.h
>>>    create mode 100644 include/dt-bindings/clock/qcom,gcc-qcs404.h
>>>    create mode 100644 include/dt-bindings/clock/qcom,gcc-sdm845.h
>>>
Sumit Garg July 12, 2022, 9:07 a.m. UTC | #4
On Tue, 12 Jul 2022 at 13:58, Peng Fan <peng.fan@oss.nxp.com> wrote:
>
>
>
> On 7/12/2022 1:53 PM, Sumit Garg wrote:
> > Hi Peng,
> >
> > On Tue, 12 Jul 2022 at 06:27, Peng Fan <peng.fan@oss.nxp.com> wrote:
> >>
> >>
> >>
> >> On 7/8/2022 9:13 PM, Sumit Garg wrote:
> >>> Add support for two new boards db845c and qcs404-evb:
> >>> - db845c is a 96boards compliant platform aka RB3 based on Qualcomm
> >>>     SDM845 SoC.
> >>> - qcs404-evb is an evaluation board from Qualcomm based on QCS404 SoC.
> >>>
> >>> Both these platforms have one thing in common that u-boot is chain-loaded
> >>> in 64-bit mode via Android Boot Loader (ABL) which is an EFI application.
> >>> For further details on chain-loading refer to platform specific
> >>
> >> Just curious about the flow:
> >> ABL(an EFI applicaiton)->load U-Boot->start U-Boot? or you mean U-Boot
> >> run as EFI application?
> >>
> >
> > Here you can think of u-boot as just a replacement of the kernel image
> > within the boot.img. U-boot already has a provision for
> > LINUX_KERNEL_IMAGE_HEADER [1] which makes it look like a kernel image.
> > Boot chain:
> >
> > XBL (edk2 proprietary source code) -> ABL(an EFI applicaiton) ->
> > U-boot (part of boot.img as a replacement of kernel) -> FIT image
> > (part of boot.img as a replacement of ramdisk)
>
> Oh. This is complicated boot flow. Just guess this is easy to
> support Windows ARM and Android both.
>

Currently this u-boot port is targeted for embedded use-cases.

> >
> > Also, the final stage is configurable as u-boot allows interactions
> > with various media (eMMC, USB (WIP), network (WIP) etc.)
>
> U-Boot through XBL to access the various media or directly access.
> I guess it is as U-Boot runs as EFI application, through XBL to access
> the various media.

No currently u-boot is loaded by ABL (EFI application). So it's a
direct access to the various media.

-Sumit

>
> Thanks,
> Peng.
>
> >
> > [1] https://source.denx.de/u-boot/u-boot/-/blob/master/arch/arm/Kconfig#L82
> >
> > -Sumit
> >
> >> THanks,
> >> Peng.
> >>
> >>> documentation:
> >>> - doc/board/qualcomm/sdm845.rst
> >>> - doc/board/qualcomm/qcs404.rst
> >>>
> >>> Changes in v2:
> >>> - Added patch #1 to fix DT node overrides in starqltechn-uboot.dtsi.
> >>> - Updated patch #2 commit description.
> >>> - Fixed a typo (s/96Board/96Boards/) in patch #5.
> >>>
> >>> Sumit Garg (9):
> >>>     board: starqltechn: Align DT node overrides with sdm845.dtsi
> >>>     arm64: dts: sdm845: Remove redundant u-boot DT properties
> >>>     clocks: sdm845: Import qcom,gcc-sdm845.h
> >>>     uart: sdm845: Fix debug UART pinmux
> >>>     board: qualcomm: Add support for dragonboard845c
> >>>     mmc: msm_sdhci: Add SDCC version 5.0.0 support
> >>>     pinctrl: qcom: Add pinctrl driver for QCS404 SoC
> >>>     clocks: qcom: Add clock driver for QCS404 SoC
> >>>     board: qualcomm: Add support for QCS404 EVB
> >>>
> >>>    arch/arm/dts/Makefile                         |   1 +
> >>>    arch/arm/dts/dragonboard845c-uboot.dtsi       |  37 +++
> >>>    arch/arm/dts/dragonboard845c.dts              |  44 ++++
> >>>    arch/arm/dts/qcs404-evb-uboot.dtsi            |  24 ++
> >>>    arch/arm/dts/qcs404-evb.dts                   |  81 ++++++
> >>>    arch/arm/dts/sdm845.dtsi                      |   8 +-
> >>>    arch/arm/dts/starqltechn-uboot.dtsi           |  18 +-
> >>>    arch/arm/dts/starqltechn.dts                  |   2 +-
> >>>    arch/arm/mach-snapdragon/Kconfig              |  25 ++
> >>>    arch/arm/mach-snapdragon/Makefile             |   3 +
> >>>    arch/arm/mach-snapdragon/clock-qcs404.c       |  30 +++
> >>>    arch/arm/mach-snapdragon/clock-sdm845.c       |   3 +-
> >>>    arch/arm/mach-snapdragon/clock-snapdragon.c   |   1 +
> >>>    .../include/mach/sysmap-qcs404.h              |  13 +
> >>>    arch/arm/mach-snapdragon/pinctrl-qcs404.c     |  55 ++++
> >>>    arch/arm/mach-snapdragon/pinctrl-snapdragon.c |   1 +
> >>>    arch/arm/mach-snapdragon/pinctrl-snapdragon.h |   1 +
> >>>    arch/arm/mach-snapdragon/sysmap-qcs404.c      |  31 +++
> >>>    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 +
> >>>    board/qualcomm/qcs404-evb/Kconfig             |  15 ++
> >>>    board/qualcomm/qcs404-evb/MAINTAINERS         |   6 +
> >>>    board/qualcomm/qcs404-evb/Makefile            |   6 +
> >>>    board/qualcomm/qcs404-evb/qcs404-evb.c        |  33 +++
> >>>    board/qualcomm/qcs404-evb/qcs404-evb.its      |  64 +++++
> >>>    configs/dragonboard845c_defconfig             |  28 ++
> >>>    configs/qcs404evb_defconfig                   |  39 +++
> >>>    doc/board/qualcomm/index.rst                  |   1 +
> >>>    doc/board/qualcomm/qcs404.rst                 |  79 ++++++
> >>>    doc/board/qualcomm/sdm845.rst                 | 100 ++++++-
> >>>    drivers/mmc/msm_sdhci.c                       |  96 ++++---
> >>>    include/configs/dragonboard845c.h             |  28 ++
> >>>    include/configs/qcs404-evb.h                  |  27 ++
> >>>    include/dt-bindings/clock/qcom,gcc-qcs404.h   | 180 +++++++++++++
> >>>    include/dt-bindings/clock/qcom,gcc-sdm845.h   | 246 ++++++++++++++++++
> >>>    38 files changed, 1363 insertions(+), 62 deletions(-)
> >>>    create mode 100644 arch/arm/dts/dragonboard845c-uboot.dtsi
> >>>    create mode 100644 arch/arm/dts/dragonboard845c.dts
> >>>    create mode 100644 arch/arm/dts/qcs404-evb-uboot.dtsi
> >>>    create mode 100644 arch/arm/dts/qcs404-evb.dts
> >>>    create mode 100644 arch/arm/mach-snapdragon/clock-qcs404.c
> >>>    create mode 100644 arch/arm/mach-snapdragon/include/mach/sysmap-qcs404.h
> >>>    create mode 100644 arch/arm/mach-snapdragon/pinctrl-qcs404.c
> >>>    create mode 100644 arch/arm/mach-snapdragon/sysmap-qcs404.c
> >>>    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 board/qualcomm/qcs404-evb/Kconfig
> >>>    create mode 100644 board/qualcomm/qcs404-evb/MAINTAINERS
> >>>    create mode 100644 board/qualcomm/qcs404-evb/Makefile
> >>>    create mode 100644 board/qualcomm/qcs404-evb/qcs404-evb.c
> >>>    create mode 100644 board/qualcomm/qcs404-evb/qcs404-evb.its
> >>>    create mode 100644 configs/dragonboard845c_defconfig
> >>>    create mode 100644 configs/qcs404evb_defconfig
> >>>    create mode 100644 doc/board/qualcomm/qcs404.rst
> >>>    create mode 100644 include/configs/dragonboard845c.h
> >>>    create mode 100644 include/configs/qcs404-evb.h
> >>>    create mode 100644 include/dt-bindings/clock/qcom,gcc-qcs404.h
> >>>    create mode 100644 include/dt-bindings/clock/qcom,gcc-sdm845.h
> >>>