@samitouri / QOSamiQemu / commits / 2224a77f41

docs/system/arm: Document Zynq Buildroot boot

The Zynq board documentation only showed a generic direct kernel boot command. Add Buildroot ZC702 commands for booting through U-Boot proper with the generic loader and for direct Linux boot from the generated SD image. Signed-off-by: Bin Meng <bin.meng@processmission.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Message-id: 20260628114925.418293-1-bin.meng@processmission.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Bin Meng committed Jun 28, 2026 at 19:49 UTC 2224a77f413d669f831a417608b19391cdf15391
1 file changed +47 -7
docs/system/arm/xlnx-zynq.rst
+47 -7
@@ -30,16 +30,56 @@ The QEMU xilinx-zynq-a9 board supports the following devices:
30 - DDR Memory
31 - USB 2.0 x2
32
33 -Running
34 -"""""""
35 -Direct Linux boot of a generic Arm upstream Linux kernel:
33 +Running Buildroot ZC702 Images
34 +""""""""""""""""""""""""""""""
35 +
36 +Buildroot has a ZC702 defconfig. Buildroot 2026.05 release is tested at the
37 +time of writing. From the Buildroot source tree:
38 +
39 +.. code-block:: bash
40 +
41 + $ make zynq_zc702_defconfig
42 + $ make
43 +
44 +The generated files are in ``output/images/``. The examples below use:
45 +
46 + * ``u-boot.bin``
47 + * ``uImage``
48 + * ``sdcard.img``
49 +
50 +QEMU's SD card model requires a power-of-two image size. Work on a copy
51 +of the Buildroot SD image and resize the copy, not the original output:
52 +
53 +.. code-block:: bash
54 +
55 + $ cp output/images/sdcard.img sdcard-qemu.img
56 + $ qemu-img resize -f raw sdcard-qemu.img 128M
57 +
58 +To boot through the U-Boot image generated by Buildroot, use the generic
59 +loader device to place the raw ``u-boot.bin`` at the address it was linked
60 +for and start the CPU there. The ``zynq_zc702_defconfig`` U-Boot image is
61 +U-Boot proper, not a Zynq boot ROM image, and is linked at ``0x04000000``:
62 +
63 +.. code-block:: bash
64 +
65 + $ qemu-system-arm -M xilinx-zynq-a9 -m 1G \
66 + -machine boot-mode=sd \
67 + -display none -serial null -serial mon:stdio \
68 + -device loader,file=output/images/u-boot.bin,addr=0x04000000,cpu-num=0 \
69 + -drive file=sdcard-qemu.img,if=sd,format=raw
70 +
71 +Direct Linux boot of the generated Buildroot image is also supported. The Zynq
72 +ZC702 DTB is generated by Buildroot and is located in
73 +``output/images/zynq-zc702.dtb``. The kernel image is generated as a uImage:
74
75 .. code-block:: bash
76
39 - $ qemu-system-aarch64 -M xilinx-zynq-a9 \
40 - -dtb zynq-zc702.dtb -serial null -serial mon:stdio \
41 - -display none -m 1024 \
42 - -initrd rootfs.cpio.gz -kernel zImage
77 + $ qemu-system-arm -M xilinx-zynq-a9 -m 1G \
78 + -display none -serial null -serial mon:stdio \
79 + -kernel output/images/uImage \
80 + -dtb output/images/zynq-zc702.dtb \
81 + -append "console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait" \
82 + -drive file=sdcard-qemu.img,if=sd,format=raw
83
84 For configuring the boot-mode provide the following on the command line:
85