Skip to contentSkip to conversation

zynq: document how to use custom ps7_init files

PATCH New Matt Weber 3 participants 3 messages Oct 4, 2016 – Oct 9, 2016 Arm/Zynq architecture

lore
Share & tools
lore

Matt Weber

author
#0 lore raw

PATCH v3 1/1 zynq: document how to use custom ps7_init files

From: Masahiro Yamada <[email protected]>

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 ps7_init files.

---
v2 -> v3
[Arnout
- Moved notice of good build but bad images to top
- Updated wording when refering to files
- Removed redundant comment on overriding files
- Added suggested note on file copy and make clean's affect

v1 -> v2
- Updated readme wording discussed in
https://patchwork.ozlabs.org/patch/654309/

---
 board/zynq/readme.txt | 46 +++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 39 insertions(+), 7 deletions(-)
board/zynq/readme.txt +39 -7
index 51e28b6..24c12dd 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,42 @@ References:
 
  - 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 (for ex. Digilent Zybo board).
+Most major Zynq-based boards have U-Boot and Kernel support.  If your
+board happens to be supported, booting the kernel and using U-Boot
+just requires the following Buildroot updates:
+ - 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.
Signature · 1 line
1.9.1
#1 lore raw

PATCH v3 1/1 zynq: document how to use custom ps7_init files

Quoted 18 lines · Matt Weber

From: Masahiro Yamada <[email protected]>

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.

Quoted 5 lines

This commit provides up-to-date guidance for how to customize the ps7_init files.

This looks good to me. If you want me to look at future Xilinx related patches just CC me and I'll comment/help where I can.

Thanks,

Alistair

Quoted 85 lines

---
v2 -> v3
[Arnout
- Moved notice of good build but bad images to top
- Updated wording when refering to files
- Removed redundant comment on overriding files
- Added suggested note on file copy and make clean's affect

v1 -> v2
- Updated readme wording discussed in
https://patchwork.ozlabs.org/patch/654309/

---
 board/zynq/readme.txt | 46 +++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 39 insertions(+), 7 deletions(-)
board/zynq/readme.txt +39 -8
index 51e28b6..24c12dd 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,42 @@ References:
 
  - 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 (for ex. Digilent Zybo board).
+Most major Zynq-based boards have U-Boot and Kernel support.  If your
+board happens to be supported, booting the kernel and using U-Boot
+just requires the following Buildroot updates:
+ - 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.
--

1.9.1

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot

#2 lore raw

PATCH v3 1/1 zynq: document how to use custom ps7_init files

In reply to Matt Weber

Hello,

Quoted 24 lines · Matt Weber

From: Masahiro Yamada <[email protected]>

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 ps7_init files.

Quoted 7 lines

---
v2 -> v3
[Arnout
- Moved notice of good build but bad images to top
- Updated wording when refering to files
- Removed redundant comment on overriding files
- Added suggested note on file copy and make clean's affect

I've applied, after reworking a bit some aspects, and tweaking the formatting.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com