[U-Boot] [PATCH 2/2] ARM: zynq: add default ps7_init_gpl.c/h for Zed, MicroZed, ZC70x
Masahiro Yamada
yamada.masahiro at socionext.com
Sun Apr 12 03:20:26 CEST 2015
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.
--
Best Regards
Masahiro Yamada
More information about the U-Boot
mailing list