From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?U8O2cmVu?= Brinkmann Date: Sat, 11 Apr 2015 19:45:56 -0700 Subject: [U-Boot] [PATCH 2/2] ARM: zynq: add default ps7_init_gpl.c/h for Zed, MicroZed, ZC70x In-Reply-To: References: <1428573864-22560-1-git-send-email-yamada.masahiro@socionext.com> <1428573864-22560-3-git-send-email-yamada.masahiro@socionext.com> Message-ID: <23f4a394-ef14-439a-af20-616ee5d80820@BN1BFFO11FD029.protection.gbl> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Sun, 2015-04-12 at 10:20AM +0900, Masahiro Yamada wrote: > Hi S?ren, > > 2015-04-12 5:42 GMT+09:00 S?ren Brinkmann : > > On Thu, 2015-04-09 at 07:04PM +0900, Masahiro Yamada wrote: > >> Due to licensing issues, the files ps7_init.c/h are not able to be > >> distributed with U-Boot source code. Recent Xilinx tools also > >> provide the GPL version (ps7_init_gpl.c/h), compatible with U-Boot > >> license. > >> > >> Prior to this commit, we had to copy ps7_init code into > >> board/xilinx/zynq/ before the compile. > >> > >> To be more user-friendly, let's include ps7_init_gpl.c/h for > >> Zedboard, MicroZed, ZC702, ZC706. > >> > >> These init code have been taken from the hwplatform_templates > >> directory of Xilinx SDK 2014.4. > >> > >> You can still use customized ps7_init code by enabling > >> CONFIG_ZYNQ_CUSTOM_INIT. > >> > >> Signed-off-by: Masahiro Yamada > >> --- > >> > >> arch/arm/cpu/armv7/zynq/Kconfig | 10 + > >> board/xilinx/zynq/Makefile | 22 +- > >> .../zynq/MicroZed_hw_platform/ps7_init_gpl.c | 12978 ++++++++++++++++++ > >> .../zynq/MicroZed_hw_platform/ps7_init_gpl.h | 130 + > >> board/xilinx/zynq/ZC702_hw_platform/ps7_init_gpl.c | 13311 +++++++++++++++++++ > >> board/xilinx/zynq/ZC702_hw_platform/ps7_init_gpl.h | 130 + > >> board/xilinx/zynq/ZC706_hw_platform/ps7_init_gpl.c | 13218 ++++++++++++++++++ > >> board/xilinx/zynq/ZC706_hw_platform/ps7_init_gpl.h | 130 + > >> .../zynq/{ => custom_hw_platform}/.gitignore | 0 > >> .../xilinx/zynq/{ => custom_hw_platform}/legacy.c | 0 > >> board/xilinx/zynq/zed_hw_platform/ps7_init_gpl.c | 12876 ++++++++++++++++++ > >> board/xilinx/zynq/zed_hw_platform/ps7_init_gpl.h | 130 + > >> 12 files changed, 52931 insertions(+), 4 deletions(-) > >> create mode 100644 board/xilinx/zynq/MicroZed_hw_platform/ps7_init_gpl.c > >> create mode 100644 board/xilinx/zynq/MicroZed_hw_platform/ps7_init_gpl.h > >> create mode 100644 board/xilinx/zynq/ZC702_hw_platform/ps7_init_gpl.c > >> create mode 100644 board/xilinx/zynq/ZC702_hw_platform/ps7_init_gpl.h > >> create mode 100644 board/xilinx/zynq/ZC706_hw_platform/ps7_init_gpl.c > >> create mode 100644 board/xilinx/zynq/ZC706_hw_platform/ps7_init_gpl.h > >> rename board/xilinx/zynq/{ => custom_hw_platform}/.gitignore (100%) > >> rename board/xilinx/zynq/{ => custom_hw_platform}/legacy.c (100%) > >> create mode 100644 board/xilinx/zynq/zed_hw_platform/ps7_init_gpl.c > >> create mode 100644 board/xilinx/zynq/zed_hw_platform/ps7_init_gpl.h > >> > >> diff --git a/arch/arm/cpu/armv7/zynq/Kconfig b/arch/arm/cpu/armv7/zynq/Kconfig > >> index ab4768a..e19cce0 100644 > >> --- a/arch/arm/cpu/armv7/zynq/Kconfig > >> +++ b/arch/arm/cpu/armv7/zynq/Kconfig > >> @@ -1,5 +1,13 @@ > >> if ZYNQ > >> > >> +config ZYNQ_CUSTOM_INIT > >> + bool "Use custom ps7_init provided by Xilinx tool" > >> + help > >> + U-Boot includes ps7_init_gpl.[ch] for some Zynq board variants. > >> + If you want to override them with customized ones > >> + or ps7_init code for your board is missing, please say Y here > >> + and add ones into board/xilinx/zynq/custom_hw_platform/ directory. > >> + > >> choice > >> prompt "Xilinx Zynq board select" > >> > >> @@ -17,9 +25,11 @@ config TARGET_ZYNQ_ZC706 > >> > >> config TARGET_ZYNQ_ZC770 > >> bool "Zynq ZC770 Board" > >> + select ZYNQ_CUSTOM_INIT > >> > >> config TARGET_ZYNQ_ZYBO > >> bool "Zynq Zybo Board" > >> + select ZYNQ_CUSTOM_INIT > >> > >> endchoice > >> > >> diff --git a/board/xilinx/zynq/Makefile b/board/xilinx/zynq/Makefile > >> index 3b1eb4f..7a82dfb 100644 > >> --- a/board/xilinx/zynq/Makefile > >> +++ b/board/xilinx/zynq/Makefile > >> @@ -7,11 +7,25 @@ > >> > >> obj-y := board.o > >> > >> -# Please copy ps7_init_gpl.c/h from hw project to this directory > >> -obj-$(CONFIG_SPL_BUILD) += \ > >> - $(if $(wildcard $(srctree)/$(src)/ps7_init_gpl.c), ps7_init_gpl.o, \ > >> - $(if $(wildcard $(srctree)/$(src)/ps7_init.c), ps7_init.o legacy.o)) > >> +# Copied from Xilinx SDK 2014.4 > >> +ps7-init-$(CONFIG_TARGET_ZYNQ_ZED) := zed_hw_platform/ps7_init_gpl.o > >> +ps7-init-$(CONFIG_TARGET_ZYNQ_MICROZED) := MicroZed_hw_platform/ps7_init_gpl.o > >> +ps7-init-$(CONFIG_TARGET_ZYNQ_ZC702) := ZC702_hw_platform/ps7_init_gpl.o > >> +ps7-init-$(CONFIG_TARGET_ZYNQ_ZC706) := ZC706_hw_platform/ps7_init_gpl.o > >> +# If you want to use customized ps7_init_gpl.c/h (or ps7_init.c/h), > >> +# enable CONFIG_ZYNQ_CUSTOM_INIT and put them into custom_hw_platform/. > >> +ps7-init-$(CONFIG_ZYNQ_CUSTOM_INIT) := \ > >> + $(if $(wildcard $(srctree)/$(src)/custom_hw_platform/ps7_init_gpl.c), \ > >> + custom_hw_platform/ps7_init_gpl.o, \ > >> + $(if $(wildcard $(srctree)/$(src)/custom_hw_platform/ps7_init.c), \ > >> + custom_hw_platform/ps7_init.o custom_hw_platform/legacy.o)) > > > > IIRC, the support for the legacy files was mainly added to not break > > existing flows, this patch does break those flows by changing the search > > location for these init files. Hence, this may be an opportunity to > > fully drop support for the legacy files? > > Yes. Good idea! > > I will drop the legacy files support in v2. > > > > Does this mechanism allow to build for one of the supported boards (e.g. > > zc706) using custom init files? We need to maintain this capability, > > IMHO, since these initfiles are generated by Xilinx tools depending on > > various settings in Vivado. They can be quite different between > > use-cases/applications, even when targeting the same board. > > Don't worry. Custom init files are still supporte. > I added CONFIG_ZYNQ_CUSTOM_INIT. But doesn't it cause 'multiple definition of...' like errors if I copy custom ps7_init files additionally to the already present ones into the source tree? Looking at the Makefile above, it seems for a "supported" board, it would add _hw_platform/ps7_init_gpl.o _and_ custom_hw_platform/ps7_init_gpl.o - both defining the same symbols. Or am I missing something? S?ren