All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v4 0/3] Add Xilinx ZynqMP and ZCU106 board support
@ 2018-06-21 21:26 Luca Ceresoli
  2018-06-21 21:26 ` [Buildroot] [PATCH v4 1/3] uboot: zynqmp: allow to use custom psu_init files Luca Ceresoli
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Luca Ceresoli @ 2018-06-21 21:26 UTC (permalink / raw)
  To: buildroot

Hi,

this patchset adds basic support for the ZynqMP family of ARM64
SoC+FPGA by Xilinx and for the ZCU106 board based on it.

The ZynqMP sets a few challenges that needed some work besides the
usual defconfig + readme that is enough for more classic and simple
SoCs.

This v4 addresses the comments received to v3 by Thomas. The main
concern raised was that the code in v3 was copying some files into the
U-Boot source tree before compilation, so the build would find
them. This could not be done any better without changing the U-Boot
source code, and so I fixed it in the U-Boot makefiles in the first
place. With those changes to U-Boot, the Buildroot code has become a
lot leaner, now almost trivial.

The first 2 paches in my v3 series have already been applied.

Patch 1 allows to pass an externally-supplied init file to U-Boot,
which is needed to boot boards not supported in the U-Boot source
code, or on the same boards but with a different
configuration. Instead of copying the user-provided file inside the
U-Boot source as in v3, I applied a patch (submitted upstream) so
U-Boot is able to build that file without any copy.

The next issue is the PMU (Platform Management Unit). It is a
Microblaze core that handles power and clock gating and the like, and
reprogramming it at runtime is necessary to boot any modern U-Boot and
Linux. Since we can't build Microblaze code out of the ARM64
toolchain, U-Boot obtains a pre-built binary using
EXTRA_DOWNLOADS. This is added in patch 2. Until v3, the PMUFW had to
be copied inside the U-Boot source. With a patch, now upstream, it is
now possible to avoid the copy.

With all these in place, patch 5 just adds the defconfig and board
files.

Luca


Luca Ceresoli (3):
  uboot: zynqmp: allow to use custom psu_init files
  uboot: zynqmp: generate SPL image with PMUFW binary
  configs: add Xilinx ZCU106 board (ZynqMP SoC)

 DEVELOPERS                                         |   2 +
 board/zynqmp/genimage.cfg                          |  28 ++++
 ...1-arm64-zynqmp-zcu106-fix-SPL-MMC-booting.patch |  53 +++++++
 .../0002-arm64-zynqmp-Enable-booting-to-ATF.patch  | 115 ++++++++++++++
 ...p-accept-an-absolute-path-for-PMUFW_INIT_.patch |  68 ++++++++
 ...ynq-zynqmp-pass-the-PS-init-file-as-a-kco.patch | 175 +++++++++++++++++++++
 board/zynqmp/post-image.sh                         |  13 ++
 board/zynqmp/readme.txt                            |  51 ++++++
 boot/uboot/Config.in                               |  47 ++++++
 boot/uboot/uboot.mk                                |  27 ++++
 configs/zynqmp_zcu106_defconfig                    |  34 ++++
 11 files changed, 613 insertions(+)
 create mode 100644 board/zynqmp/genimage.cfg
 create mode 100644 board/zynqmp/patches/uboot/0001-arm64-zynqmp-zcu106-fix-SPL-MMC-booting.patch
 create mode 100644 board/zynqmp/patches/uboot/0002-arm64-zynqmp-Enable-booting-to-ATF.patch
 create mode 100644 board/zynqmp/patches/uboot/0003-arm64-zynqmp-accept-an-absolute-path-for-PMUFW_INIT_.patch
 create mode 100644 board/zynqmp/patches/uboot/0004-arm-arm64-zynq-zynqmp-pass-the-PS-init-file-as-a-kco.patch
 create mode 100755 board/zynqmp/post-image.sh
 create mode 100644 board/zynqmp/readme.txt
 create mode 100644 configs/zynqmp_zcu106_defconfig

-- 
2.7.4

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v4 1/3] uboot: zynqmp: allow to use custom psu_init files
  2018-06-21 21:26 [Buildroot] [PATCH v4 0/3] Add Xilinx ZynqMP and ZCU106 board support Luca Ceresoli
@ 2018-06-21 21:26 ` Luca Ceresoli
  2018-06-21 21:26 ` [Buildroot] [PATCH v4 2/3] uboot: zynqmp: generate SPL image with PMUFW binary Luca Ceresoli
  2018-06-21 21:26 ` [Buildroot] [PATCH v4 3/3] configs: add Xilinx ZCU106 board (ZynqMP SoC) Luca Ceresoli
  2 siblings, 0 replies; 4+ messages in thread
From: Luca Ceresoli @ 2018-06-21 21:26 UTC (permalink / raw)
  To: buildroot

U-Boot SPL configures pinmuxes, clocks and other low-level devices. On
the Xilinx ZynqMP SoCs the code to do this resides in a file called
psu_init_gpl.c which is initially generated by the Xilinx development
tools. Add an option to pass these files from the outside (e.g. in the
board files).

For this to work properly, a patch to U-Boot is needed. However this
patch must be applied by each defconfig using
BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_DIR. If it were in boot/uboot/ to be
applied unconditionally, it would break the build for configs using a
U-Boot version where the patch is already applied.

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>

---
Changes v3 -> v4:
 - don't copy the psu_init file(s) in the source tree, point to its
   path (which needs a patch sent upstream to work)
 - depend on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG (Thomas)
 - point to the file, not the directory

Changes v2 -> v3:
 - Add a bool option to show/hidw all ZynqMP-specific config knobs
 - Move this patch before "uboot: zynqmp: generate SPL image with
   PMUFW binary"
 - Reword Config.in text

Changes v1 -> v2:
 - split from a larger patch doing 2 things
 - document the option of having psu_init_gpl.c without .h
