u-boot-brain/arch
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
..
arc CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
arm arm64: zynqmp: spl: install a PMU firmware config object at runtime 2019-07-30 10:20:06 +02:00
m68k Convert to use fsl_esdhc_imx for i.MX platforms 2019-06-23 14:18:34 +08:00
microblaze spl: fix linker size check off-by-one errors 2019-05-05 08:48:50 -04:00
mips mips: mt76xx: Implement new d-cache fix in last_stage_init() 2019-07-05 17:12:27 +02:00
nds32 CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
nios2 .gitignore: move *.dtb and *.dtb.S patterns to the top-level .gitignore 2018-06-18 14:43:12 -04:00
powerpc km: modify Kconfig file organization for KM boards 2019-07-11 10:58:03 +02:00
riscv efi_loader: use predefined constants in crt0_*_efi.S 2019-07-16 22:17:14 +00:00
sandbox doc: arch: sandbox: Replace all the instances of README.sandbox 2019-07-29 09:32:09 -04:00
sh sh: r0p7734: Remove the board 2019-06-14 12:42:06 +02:00
x86 x86: Add a forward struct declaration in coreboot_tables.h 2019-07-10 16:52:58 -06:00
xtensa CONFIG_SPL_SYS_[DI]CACHE_OFF: add 2019-05-18 08:15:35 -04:00
.gitignore
Kconfig test: dm: add a test for MDIO MUX DM uclass 2019-07-18 16:37:13 -05:00