[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