u-boot-brain/board/xilinx/zynqmp
Luca Ceresoli c28a9cfa40 arm64: zynqmp: spl: install a PMU firmware config object at runtime
Optionally allow U-Boot to load a configuration object into the Power
Management Unit (PMU) firmware on Xilinx ZynqMP.

The configuration object is required by the PMU FW to enable most SoC
peripherals. So far the only way to boot using U-Boot SPL was to hard-code
the configuration object in the PMU firmware. Allow a different boot
process, where the PMU FW is equal for any ZynqMP chip and its
configuration is passed at runtime by U-Boot SPL.

All the code for Inter-processor communication with the PMU is isolated in
a new file (pmu_ipc.c). The code is inspired by the same feature as
implemented in the Xilinx First Stage Bootloader (FSBL) and Arm Trusted
Firmware:

 * fb647e6b4c/lib/sw_apps/zynqmp_fsbl/src/xfsbl_misc_drivers.c (L295)
 * c48d02bade/plat/xilinx/zynqmp/pm_service/pm_api_sys.c (L357)

SPL logs on the console before loading the configuration object:

  U-Boot SPL 2019.07-rc1-00511-gaec224515c87 (May 15 2019 - 08:43:41 +0200)
  Loading PMUFW cfg obj (2008 bytes)
  EL Level:	EL3
  ...

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
2019-07-30 10:20:06 +02:00
..
zynqmp-zc1232-revA SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-zc1254-revA SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-zc1275-revB SPDX: Correct SPDX tags from recent xilinx merge 2018-05-11 14:54:57 -04:00
zynqmp-zc1751-xm015-dc1 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-zc1751-xm016-dc2 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-zc1751-xm017-dc3 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-zc1751-xm018-dc4 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-zc1751-xm019-dc5 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-zcu100-revC arm64: zynqmp: Reset FPD Watchdog on zcu100 2018-05-11 09:23:43 +02:00
zynqmp-zcu102-rev1.0 SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-zcu102-revA SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-zcu104-revA SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-zcu106-revA SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
avnet-ultra96-rev1 arm64: zynqmp: Add support for Avnet Ultra96 2018-08-06 08:44:35 +02:00
cmds.c arm64: zynqmp: Fix tcminit help text alignment 2019-01-24 10:03:43 +01:00
Kconfig arm64: zynqmp: Add support for verifying secure images 2018-03-23 09:36:15 +01:00
MAINTAINERS arm64: zynqmp: Cover ultra96 dts file by MAINTAINERS fragment 2019-06-21 10:07:11 -04:00
Makefile arm64: zynqmp: spl: install a PMU firmware config object at runtime 2019-07-30 10:20:06 +02:00
pm_cfg_obj.h arm64: zynqmp: spl: install a PMU firmware config object at runtime 2019-07-30 10:20:06 +02:00
pm_cfg_obj.S arm64: zynqmp: spl: install a PMU firmware config object at runtime 2019-07-30 10:20:06 +02:00
sleep.h arm64: zynqmp: Add empty sleep.h file for psu_init* compilation 2017-06-20 16:40:58 +02:00
tap_delays.c mmc: zynq_sdhci: Add support for SD3.0 2018-05-11 11:13:51 +02:00
xil_io.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmp-mini arm64: zynqmp: Add mini mtest configuration 2018-11-30 10:45:26 +01:00
zynqmp-mini-emmc0 arm64: zynqmp: Wire mini-emmc0 configuration with zcu100 2018-11-30 10:45:26 +01:00
zynqmp-mini-emmc1 arm64: zynqmp: Wire mini-emmc1 configuration with zcu102 2018-11-30 10:45:26 +01:00
zynqmp-mini-qspi arm64: zynqmp: Enable SPL for mini qspi configuration 2018-11-29 15:13:57 +01:00
zynqmp-zc1275-revA arm64: zynqmp: Add support for zc12xx boards 2018-04-09 12:14:52 +02:00
zynqmp-zcu104-revC arm64: zynqmp: Add support for zcu104 customer board 2018-04-09 12:14:52 +02:00
zynqmp.c arm64: zynqmp: spl: install a PMU firmware config object at runtime 2019-07-30 10:20:06 +02:00