---
 ...ynq-zynqmp-pass-the-PS-init-file-as-a-kco.patch | 175 +++++++++++++++++++++
 boot/uboot/Config.in                               |  33 ++++
 boot/uboot/uboot.mk                                |  15 ++
 3 files changed, 223 insertions(+)
 create mode 100644 board/zynqmp/patches/uboot/0004-arm-arm64-zynq-zynqmp-pass-the-PS-init-file-as-a-kco.patch

diff --git a/board/zynqmp/patches/uboot/0004-arm-arm64-zynq-zynqmp-pass-the-PS-init-file-as-a-kco.patch b/board/zynqmp/patches/uboot/0004-arm-arm64-zynq-zynqmp-pass-the-PS-init-file-as-a-kco.patch
new file mode 100644
index 000000000000..ab8108ee0c6a
--- /dev/null
+++ b/board/zynqmp/patches/uboot/0004-arm-arm64-zynq-zynqmp-pass-the-PS-init-file-as-a-kco.patch
@@ -0,0 +1,175 @@
+From 4c9d54ab5a41d65000c8d249b6fb1b76056f1812 Mon Sep 17 00:00:00 2001
+From: Luca Ceresoli <luca@lucaceresoli.net>
+Date: Wed, 20 Jun 2018 12:11:50 +0200
+Subject: [PATCH] arm/arm64: zynq/zynqmp: pass the PS init file as a kconfig
+ variable
+
+U-Boot needs to link ps7_init_gpl.c on Zynq or psu_init_gpl.c on
+ZynqMP (PS init for short). The current logic to locate this file for
+both platforms is:
+
+ 1. if a board-specific file exists in
+    board/xilinx/zynq[mp]/$(CONFIG_DEFAULT_DEVICE_TREE)/ps?_init_gpl.c
+    then use it
+ 2. otherwise use board/xilinx/zynq/ps?_init_gpl.c
+
+In the latter case the file does not exist in the U-Boot sources and
+must be copied in the source tree from the outside before starting the
+build. This is typical when it is generated from Xilinx tools while
+developing a custom hardware. However making sure that a
+board-specific file is _not_ found (and used) requires some trickery
+such as removing or overwriting all PS init files (e.g.: the current
+meta-xilinx yocto layer [0]).
+
+This generates a few problems:
+
+ * if the source tree is shared among different out-of-tree builds,
+   they will pollute (and potentially corrupt) each other
+ * the source tree cannot be read-only
+ * any buildsystem must add a command to copy the PS init file binary
+ * overwriting or deleting files in the source tree is ugly as hell
+
+Simplify usage by allowing to pass the path to the desired PS init
+file in kconfig variable XILINX_PS_INIT_FILE. It can be an absolute
+path or relative to $(srctree). If the variable is set, the
+user-specified file will always be used without being copied
+around. If the the variable is left empty, for backward compatibility
+fall back to the old behaviour.
+
+Since the issue is the same for Zynq and ZynqMP, add one kconfig
+variable in a common place and use it for both.
+
+Also use the new kconfig help text to document all the ways to give
+U-Boot the PS init file.
+
+Build-tested with all combinations of:
+ - platform: zynq or zynqmp
+ - PS init file: from XILINX_PS_INIT_FILE (absolute, relative path,
+   non-existing), in-tree board-specific, in board/xilinx/zynq[mp]/
+ - building in-tree, in subdir, in other directory
+
+[0] https://github.com/Xilinx/meta-xilinx/blob/b2f74cc7fe5c4881589d5e440a17cb51fc66a7ab/meta-xilinx-bsp/recipes-bsp/u-boot/u-boot-spl-zynq-init.inc#L9
+
+Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
+Cc: Albert Aribaud <albert.u.boot@aribaud.net>
+Cc: Michal Simek <michal.simek@xilinx.com>
+Cc: Nathan Rossi <nathan@nathanrossi.com>
+Submitted upstream: https://patchwork.ozlabs.org/patch/932392/ (slightly adapted to fix conflicts)
+---
+ arch/arm/Kconfig             |  1 +
+ board/xilinx/Kconfig         | 41 +++++++++++++++++++++++++++++++++++++++++
+ board/xilinx/zynq/Makefile   | 10 +++++++++-
+ board/xilinx/zynqmp/Makefile | 10 +++++++++-
+ 4 files changed, 60 insertions(+), 2 deletions(-)
+ create mode 100644 board/xilinx/Kconfig
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 22234cde2ab6..e04979d0ef7e 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1293,4 +1293,5 @@ source "board/technologic/ts4600/Kconfig"
+ source "board/vscom/baltos/Kconfig"
+ source "board/woodburn/Kconfig"
+ source "board/work-microwave/work_92105/Kconfig"
++source "board/xilinx/Kconfig"
+ source "board/zipitz2/Kconfig"
+
+ source "arch/arm/Kconfig.debug"
+diff --git a/board/xilinx/Kconfig b/board/xilinx/Kconfig
+new file mode 100644
+index 000000000000..aa3fa061edef
+--- /dev/null
++++ b/board/xilinx/Kconfig
+@@ -0,0 +1,41 @@
++# Copyright (c) 2018, Luca Ceresoli <luca@lucaceresoli.net>
++#
++# SPDX-License-Identifier: GPL-2.0
++
++if ARCH_ZYNQ || ARCH_ZYNQMP
++
++config XILINX_PS_INIT_FILE
++	string "Zynq/ZynqMP PS init file(s) location"
++	help
++	  On Zynq and ZynqMP U-Boot SPL (or U-Boot proper if
++	  ZYNQMP_PSU_INIT_ENABLED is set) is responsible for some
++	  basic initializations, such as enabling peripherals and
++	  configuring pinmuxes. The PS init file (called
++	  psu_init_gpl.c on ZynqMP, ps7_init_gpl.c for Zynq-7000)
++	  contains the code for such initializations.
++
++	  U-Boot contains PS init files for some boards, but each of
++	  them describes only one specific configuration. Users of a
++	  different board, or needing a different configuration, can
++	  generate custom files using the Xilinx development tools.
++
++	  There are three ways to give a PS init file to U-Boot:
++
++	  1. Set this variable to the path, either relative to the
++	     source tree or absolute, where the psu_init_gpl.c or
++	     ps7_init_gpl.c file is located. U-Boot will build this
++	     file.
++
++	  2. If you leave an empty string here, U-Boot will use
++	     board/xilinx/zynq/$(CONFIG_DEFAULT_DEVICE_TREE)/ps7_init_gpl.c
++	     for Zynq-7000, or
++	     board/xilinx/zynqmp/$(CONFIG_DEFAULT_DEVICE_TREE)/psu_init_gpl.c
++	     for ZynqMP.
++
++	  3. If the above file does not exist, U-Boot will use
++	     board/xilinx/zynq/ps7_init_gpl.c for Zynq-7000, or
++	     board/xilinx/zynqmp/psu_init_gpl.c for ZynqMP. This file
++	     is not provided by U-Boot, you have to copy it there
++	     before the build.
++
++endif
+diff --git a/board/xilinx/zynq/Makefile b/board/xilinx/zynq/Makefile
+index 5a76a26720cd..03ad5f0532ee 100644
+--- a/board/xilinx/zynq/Makefile
++++ b/board/xilinx/zynq/Makefile
+@@ -5,10 +5,18 @@
+ 
+ obj-y	:= board.o
+ 
+-hw-platform-y :=$(shell echo $(CONFIG_DEFAULT_DEVICE_TREE))
++ifneq ($(CONFIG_XILINX_PS_INIT_FILE),"")
++PS_INIT_FILE := $(shell cd $(srctree); readlink -f $(CONFIG_XILINX_PS_INIT_FILE))
++init-objs := ps_init_gpl.o
++spl/board/xilinx/zynq/ps_init_gpl.o board/xilinx/zynq/ps_init_gpl.o: $(PS_INIT_FILE)
++	$(CC) $(c_flags) -I $(srctree)/$(src) -c -o $@ $^
++endif
+ 
++ifeq ($(init-objs),)
++hw-platform-y :=$(shell echo $(CONFIG_DEFAULT_DEVICE_TREE))
+ init-objs := $(if $(wildcard $(srctree)/$(src)/$(hw-platform-y)/ps7_init_gpl.c),\
+ 	$(hw-platform-y)/ps7_init_gpl.o)
++endif
+ 
+ ifeq ($(init-objs),)
+ ifneq ($(wildcard $(srctree)/$(src)/ps7_init_gpl.c),)
+diff --git a/board/xilinx/zynqmp/Makefile b/board/xilinx/zynqmp/Makefile
+index 05ccd25dcef3..960b81fc5853 100644
+--- a/board/xilinx/zynqmp/Makefile
++++ b/board/xilinx/zynqmp/Makefile
+@@ -5,10 +5,18 @@
+ 
+ obj-y	:= zynqmp.o
+ 
+-hw-platform-y :=$(shell echo $(CONFIG_DEFAULT_DEVICE_TREE))
++ifneq ($(CONFIG_XILINX_PS_INIT_FILE),"")
++PS_INIT_FILE := $(shell cd $(srctree); readlink -f $(CONFIG_XILINX_PS_INIT_FILE))
++init-objs := ps_init_gpl.o
++spl/board/xilinx/zynqmp/ps_init_gpl.o board/xilinx/zynqmp/ps_init_gpl.o: $(PS_INIT_FILE)
++	$(CC) $(c_flags) -I $(srctree)/$(src) -c -o $@ $^
++endif
+ 
++ifeq ($(init-objs),)
++hw-platform-y :=$(shell echo $(CONFIG_DEFAULT_DEVICE_TREE))
+ init-objs := $(if $(wildcard $(srctree)/$(src)/$(hw-platform-y)/psu_init_gpl.c),\
+ 	$(hw-platform-y)/psu_init_gpl.o)
++endif
+ 
+ ifeq ($(init-objs),)
+ ifneq ($(wildcard $(srctree)/$(src)/psu_init_gpl.c),)
+-- 
+2.7.4
+
diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index 482711ca6410..b8bff9949e3d 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -365,6 +365,39 @@ config BR2_TARGET_UBOOT_ZYNQ_IMAGE
 	  for u-boot-dtb.img file so this U-Boot format is required
 	  to be set.
 
