docs(msm8916): document new platforms

Document the new platform build options for the MSM8916 port which now
supports multiple similar Qualcomm SoCs:

  - Snapdragon 410 (PLAT=msm8916) as before
  - Snapdragon 615 (PLAT=msm8939)
  - Snapdragon 210 (PLAT=msm8909)
  - Snapdragon X5 Modem (PLAT=mdm9607)

The latter two use AArch32-only ARM Cortex-A7 cores that only support
using BL32/SP_MIN and not BL31 on AArch64.

Change-Id: I9fffe60dd0ad2acc18f006f11e91854b9e8dcb8f
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
This commit is contained in:
Stephan Gerhold 2023-04-02 16:06:17 +02:00
parent 78aac78ad2
commit c97c7ebfec
2 changed files with 40 additions and 20 deletions

View file

@ -698,7 +698,10 @@ QTI MSM8916 platform port
:|M|: Nikita Travkin <nikita@trvn.ru> :|M|: Nikita Travkin <nikita@trvn.ru>
:|G|: `TravMurav`_ :|G|: `TravMurav`_
:|F|: docs/plat/qti-msm8916.rst :|F|: docs/plat/qti-msm8916.rst
:|F|: plat/qti/mdm9607/
:|F|: plat/qti/msm8909/
:|F|: plat/qti/msm8916/ :|F|: plat/qti/msm8916/
:|F|: plat/qti/msm8939/
Raspberry Pi 3 platform port Raspberry Pi 3 platform port
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View file

@ -1,16 +1,27 @@
Qualcomm Snapdragon 410 (MSM8916/APQ8016) Qualcomm MSM8916
========================================= ================
The MSM8916 platform port in TF-A supports multiple similar Qualcomm SoCs:
The `Qualcomm Snapdragon 410`_ is Qualcomm's first 64-bit SoC, released in 2014 +-----------------------+----------------+-------------------+-----------------+
with four ARM Cortex-A53 cores. There are differents variants (MSM8916, | System-on-Chip (SoC) | TF-A Platform | Application CPU | Supports |
APQ8016(E), ...) that are all very similar. A popular device based on APQ8016E +=======================+================+===================+=================+
is the `DragonBoard 410c`_ single-board computer, but the SoC is also used in | `Snapdragon 410`_ |``PLAT=msm8916``| 4x ARM Cortex-A53 | AArch64/AArch32 |
various mid-range smartphones/tablets. | (MSM8x16, APQ8016(E)) | | | |
| (`DragonBoard 410c`_) | | | |
+-----------------------+----------------+-------------------+-----------------+
| `Snapdragon 615`_ |``PLAT=msm8939``| 4x ARM Cortex-A53 | AArch64/AArch32 |
| (MSM8x39, APQ8039) | | 4x ARM Cortex-A53 | |
+-----------------------+----------------+-------------------+-----------------+
| `Snapdragon 210`_ |``PLAT=msm8909``| 4x ARM Cortex-A7 | AArch32 only |
| (MSM8x09, APQ8009) | | | |
+-----------------------+----------------+-------------------+-----------------+
| `Snapdragon X5 Modem`_|``PLAT=mdm9607``| 1x ARM Cortex-A7 | AArch32 only |
| (MDM9x07) | | | |
+-----------------------+----------------+-------------------+-----------------+
The TF-A port for MSM8916 provides a minimal, community-maintained It provides a minimal, community-maintained EL3 firmware and PSCI implementation,
EL3 firmware. It is primarily based on information from the public based on information from the public `Snapdragon 410E Technical Reference Manual`_
`Snapdragon 410E Technical Reference Manual`_ combined with a lot of combined with a lot of trial and error to actually make it work.
trial and error to actually make it work.
.. note:: .. note::
Unlike the :doc:`QTI SC7180/SC7280 <qti>` ports, this port does **not** Unlike the :doc:`QTI SC7180/SC7280 <qti>` ports, this port does **not**
@ -56,24 +67,27 @@ booted using an additional shim loader such as `tfalkstub`_.
Build Build
----- -----
It is possible to build for either AArch64 or AArch32. AArch64 is the preferred It is possible to build for either AArch64 or AArch32. Some platforms use 32-bit
build option. CPUs that only support AArch32 (see table above). For all others AArch64 is the
preferred build option.
AArch64 (BL31) AArch64 (BL31)
^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
Setup the cross compiler for AArch64 and build BL31 for ``msm8916``:: Setup the cross compiler for AArch64 and build BL31 for one of the platforms in
the table above::
$ make CROSS_COMPILE=aarch64-none-elf- PLAT=msm8916 $ make CROSS_COMPILE=aarch64-none-elf- PLAT=...
The BL31 ELF image is generated in ``build/msm8916/release/bl31/bl31.elf``. The BL31 ELF image is generated in ``build/$PLAT/release/bl31/bl31.elf``.
AArch32 (BL32/SP_MIN) AArch32 (BL32/SP_MIN)
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
Setup the cross compiler for AArch32 and build BL32 with SP_MIN for ``msm8916``:: Setup the cross compiler for AArch32 and build BL32 with SP_MIN for one of the
platforms in the table above::
$ make CROSS_COMPILE=arm-none-eabi- PLAT=msm8916 ARCH=aarch32 AARCH32_SP=sp_min $ make CROSS_COMPILE=arm-none-eabi- PLAT=... ARCH=aarch32 AARCH32_SP=sp_min
The BL32 ELF image is generated in ``build/msm8916/release/bl32/bl32.elf``. The BL32 ELF image is generated in ``build/$PLAT/release/bl32/bl32.elf``.
Build Options Build Options
------------- -------------
@ -186,7 +200,10 @@ this (with ``DEBUG=1``, otherwise only the ``NOTICE`` lines are shown)::
[0] welcome to lk [0] welcome to lk
... ...
.. _Qualcomm Snapdragon 410: https://www.qualcomm.com/products/snapdragon-processors-410 .. _Snapdragon 210: https://www.qualcomm.com/products/snapdragon-processors-210
.. _Snapdragon 410: https://www.qualcomm.com/products/snapdragon-processors-410
.. _Snapdragon 615: https://www.qualcomm.com/products/snapdragon-processors-615
.. _Snapdragon X5 Modem: https://www.qualcomm.com/products/snapdragon-modems-4g-lte-x5
.. _DragonBoard 410c: https://www.96boards.org/product/dragonboard410c/ .. _DragonBoard 410c: https://www.96boards.org/product/dragonboard410c/
.. _Snapdragon 410E Technical Reference Manual: https://developer.qualcomm.com/download/sd410/snapdragon-410e-technical-reference-manual.pdf .. _Snapdragon 410E Technical Reference Manual: https://developer.qualcomm.com/download/sd410/snapdragon-410e-technical-reference-manual.pdf
.. _U-Boot for DragonBoard 410c: https://u-boot.readthedocs.io/en/latest/board/qualcomm/dragonboard410c.html .. _U-Boot for DragonBoard 410c: https://u-boot.readthedocs.io/en/latest/board/qualcomm/dragonboard410c.html