[Buildroot] [PATCH v2-RESEND 0/6] Add Xilinx ZynqMP and ZCU106 board support

Luca Ceresoli luca at lucaceresoli.net
Fri Apr 6 16:34:15 UTC 2018


Hi,

[*Resending since patchwork missed most patches last time*]

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.

First, it requires ARM Trusted Firmware in the U-Boot mkimage format,
not currently implemented. Nothing really hard here, this is addressed
in patch 2 (with a trivial preliminary cleanup in patch 1).

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, I've set up a repository with pre-built PMU firmwares and
added a new package that just downloads from there. This is similar to
the binaries-marvell and vexpress-firmware packages. This is added in
patch 3.

Finally, U-Boot needs some tweaks in order for the PMU firmware to
properly loaded and to initialize peripherals before starting
Linux. This is done in patches 4 and 5.

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

Main changes since v1:
 - Do not add the huge psu_init files to Buildroot. Instead use the
   zcu106 support in the Xilinx master branch (but add two patches to
   fix it). The option to use a user-provided psu_init file is still
   present because many users will use the same board in a different
   configuration or a custom board.
 - Use a recent version of U-Boot. Upstream v2018.01 has been merged
   into the Xilinx master branch, which is a big step from the
   previous version based on upstream 2017.01. Xilinx has not tagged
   any version since that, so we use a SHA-1.
 - Split patch 4 in two as it was doing two different things.

Luca

Luca Ceresoli (6):
  arm-trusted-firmware: simplify release dir path
  arm-trusted-firmware: generate atf-uboot.ub for ZynqMP booting
  zynqmp-pmufw-binaries: new package
  uboot: zynqmp: generate SPL image with PMUFW binary
  uboot: zynqmp: allow to use custom psu_init files
  configs: add Xilinx ZCU106 board (ZynqMP SoC)

 DEVELOPERS                                         |  3 ++
 board/zynqmp/genimage.cfg                          | 28 +++++++++++
 ...1-arm64-zynqmp-zcu106-fix-SPL-MMC-booting.patch | 56 ++++++++++++++++++++++
 ...arm64-zynqmp-zcu106-enable-booting-to-ATF.patch | 39 +++++++++++++++
 board/zynqmp/post-image.sh                         | 13 +++++
 board/zynqmp/readme.txt                            | 52 ++++++++++++++++++++
 boot/Config.in                                     |  1 +
 boot/arm-trusted-firmware/Config.in                |  9 ++++
 boot/arm-trusted-firmware/arm-trusted-firmware.mk  | 24 +++++++++-
 boot/uboot/Config.in                               | 33 +++++++++++++
 boot/uboot/uboot.mk                                | 25 ++++++++++
 boot/zynqmp-pmufw-binaries/Config.in               | 19 ++++++++
 .../zynqmp-pmufw-binaries.hash                     |  3 ++
 .../zynqmp-pmufw-binaries/zynqmp-pmufw-binaries.mk | 26 ++++++++++
 configs/zynqmp_zcu106_defconfig                    | 31 ++++++++++++
 15 files changed, 361 insertions(+), 1 deletion(-)
 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-zcu106-enable-booting-to-ATF.patch
 create mode 100755 board/zynqmp/post-image.sh
 create mode 100644 board/zynqmp/readme.txt
 create mode 100644 boot/zynqmp-pmufw-binaries/Config.in
 create mode 100644 boot/zynqmp-pmufw-binaries/zynqmp-pmufw-binaries.hash
 create mode 100644 boot/zynqmp-pmufw-binaries/zynqmp-pmufw-binaries.mk
 create mode 100644 configs/zynqmp_zcu106_defconfig

-- 
2.7.4



More information about the buildroot mailing list