+config BR2_TARGET_UBOOT_ZYNQMP
+	bool "Boot on the Xilinx ZynqMP SoCs"
+	depends on BR2_aarch64
+	help
+	  Enable options specific to the Xilinx ZynqMP family of SoCs.
+
+if BR2_TARGET_UBOOT_ZYNQMP
+
+config BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE
+	string "Custom psu_init_gpl file"
+	depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG
+	help
+	  On ZynqMP the booloader is responsible for some basic
+	  initializations, such as enabling peripherals and
+	  configuring pinmuxes. The psu_init_gpl.c file (and,
+	  optionally, psu_init_gpl.h) contains the code for such
+	  initializations.
+
+	  Although U-Boot contains psu_init_gpl.c files for some
+	  boards, each of them describes only one specific
+	  configuration. Users of a different board, or needing a
+	  different configuration, can generate custom files using the
+	  Xilinx development tools.
+
+	  Set this variable to the path to your psu_init_gpl.c
+	  file. psu_init_gpl.h, if needed, should be in the same
+	  directory. U-Boot will build and link the user-provided file
+	  instead of the built-in one.
+
+	  Leave empty to use the files provided by U-Boot.
+
+endif
+
 config BR2_TARGET_UBOOT_ALTERA_SOCFPGA_IMAGE_CRC
 	bool "CRC image for Altera SoC FPGA (mkpimage)"
 	depends on BR2_arm
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index 03bd7ea743ed..e4571a6ccf9f 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -274,6 +274,17 @@ define UBOOT_INSTALL_IMAGES_CMDS
 			$(BINARIES_DIR)/boot.scr)
 endef
 
