[U-Boot] [PATCH 2/2] ARM: zynq: add default ps7_init_gpl.c/h for Zed, MicroZed, ZC70x
Sören Brinkmann
soren.brinkmann at xilinx.com
Sun Apr 12 04:45:56 CEST 2015
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 <soren.brinkmann at xilinx.com>:
> > 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 <yamada.masahiro at socionext.com>
> >> ---
> >>
> >> 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 <board>_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
More information about the U-Boot
mailing list