[PATCH] doc: qcom: dragonwing: Improve build and installation documentation

Balaji Selvanathan balaji.selvanathan at oss.qualcomm.com
Sun May 3 06:34:12 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>
---
 doc/board/qualcomm/dragonwing.rst | 112 +++++++++++++++++++++++++++++++++-----
 1 file changed, 98 insertions(+), 14 deletions(-)

diff --git a/doc/board/qualcomm/dragonwing.rst b/doc/board/qualcomm/dragonwing.rst
index d4899415309..fbb50a90290 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,115 @@ 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_qcs9100_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
+
+.. note::
+   Some toolchains may treat incompatible pointer types as errors.
+   The extra KCFLAGS argument can be used to work around this when needed:
+
+   .. code-block:: bash
+
+     $ make -j8 KCFLAGS+=" -Wno-error=incompatible-pointer-types" 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:
 
-  $ qtestsign -v6 aboot -o u-boot.mbn u-boot.elf
+.. code-block:: bash
+
+  $ 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
+
+  $ fastboot flash uefi_a u-boot.mbn
 
-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.
+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: bb0f3eebb3c196d9b6efbbd1e5aa9b16abbb9ad6
change-id: 20260503-iq9-868091a47496

Best regards,
-- 
Balaji Selvanathan <balaji.selvanathan at oss.qualcomm.com>



More information about the U-Boot mailing list