+ifeq ($(BR2_TARGET_UBOOT_ZYNQMP),y)
+
+ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE)),)
+define UBOOT_ZYNQMP_KCONFIG_PSU_INIT
+	$(call KCONFIG_SET_OPT,CONFIG_XILINX_PS_INIT_FILE,"$(TOPDIR)/$(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE))", \
+           $(@D)/.config)
+endef
+endif
+
+endif # BR2_TARGET_UBOOT_ZYNQMP
+
 define UBOOT_INSTALL_OMAP_IFT_IMAGE
 	cp -dpf $(@D)/$(UBOOT_BIN_IFT) $(BINARIES_DIR)/
 endef
@@ -323,6 +334,10 @@ UBOOT_DEPENDENCIES += host-mkpimage
 UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_CRC_ALTERA_SOCFPGA_IMAGE
 endif
 
+define UBOOT_KCONFIG_FIXUP_CMDS
+	$(UBOOT_ZYNQMP_KCONFIG_PSU_INIT)
+endef
+
 ifeq ($(BR2_TARGET_UBOOT_ENVIMAGE),y)
 ifeq ($(BR_BUILDING),y)
 ifeq ($(call qstrip,$(BR2_TARGET_UBOOT_ENVIMAGE_SOURCE)),)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v4 2/3] uboot: zynqmp: generate SPL image with PMUFW binary
  2018-06-21 21:26 [Buildroot] [PATCH v4 0/3] Add Xilinx ZynqMP and ZCU106 board support Luca Ceresoli
  2018-06-21 21:26 ` [Buildroot] [PATCH v4 1/3] uboot: zynqmp: allow to use custom psu_init files Luca Ceresoli
@ 2018-06-21 21:26 ` Luca Ceresoli
  2018-06-21 21:26 ` [Buildroot] [PATCH v4 3/3] configs: add Xilinx ZCU106 board (ZynqMP SoC) Luca Ceresoli
  2 siblings, 0 replies; 4+ messages in thread
From: Luca Ceresoli @ 2018-06-21 21:26 UTC (permalink / raw)
  To: buildroot

In order to boot on the Xilinx ZynqMP SoCs, U-Boot SPL requires a
recent PMU firmware loaded. Instruct U-Boot to add pmufw.bin to the
boot.bin file together with U-Boot SPL, and the boot ROM will load
both.

For this to work properly, a patch to U-Boot is needed. However this
patch must be applied by each defconfig that wishes to use
BR2_TARGET_UBOOT_ZYNQMP_PMUFW. If it were in boot/uboot/ to be applied
unconditionally, it would break the build for configs using a U-Boot
version higher than 2018.7-rc1 where the patch is already applied.

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>

---
Changes v3 -> v4:
 - don't copy the pmufw binary in the source tree, use an absolute path
   to the download dir (which needs a patch from upstream to work)
 - depend on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG (Thomas)

Changes v2 -> v3:
 - don't use a "zynqmp-pmufw-binaries" package, just download a file
 - define kconfig fixups in a variable, then define
   UBOOT_KCONFIG_FIXUP_CMDS unconditionally at global scope (Thomas)
 - use $(INSTALL), not cp (Thomas)
 - $(...) instead of ${...} to reference make variables (Thomas)

Changes v1 -> v2:
 - split from a larger patch doing 2 things.
---
 ...p-accept-an-absolute-path-for-PMUFW_INIT_.patch | 68 ++++++++++++++++++++++
 boot/uboot/Config.in                               | 14 +++++
 boot/uboot/uboot.mk                                | 12 ++++
 3 files changed, 94 insertions(+)
 create mode 100644 board/zynqmp/patches/uboot/0003-arm64-zynqmp-accept-an-absolute-path-for-PMUFW_INIT_.patch

diff --git a/board/zynqmp/patches/uboot/0003-arm64-zynqmp-accept-an-absolute-path-for-PMUFW_INIT_.patch b/board/zynqmp/patches/uboot/0003-arm64-zynqmp-accept-an-absolute-path-for-PMUFW_INIT_.patch
new file mode 100644
index 000000000000..95ab7b3b75ca
--- /dev/null
+++ b/board/zynqmp/patches/uboot/0003-arm64-zynqmp-accept-an-absolute-path-for-PMUFW_INIT_.patch
@@ -0,0 +1,68 @@
+From c7df098a71e05dc81cee818747759e8060b59626 Mon Sep 17 00:00:00 2001
+From: Luca Ceresoli <luca@lucaceresoli.net>
+Date: Mon, 4 Jun 2018 12:21:01 +0200
+Subject: [PATCH] arm64: zynqmp: accept an absolute path for PMUFW_INIT_FILE
+
+The value of PMUFW_INIT_FILE is prefixed with "$(srctree)/", thus
+forcing it to be a relative path inside the U-Boot source tree. Since
+the PMUFW is a binary file generated outside of U-Boot, the PMUFW
+binary must be copied inside the U-Boot source tree before the
+build.
+
+This generates a few problems:
+
+ * if the source tree is shared among different out-of-tree builds,
+   they will pollute (and potentially corrupt) each other
+ * the source tree cannot be read-only
+ * any buildsystem must add a command to copy the PMUFW binary
+ * putting an externally-generated binary in the source tree is ugly
+   as hell
+
+Avoid these problems by accepting an absolute path for
+PMUFW_INIT_FILE. This would be as simple as removing the "$(srctree)/"
+prefix, but in order to keep backward compatibility we rather use the
+shell and readlink to get the absolute path even when starting from a
+relative path.
+
+Since 'readlink -f' produces an empty string if the file does not
+exist, we also add a check to ensure the file configured in
+PMUFW_INIT_FILE exists. Otherwise the build would exit successfully,
+but produce a boot.bin without PMUFW as if PMUFW_INIT_FILE were empty.
+
+Tested in the 12 possible combinations of:
+ - PMUFW_INIT_FILE empty, relative, absolute, non-existing
+ - building in-tree, in subdir, in other directory
+
+Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
+Cc: Michal Simek <michal.simek@xilinx.com>
+Cc: Simon Glass <sjg@chromium.org>
+Cc: Emmanuel Vadot <manu@bidouilliste.com>
+Signed-off-by: Michal Simek <michal.simek@xilinx.com>
+Backported from upstream: https://git.denx.de/?p=u-boot.git;a=commit;h=c7df098a71e05dc81cee818747759e8060b59626
+---
+ scripts/Makefile.spl | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
+index ef018b5b4056..252f13826d4c 100644
+--- a/scripts/Makefile.spl
++++ b/scripts/Makefile.spl
+@@ -167,8 +167,14 @@ ifdef CONFIG_ARCH_ZYNQ
+ MKIMAGEFLAGS_boot.bin = -T zynqimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE)
+ endif
+ ifdef CONFIG_ARCH_ZYNQMP
++ifneq ($(CONFIG_PMUFW_INIT_FILE),"")
++spl/boot.bin: zynqmp-check-pmufw
++zynqmp-check-pmufw: FORCE
++	( cd $(srctree) && test -r $(CONFIG_PMUFW_INIT_FILE) ) \
++		|| ( echo "Cannot read $(CONFIG_PMUFW_INIT_FILE)" && false )
++endif
+ MKIMAGEFLAGS_boot.bin = -T zynqmpimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE) \
+-	-n $(srctree)/$(CONFIG_PMUFW_INIT_FILE)
++	-n "$(shell cd $(srctree); readlink -f $(CONFIG_PMUFW_INIT_FILE))"
+ endif
+ 
+ spl/boot.bin: $(obj)/u-boot-spl.bin FORCE
+-- 
+2.7.4
+
diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in
index b8bff9949e3d..ba05afa98b48 100644
--- a/boot/uboot/Config.in
+++ b/boot/uboot/Config.in
@@ -373,6 +373,20 @@ config BR2_TARGET_UBOOT_ZYNQMP
 
 if BR2_TARGET_UBOOT_ZYNQMP
 
+config BR2_TARGET_UBOOT_ZYNQMP_PMUFW
+	string "PMU firmware location"
+	depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG
+	help
+	  Location of a PMU firmware binary.
+
+	  If set to an URL or a file path, instructs the U-Boot build
+	  process to generate a boot.bin (to be loaded by the ZynqMP
+	  boot ROM) containing both the U-Boot SPL and the PMU
+	  firmware in the Xilinx-specific boot format.
+
+	  If empty, the generated boot.bin will not contain a PMU
+	  firmware.
+
 config BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE
 	string "Custom psu_init_gpl file"
 	depends on BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG
diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk
index e4571a6ccf9f..59b3fe07881d 100644
--- a/boot/uboot/uboot.mk
+++ b/boot/uboot/uboot.mk
@@ -276,6 +276,17 @@ endef
 
 ifeq ($(BR2_TARGET_UBOOT_ZYNQMP),y)
 
+UBOOT_ZYNQMP_PMUFW = $(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PMUFW))
+
+ifneq ($(UBOOT_ZYNQMP_PMUFW),)
+UBOOT_EXTRA_DOWNLOADS += $(UBOOT_ZYNQMP_PMUFW)
+BR_NO_CHECK_HASH_FOR += $(notdir $(UBOOT_ZYNQMP_PMUFW))
+define UBOOT_ZYNQMP_KCONFIG_PMUFW
+	$(call KCONFIG_SET_OPT,CONFIG_PMUFW_INIT_FILE,"$(UBOOT_DL_DIR)/$(notdir $(UBOOT_ZYNQMP_PMUFW))", \
+	       $(@D)/.config)
+endef
+endif
+
 ifneq ($(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE)),)
 define UBOOT_ZYNQMP_KCONFIG_PSU_INIT
 	$(call KCONFIG_SET_OPT,CONFIG_XILINX_PS_INIT_FILE,"$(TOPDIR)/$(call qstrip,$(BR2_TARGET_UBOOT_ZYNQMP_PSU_INIT_FILE))", \
@@ -335,6 +346,7 @@ UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_CRC_ALTERA_SOCFPGA_IMAGE
 endif
 
 define UBOOT_KCONFIG_FIXUP_CMDS
+	$(UBOOT_ZYNQMP_KCONFIG_PMUFW)
 	$(UBOOT_ZYNQMP_KCONFIG_PSU_INIT)
 endef
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v4 3/3] configs: add Xilinx ZCU106 board (ZynqMP SoC)
  2018-06-21 21:26 [Buildroot] [PATCH v4 0/3] Add Xilinx ZynqMP and ZCU106 board support Luca Ceresoli
  2018-06-21 21:26 ` [Buildroot] [PATCH v4 1/3] uboot: zynqmp: allow to use custom psu_init files Luca Ceresoli
  2018-06-21 21:26 ` [Buildroot] [PATCH v4 2/3] uboot: zynqmp: generate SPL image with PMUFW binary Luca Ceresoli
@ 2018-06-21 21:26 ` Luca Ceresoli
  2 siblings, 0 replies; 4+ messages in thread
