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