3907b1ac66
Since U-Boot supported SPL for Zynq boards at v2014.04 release, it
became much easier to build a system. At that time, however, users
still needed to manually copy ps7_init.c/h to the U-Boot source tree
to generate a working SPL image because ps7_init.c/h output from
Xilinx tools are not compatible with GPL.
Later, the license problem was solved when Xilinx tools became able
to output the GPL-compatible variants (ps7_init_gpl.c/h) as well.
U-Boot v2015.07 or later includes ps7_init_gpl.c/h for major Zynq
boards so that users can build a boot image straight away.
Now Buildroot supports 3 boards (Zedboard, MicroZed, ZC706) without
any manual intervention. This is a good thing itself, but commit
b9cd72cdbf
("zynq_zc706: bump U-Boot to xilinx-v2016.2") entirely
dropped the information about custom ps7_init files.
This commit provides up-to-date guidance for how to customize the
ps7_init files.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
Acked-by: Alistair Francis <alistair.francis@xilinx.com>
[Thomas: rewording and formatting tweaks.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
87 lines
3.3 KiB
Plaintext
87 lines
3.3 KiB
Plaintext
This is the Buildroot support for Zynq boards. Zynq boards are available from
|
|
Xilinx and some third party vendors, but the build procedure is very similar.
|
|
|
|
Currently, three boards are natively supported by Buildroot:
|
|
- Xilinx ZC706 board (zynq_zc706_defconfig)
|
|
- Avnet ZedBoard (zynq_zed_defconfig)
|
|
- Avnet MicroZed (zynq_microzed_defconfig)
|
|
|
|
Steps to create a working system for a Zynq board:
|
|
|
|
1) Configuration (do one of the following)
|
|
make zynq_zc706_defconfig (ZC706)
|
|
make zynq_zed_defconfig (Zedboard)
|
|
make zynq_microzed_defconfig (MicroZed)
|
|
2) make
|
|
3) All needed files will be available in the output/images directory.
|
|
Create a FAT32 partition at the beginning of your SD Card and copy files:
|
|
- boot.bin
|
|
- u-boot.img
|
|
- uImage
|
|
- uramdisk.image.gz (should be renamed from rootfs.cpio.uboot)
|
|
- devicetree.dtb (should be renamed from zynq-***.dtb)
|
|
into your SD card
|
|
4) boot your board
|
|
|
|
You can alter the booting procedure by creating a file uEnv.txt
|
|
in the root of the SD card. It is a plain text file in format
|
|
<key>=<value> one per line:
|
|
|
|
kernel_image=myimage
|
|
modeboot=myboot
|
|
myboot=...
|
|
|
|
Note:
|
|
The DTB for MicroZed is the same as the one for the Zedboard (zynq-zed.dtb),
|
|
and this is the recommended solution, see
|
|
https://forums.xilinx.com/t5/Embedded-Linux/Microzed-default-device-tree-dts/td-p/432856.
|
|
|
|
References:
|
|
- ZC706 information including schematics, reference designs, and manuals are
|
|
available from
|
|
http://www.xilinx.com/products/boards-and-kits/ek-z7-zc706-g.html.
|
|
|
|
- Zedboard/Microzed information including schematics, reference designs, and
|
|
manuals are available from http://www.zedboard.org .
|
|
|
|
Support for other boards:
|
|
|
|
If you want to build a system for other boards based on the same SoC
|
|
(for ex. Digilent Zybo board), and the board is already supported by
|
|
the upstream kernel and U-Boot, you simply need to change the
|
|
following Buildroot options:
|
|
|
|
- Kernel Device Tree file name (BR2_LINUX_KERNEL_INTREE_DTS_NAME)
|
|
- U-Boot board defconfig (BR2_TARGET_UBOOT_BOARD_DEFCONFIG)
|
|
|
|
Custom ps7_init_gpl.c/h support:
|
|
|
|
To generate a working boot.bin image, ps7_init_gpl.c/h are required in
|
|
the U-Boot source tree. Without those files, boot.bin will be built
|
|
successfully but it will not be functional at all. Those files are
|
|
output from the Xilinx tools, but for convenience, U-Boot includes the
|
|
default ps7_init_gpl.c/h of popular boards. Those files may need to be
|
|
updated for any programmable logic customizations which impact
|
|
ps7_init (clock/pin setup & mapping/AXI bridge setup/etc). See
|
|
board/xilinx/zynq/ directory of U-Boot for natively supported ps7_init
|
|
files. If the ps7_init files for your board are not found in U-Boot,
|
|
you need to add them by yourself.
|
|
|
|
1) Start with a defconfig supported by Buildroot (e.g. Zedboard)
|
|
make zynq_zed_defconfig
|
|
|
|
2) make uboot-menuconfig
|
|
Visit the following menu and enable CONFIG_ZYNQ_CUSTOM_INIT.
|
|
|
|
ARM architecture --->
|
|
[*] Use custom ps7_init provided by Xilinx tool
|
|
|
|
3) Copy ps7_init_gpl.c/h generated by the Xilinx tools into
|
|
output/build/uboot-xilinx-<pkg version>/board/xilinx/zynq/custom_hw_platform/
|
|
|
|
4) make
|
|
|
|
Note: The files in step 3 will need to be re-copied after cleaning the
|
|
output directory and at this time, there is no way to save them as
|
|
part of the buildroot configuration, except as a U-Boot patch.
|