From: Luca Ceresoli @ 2018-06-21 21:26 UTC (permalink / raw)
  To: buildroot

This adds support the Xilinx ZCU106 development board.

[Tested on the ES2 (Engineering Sample 2) version of the board]
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>

---
Changes v3 -> v4:
 - specify an explicit ATF version in the defconfig and use 1.5
   (Thomas)
 - update readme.txt

Changes v2 -> v3:
 - adapt to changed ATF option name
   (BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT)
 - adapt to the new pmufw implementation in uboot (no
   zynqmp-pmufw-binaries package, just a downloadable file)
 - patches now upstream, update patch files

Changes v1 -> v2:
 - don't provide psu_init files: the xilinx master branch has a
   defconfig that works (with 2 patches)
---
 DEVELOPERS                                         |   2 +
 board/zynqmp/genimage.cfg                          |  28 +++++
 ...1-arm64-zynqmp-zcu106-fix-SPL-MMC-booting.patch |  53 ++++++++++
 .../0002-arm64-zynqmp-Enable-booting-to-ATF.patch  | 115 +++++++++++++++++++++
 board/zynqmp/post-image.sh                         |  13 +++
 board/zynqmp/readme.txt                            |  51 +++++++++
 configs/zynqmp_zcu106_defconfig                    |  34 ++++++
 7 files changed, 296 insertions(+)
 create mode 100644 board/zynqmp/genimage.cfg
 create mode 100644 board/zynqmp/patches/uboot/0001-arm64-zynqmp-zcu106-fix-SPL-MMC-booting.patch
 create mode 100644 board/zynqmp/patches/uboot/0002-arm64-zynqmp-Enable-booting-to-ATF.patch
 create mode 100755 board/zynqmp/post-image.sh
 create mode 100644 board/zynqmp/readme.txt
 create mode 100644 configs/zynqmp_zcu106_defconfig

