[Buildroot] [PATCH 2/2] zynq: document how to use custom ps7_init files
yamada.masahiro at socionext.com
Sun Jul 31 05:43:11 UTC 2016
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
b9cd72cdbfe3 ("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
Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
board/zynq/readme.txt | 44 +++++++++++++++++++++++++++++++++++++-------
1 file changed, 37 insertions(+), 7 deletions(-)
diff --git a/board/zynq/readme.txt b/board/zynq/readme.txt
index 51e28b6..debb163 100644
@@ -6,13 +6,6 @@ Currently, three boards are natively supported by Buildroot:
- Avnet ZedBoard (zynq_zed_defconfig)
- Avnet MicroZed (zynq_microzed_defconfig)
-The following build procedure focuses on them, but you can adjust it to your
-board even if it is not listed above. Major Zynq-based boards are supported by
-U-Boot, and their Device Trees are merged in Linux Kernel. If your board is the
-case, booting the kernel is a piece of cake. All you need to do is to change:
- - Kernel Device Tree file name (BR2_LINUX_KERNEL_INTREE_DTS_NAME)
- - U-Boot board defconfig (BR2_TARGET_UBOOT_BOARD_KCONFIG)
Steps to create a working system for a Zynq board:
1) Configuration (do one of the following)
@@ -50,3 +43,40 @@ References:
- Zedboard/Microzed information including schematics, reference designs, and
manuals are available from http://www.zedboard.org .
+Support for other boards:
+You may want to build a system for other boards (for ex. Digilent Zybo board).
+U-Boot supports major Zynq-based boards, and their Device Trees are mostly
+merged in Linux Kernel. If your board is the case, booting the kernel is a
+piece of cake. All you need to do is to tweak:
+ - 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. Those files are output from the Xilinx tools, but for
+convenience, U-Boot includes the default ps7_init_gpl.c/h of popular boards.
+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. (You can still override the existing ones if you want
+to customize them for your purpose.)
+1) Start with a defconfig supported by Buildroot (for ex. 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
+While the build will successfully complete with/without the ps7_init_gpl.*
+files, the boot.bin generated without ones will not be functional at all.
More information about the buildroot