master
rst 90 lines 2.71 KB
Raw
1 Xilinx Zynq board (``xilinx-zynq-a9``)
2 ======================================
3 The Zynq 7000 family is based on the AMD SoC architecture. These products
4 integrate a feature-rich dual or single-core Arm Cortex-A9 MPCore based
5 processing system (PS) and AMD programmable logic (PL) in a single device.
6
7 The SoC is documented in the
8 `Zynq 7000 Technical Reference manual <https://docs.amd.com/r/en-US/ug585-zynq-7000-SoC-TRM/Zynq-7000-SoC-Technical-Reference-Manual>`__.
9
10 The QEMU xilinx-zynq-a9 board supports the following devices:
11
12 - Arm Cortex-A9 MPCore CPU
13
14 - Cortex-A9 CPUs
15 - GIC v1 interrupt controller
16 - Generic timer
17 - Watchdog timer
18
19 - OCM 256KB
20 - SMC SRAM 64MB
21 - Zynq SLCR
22 - SPI x2
23 - QSPI
24 - UART
25 - TTC x2
26 - Gigabit Ethernet Controller x2
27 - SD Controller x2
28 - XADC
29 - Arm PrimeCell DMA Controller
30 - DDR Memory
31 - USB 2.0 x2
32
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
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
86 .. code-block:: bash
87
88 -machine boot-mode=qspi
89
90 Supported values are ``jtag``, ``sd``, ``qspi`` and ``nor``.