diff --git a/DEVELOPERS b/DEVELOPERS
index d22ac527fa17..13b91448ead9 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1145,8 +1145,10 @@ F:	package/ti-sgx-um/
 N:	Luca Ceresoli <luca@lucaceresoli.net>
 F:	board/olimex/a20_olinuxino/
 F:	board/zynq/
+F:	board/zynqmp/
 F:	configs/olimex_a20_olinuxino_*
 F:	configs/zynq_zed_defconfig
+F:	configs/zynqmp_zcu106_defconfig
 F:	package/agentpp/
 F:	package/exim/
 F:	package/libpjsip/
diff --git a/board/zynqmp/genimage.cfg b/board/zynqmp/genimage.cfg
new file mode 100644
index 000000000000..30be086d7d42
--- /dev/null
+++ b/board/zynqmp/genimage.cfg
@@ -0,0 +1,28 @@
+image boot.vfat {
+	vfat {
+		files = {
+			"boot.bin",
+			"u-boot.bin",
+			"atf-uboot.ub",
+			"system.dtb",
+			"Image"
+		}
+	}
+	size = 32M
+}
+
+image sdcard.img {
+	hdimage {
+	}
+
+	partition boot {
+		partition-type = 0xC
+		bootable = "true"
+		image = "boot.vfat"
+	}
+
+	partition rootfs {
+		partition-type = 0x83
+		image = "rootfs.ext4"
+	}
+}
diff --git a/board/zynqmp/patches/uboot/0001-arm64-zynqmp-zcu106-fix-SPL-MMC-booting.patch b/board/zynqmp/patches/uboot/0001-arm64-zynqmp-zcu106-fix-SPL-MMC-booting.patch
new file mode 100644
index 000000000000..60dd1465590a
--- /dev/null
+++ b/board/zynqmp/patches/uboot/0001-arm64-zynqmp-zcu106-fix-SPL-MMC-booting.patch
@@ -0,0 +1,53 @@
+From e5d72ed8339eb05285448aad3c89d21e4d18fd29 Mon Sep 17 00:00:00 2001
+From: Luca Ceresoli <luca@lucaceresoli.net>
+Date: Mon, 26 Feb 2018 09:40:34 +0100
+Subject: [PATCH 1/2] arm64: zynqmp: zcu106: fix SPL MMC booting
+
+The U-Boot SPL generated with the current zcu106 defconfig cannot boot
+from MMC:
+
+  [...]
+  U-Boot SPL 2018.01 (Feb 21 2018 - 17:47:14)
+  EL Level:  EL3
+  Trying to boot from MMC1
+  sdhci_transfer_data: Error detected in status(0x408020)!
+  spl_load_image_fat_os: error reading image u-boot.bin, err - -2
+  spl_load_image_fat: error reading image u-boot.img, err - -6
+  SPL: failed to boot from all boot devices
+  ### ERROR ### Please RESET the board ###
+
+Fix by lowering the rpll value. The new value for the RPLL_CTRL
+register comes from the current psu_init_gpl.c from the HDF file at
+https://github.com/xilinx/hdf-examples/tree/01ad8ea5fd1989abf4ea5a072d019a16cb2bc546/zcu106-zynqmp
+(generated by Vivado v2017.4).
+
+RPLL and sdio1_ref clocks before and after this change:
+
+ - Old values: RPLL 1.36 GHz, sdio1_ref 272 MHz
+ - New values: RPLL 1.16 GHz, sdio1_ref 233 MHz
+
+Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
+Cc: Michal Simek <michal.simek@xilinx.com>
+
+---
+Patch accepted upstream in a different form.
+
+ board/xilinx/zynqmp/zynqmp-zcu106-revA/psu_init_gpl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/board/xilinx/zynqmp/zynqmp-zcu106-revA/psu_init_gpl.c b/board/xilinx/zynqmp/zynqmp-zcu106-revA/psu_init_gpl.c
+index 4d18abe000ca..e6fa477e53e7 100644
+--- a/board/xilinx/zynqmp/zynqmp-zcu106-revA/psu_init_gpl.c
++++ b/board/xilinx/zynqmp/zynqmp-zcu106-revA/psu_init_gpl.c
+@@ -10,7 +10,7 @@
+ static unsigned long psu_pll_init_data(void)
+ {
+ 	psu_mask_write(0xFF5E0034, 0xFE7FEDEFU, 0x7E4E2C62U);
+-	psu_mask_write(0xFF5E0030, 0x00717F00U, 0x00013C00U);
++	psu_mask_write(0xFF5E0030, 0x00717F00U, 0x00014600U);
+ 	psu_mask_write(0xFF5E0030, 0x00000008U, 0x00000008U);
+ 	psu_mask_write(0xFF5E0030, 0x00000001U, 0x00000001U);
+ 	psu_mask_write(0xFF5E0030, 0x00000001U, 0x00000000U);
+-- 
+2.7.4
+
diff --git a/board/zynqmp/patches/uboot/0002-arm64-zynqmp-Enable-booting-to-ATF.patch b/board/zynqmp/patches/uboot/0002-arm64-zynqmp-Enable-booting-to-ATF.patch
new file mode 100644
index 000000000000..62a59a5e7586
--- /dev/null
+++ b/board/zynqmp/patches/uboot/0002-arm64-zynqmp-Enable-booting-to-ATF.patch
@@ -0,0 +1,115 @@
+From 5e3cac50cc981e01d9072241035a8d4162560c71 Mon Sep 17 00:00:00 2001
+From: Luca Ceresoli <luca@lucaceresoli.net>
+Date: Mon, 12 Mar 2018 17:18:38 +0100
+Subject: [PATCH] arm64: zynqmp: Enable booting to ATF
+
+U-Boot is now able to boot to ARM Trusted Firmware (ATF). The boot
+flow is SPL(EL3) loads ATF and full u-boot and jump to ATF(EL3) which
+pass control to full u-boot(EL2). This has been tested on zcu106, so
+enable it in this defconfig.
+
+To generate an image that triggers this booting flow, you need to pass
+'-O arm-trusted-firmware' to mkimage.
+
+Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
+Signed-off-by: Michal Simek <michal.simek@xilinx.com>
+---
+Fetch from:
+http://git.denx.de/?p=u-boot.git;a=commit;h=5e3cac50cc981e01d9072241035a8d4162560c71
+
+ configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 1 +
+ configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 1 +
+ configs/xilinx_zynqmp_zc1751_xm018_dc4_defconfig | 1 +
+ configs/xilinx_zynqmp_zc1751_xm019_dc5_defconfig | 1 +
+ configs/xilinx_zynqmp_zcu102_rev1_0_defconfig    | 1 +
+ configs/xilinx_zynqmp_zcu102_revA_defconfig      | 1 +
+ configs/xilinx_zynqmp_zcu102_revB_defconfig      | 1 +
+ 7 files changed, 7 insertions(+)
+
+diff --git a/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig b/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig
+index c5bfa2b12638..488c72258b0e 100644
+--- a/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig
++++ b/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig
+@@ -19,6 +19,7 @@ CONFIG_BOARD_EARLY_INIT_R=y
+ CONFIG_SPL_OS_BOOT=y
+ CONFIG_SPL_RAM_SUPPORT=y
+ CONFIG_SPL_RAM_DEVICE=y
++CONFIG_SPL_ATF=y
+ CONFIG_SYS_PROMPT="ZynqMP> "
+ CONFIG_FASTBOOT=y
+ CONFIG_FASTBOOT_FLASH=y
+diff --git a/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig b/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig
+index f86dce403a42..5d501eec0edd 100644
+--- a/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig
++++ b/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig
+@@ -20,6 +20,7 @@ CONFIG_BOARD_EARLY_INIT_R=y
+ CONFIG_SPL_OS_BOOT=y
+ CONFIG_SPL_RAM_SUPPORT=y
+ CONFIG_SPL_RAM_DEVICE=y
++CONFIG_SPL_ATF=y
+ CONFIG_SYS_PROMPT="ZynqMP> "
+ CONFIG_FASTBOOT=y
+ CONFIG_FASTBOOT_FLASH=y
+diff --git a/configs/xilinx_zynqmp_zc1751_xm018_dc4_defconfig b/configs/xilinx_zynqmp_zc1751_xm018_dc4_defconfig
+index 6e947cf56827..6f7eaebd7676 100644
+--- a/configs/xilinx_zynqmp_zc1751_xm018_dc4_defconfig
++++ b/configs/xilinx_zynqmp_zc1751_xm018_dc4_defconfig
+@@ -16,6 +16,7 @@ CONFIG_BOARD_EARLY_INIT_R=y
+ CONFIG_SPL_OS_BOOT=y
+ CONFIG_SPL_RAM_SUPPORT=y
+ CONFIG_SPL_RAM_DEVICE=y
++CONFIG_SPL_ATF=y
+ CONFIG_SYS_PROMPT="ZynqMP> "
+ CONFIG_CMD_MEMTEST=y
+ CONFIG_SYS_ALT_MEMTEST=y
+diff --git a/configs/xilinx_zynqmp_zc1751_xm019_dc5_defconfig b/configs/xilinx_zynqmp_zc1751_xm019_dc5_defconfig
+index 1c934858c61c..7a3806cba4b5 100644
+--- a/configs/xilinx_zynqmp_zc1751_xm019_dc5_defconfig
++++ b/configs/xilinx_zynqmp_zc1751_xm019_dc5_defconfig
+@@ -17,6 +17,7 @@ CONFIG_BOARD_EARLY_INIT_R=y
+ CONFIG_SPL_OS_BOOT=y
+ CONFIG_SPL_RAM_SUPPORT=y
+ CONFIG_SPL_RAM_DEVICE=y
++CONFIG_SPL_ATF=y
+ CONFIG_SYS_PROMPT="ZynqMP> "
+ CONFIG_CMD_MEMTEST=y
+ CONFIG_SYS_ALT_MEMTEST=y
+diff --git a/configs/xilinx_zynqmp_zcu102_rev1_0_defconfig b/configs/xilinx_zynqmp_zcu102_rev1_0_defconfig
+index e13c7c56f310..e4408f182ca0 100644
+--- a/configs/xilinx_zynqmp_zcu102_rev1_0_defconfig
++++ b/configs/xilinx_zynqmp_zcu102_rev1_0_defconfig
+@@ -19,6 +19,7 @@ CONFIG_BOARD_EARLY_INIT_R=y
+ CONFIG_SPL_OS_BOOT=y
+ CONFIG_SPL_RAM_SUPPORT=y
+ CONFIG_SPL_RAM_DEVICE=y
++CONFIG_SPL_ATF=y
+ CONFIG_SYS_PROMPT="ZynqMP> "
+ CONFIG_FASTBOOT=y
+ CONFIG_FASTBOOT_FLASH=y
+diff --git a/configs/xilinx_zynqmp_zcu102_revA_defconfig b/configs/xilinx_zynqmp_zcu102_revA_defconfig
+index 5b2cd495ee85..b52f6789fd4b 100644
+--- a/configs/xilinx_zynqmp_zcu102_revA_defconfig
++++ b/configs/xilinx_zynqmp_zcu102_revA_defconfig
+@@ -19,6 +19,7 @@ CONFIG_BOARD_EARLY_INIT_R=y
+ CONFIG_SPL_OS_BOOT=y
+ CONFIG_SPL_RAM_SUPPORT=y
+ CONFIG_SPL_RAM_DEVICE=y
++CONFIG_SPL_ATF=y
+ CONFIG_SYS_PROMPT="ZynqMP> "
+ CONFIG_FASTBOOT=y
+ CONFIG_FASTBOOT_FLASH=y
+diff --git a/configs/xilinx_zynqmp_zcu102_revB_defconfig b/configs/xilinx_zynqmp_zcu102_revB_defconfig
+index e6530fbfe7ff..80592554f682 100644
+--- a/configs/xilinx_zynqmp_zcu102_revB_defconfig
++++ b/configs/xilinx_zynqmp_zcu102_revB_defconfig
+@@ -19,6 +19,7 @@ CONFIG_BOARD_EARLY_INIT_R=y
+ CONFIG_SPL_OS_BOOT=y
+ CONFIG_SPL_RAM_SUPPORT=y
+ CONFIG_SPL_RAM_DEVICE=y
++CONFIG_SPL_ATF=y
+ CONFIG_SYS_PROMPT="ZynqMP> "
+ CONFIG_FASTBOOT=y
+ CONFIG_FASTBOOT_FLASH=y
+-- 
+2.7.4
+
diff --git a/board/zynqmp/post-image.sh b/board/zynqmp/post-image.sh
new file mode 100755
index 000000000000..2e7bcbaab60f
--- /dev/null
+++ b/board/zynqmp/post-image.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# By default U-Boot loads DTB from a file named "system.dtb", so
+# let's use a symlink with that name that points to the *first*
+# devicetree listed in the config.
+
+FIRST_DT=$(sed -nr \
+               -e 's|^BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/([-_/[:alnum:]]*).*"$|\1|p' \
+               ${BR2_CONFIG})
+
+[ -z "${FIRST_DT}" ] || ln -fs ${FIRST_DT}.dtb ${BINARIES_DIR}/system.dtb
+
+support/scripts/genimage.sh -c board/zynqmp/genimage.cfg
diff --git a/board/zynqmp/readme.txt b/board/zynqmp/readme.txt
new file mode 100644
index 000000000000..da37f4ccc9c5
--- /dev/null
+++ b/board/zynqmp/readme.txt
@@ -0,0 +1,51 @@
+********************************
+Xilinx ZCU106 board - ZynqMP SoC
+********************************
+
+This document describes the Buildroot support for the ZCU106 board by
+Xilinx, based on the Zynq UltraScale+ MPSoC (aka ZynqMP). It has been
+tested with the EK-U1-ZCU106-ES2 pre-production board.
+
+How to build it
+===============
+
+Configure Buildroot:
+
+    $ make zynqmp_zcu106_defconfig
+
+Compile everything and build the rootfs image:
+
+    $ make
+
+Result of the build
+-------------------
+
+After building, you should get a tree like this:
+
+    output/images/
+    +-- atf-uboot.ub
+    +-- bl31.bin
+    +-- boot.bin
+    +-- boot.vfat
+    +-- Image
+    +-- rootfs.ext2
+    +-- rootfs.ext4 -> rootfs.ext2
+    +-- sdcard.img
+    +-- system.dtb -> zynqmp-zcu106-revA.dtb
+    +-- u-boot.bin
+    `-- zynqmp-zcu106-revA.dtb
+
+How to write the SD card
+========================
+
+WARNING! This will destroy all the card content. Use with care!
+
+The sdcard.img file is a complete bootable image ready to be written
+on the boot medium. To install it, simply copy the image to an SD
+card:
+
+    # dd if=output/images/sdcard.img of=/dev/sdX
+
+Where 'sdX' is the device node of the SD.
+
+Eject the SD card, insert it in the board, and power it up.
diff --git a/configs/zynqmp_zcu106_defconfig b/configs/zynqmp_zcu106_defconfig
new file mode 100644
index 000000000000..4f454234692f
--- /dev/null
+++ b/configs/zynqmp_zcu106_defconfig
@@ -0,0 +1,34 @@
+BR2_aarch64=y
+BR2_GLOBAL_PATCH_DIR="board/zynqmp/patches/"
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/zynqmp/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_GIT=y
+BR2_LINUX_KERNEL_CUSTOM_REPO_URL="git://github.com/Xilinx/linux-xlnx.git"
+BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="xilinx-v2017.4"
+BR2_LINUX_KERNEL_DEFCONFIG="xilinx_zynqmp"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="xilinx/zynqmp-zcu106-revA"
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+# BR2_TARGET_ROOTFS_TAR is not set
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://github.com/ARM-software/arm-trusted-firmware.git"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v1.5"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="zynqmp"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31_UBOOT=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_GIT=y
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="git://github.com/xilinx/u-boot-xlnx.git"
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="228801a215909365ae1dcdd799034195ad7264f7"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="xilinx_zynqmp_zcu106_revA"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="spl/boot.bin"
+BR2_TARGET_UBOOT_ZYNQMP=y
+BR2_TARGET_UBOOT_ZYNQMP_PMUFW="https://github.com/lucaceresoli/zynqmp-pmufw-binaries/raw/416bf2e1b625993a2fb9fc14924ffe2247d5a0c2/bin/pmufw-zcu106-default-v2017.1.bin"
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-06-21 21:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-21 21:26 [Buildroot] [PATCH v4 0/3] Add Xilinx ZynqMP and ZCU106 board support Luca Ceresoli
2018-06-21 21:26 ` [Buildroot] [PATCH v4 1/3] uboot: zynqmp: allow to use custom psu_init files Luca Ceresoli
2018-06-21 21:26 ` [Buildroot] [PATCH v4 2/3] uboot: zynqmp: generate SPL image with PMUFW binary Luca Ceresoli
2018-06-21 21:26 ` [Buildroot] [PATCH v4 3/3] configs: add Xilinx ZCU106 board (ZynqMP SoC) Luca Ceresoli

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.