[PATCH v2] doc: qcom: dragonwing: Improve build and installation documentation
Balaji Selvanathan
balaji.selvanathan at oss.qualcomm.com
Thu May 7 17:36:26 CEST 2026
Enhance the Qualcomm DragonWing board documentation with clearer
and more detailed build instructions.
Signed-off-by: Balaji Selvanathan <balaji.selvanathan at oss.qualcomm.com>
---
Changes in v2:
- Removed reference to KCFLAGS
- Changed qcom_qcs9100_defconfig to qcom_lemans_defconfig
- Link to v1: https://lore.kernel.org/u-boot/20260503-iq9-v1-1-0eb29e4f8dc8@oss.qualcomm.com/
---
doc/board/qualcomm/dragonwing.rst | 104 +++++++++++++++++++++++++++++++++-----
1 file changed, 90 insertions(+), 14 deletions(-)
diff --git a/doc/board/qualcomm/dragonwing.rst b/doc/board/qualcomm/dragonwing.rst
index d4899415309..4491a33b76c 100644
--- a/doc/board/qualcomm/dragonwing.rst
+++ b/doc/board/qualcomm/dragonwing.rst
@@ -4,9 +4,11 @@
Qualcomm DragonWing
========================================
-Qualcomm DragonWing are industrial-grade boards that provides various series
-of processors such as IQ6 (QCS615), IQ8 (QCS8300) and IQ9 (QCS9100).
-These SoCs are used for factory/industry based applications.
+Qualcomm DragonWing boards are industrial-grade platforms targeting factory
+and edge applications. They span multiple product families, including
+IQ6, IQ8, and IQ9, which are based on Qualcomm QCS615, QCS8300, and
+QCS9100 series SoCs respectively
+
More information can be found on the `Qualcomm's IQ6 product page`_,
`Qualcomm's IQ8 product page`_ and `Qualcomm's IQ9 product page`_.
@@ -16,33 +18,107 @@ More information can be found on the `Qualcomm's IQ6 product page`_,
Installation
------------
-First, setup ``CROSS_COMPILE`` for aarch64. Then, build U-Boot for ``QCS615``, ``QCS8300`` or ``QCS9100``::
+
+Prerequisites
+~~~~~~~~~~~~~
+
+Download the qtestsign utility:
+
+.. code-block:: bash
+
+ $ git clone https://github.com/msm8916-mainline/qtestsign qtestsign
+
+Build Steps
+~~~~~~~~~~~
+
+Download the U-Boot source code. See the :doc:`../../build/source` documentation
+for instructions on obtaining the U-Boot source.
+
+Go to the U-Boot source directory:
+
+.. code-block:: bash
+
+ $ cd u-boot
+
+Configure the build for desired platform. This command creates the required
+configuration files in the .output directory. Following gives command for each
+platform (choose based on your platform):
+
+Generate the default configuration for the IQ-615 platform:
+
+.. code-block:: bash
+
+ $ make O=.output qcom_qcs615_defconfig
+
+Generate the default configuration for the IQ-8 platform:
+
+.. code-block:: bash
+
+ $ make O=.output qcom_qcs8300_defconfig
+
+Generate the default configuration for the IQ-9 platform:
+
+.. code-block:: bash
+
+ $ make O=.output qcom_lemans_defconfig
+
+Build U-Boot using the cross compile toolchain. First, setup ``CROSS_COMPILE``
+for aarch64:
+
+.. code-block:: bash
$ export CROSS_COMPILE=<aarch64 toolchain prefix>
- $ make qcom_qcs8300_defconfig
- $ make -j8 u-boot.mbn
+
+Compile the U-Boot source using the GCC cross compile toolchain:
+
+.. code-block:: bash
+
+ $ make -j8 CROSS_COMPILE=<aarch64 toolchain prefix> O=.output
+
+Expected result:
+
+- The U-Boot build completes without errors.
+- The ``u-boot.elf`` file is available in the ``.output`` directory and is ready for further packaging or flashing.
+
+Convert U-Boot image (ELF to MBN)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Although the board does not have secure boot set up by default,
the firmware still expects firmware ELF images to be "signed". The signature
does not provide any security in this case, but it provides the firmware with
some required metadata.
-To "sign" ``u-boot.elf`` you can use e.g. `qtestsign`_::
+Move to .output folder:
+
+.. code-block:: bash
- $ qtestsign -v6 aboot -o u-boot.mbn u-boot.elf
+ $ cd .output
+
+Generate the signed MBN image. To "sign" ``u-boot.elf`` you can use e.g. `qtestsign`_:
+
+.. code-block:: bash
+
+ $ python <qtestsign path>/qtestsign.py -v6 aboot -o u-boot.mbn u-boot.elf
+
+This command generates the signed u-boot.mbn file required for flashing.
Then flash the resulting ``u-boot.mbn`` to the ``uefi_a`` partition
-on your device with ``fastboot flash uefi_a u-boot.mbn``.
+(or the appropriate UEFI partition for your board):
-U-Boot should be running after a reboot (``fastboot reboot``).
+.. code-block:: bash
-Note that fastboot is not yet supported in U-Boot on Dragonwing boards, as a result, to flash
-back the original firmware, or new versoins of the U-Boot, EDL mode must be used.
+ $ fastboot flash uefi_a u-boot.mbn
+
+U-Boot should be running after a reboot (``fastboot reboot``).
A tool like bkerler's `edl`_ can be used for flashing with the firehose loader (for example, for QCS9100
-the firehose loader can be obtained from `dragonwing IQ9 bootbinaries`.) ::
+the firehose loader can be obtained from `dragonwing IQ9 bootbinaries`).
+
+For example:
+
+.. code-block:: bash
-$ edl.py --loader /path/to/prog_firehose_ddr.elf w uefi_a u-boot.mbn
+ $ edl.py --loader /path/to/prog_firehose_ddr.elf w uefi_a u-boot.mbn
.. _qtestsign: https://github.com/msm8916-mainline/qtestsign
.. _edl: https://github.com/bkerler/edl
---
base-commit: 3cdd19089f1b1b7cd08530f33ff4708abcfd426c
change-id: 20260507-doc-a5c3a8b1c8d7
Best regards,
--
Balaji Selvanathan <balaji.selvanathan at oss.qualcomm.com>
More information about the U-Boot
mailing list