arm-trusted-firmware/plat
Andre Przywara c4597e13a2 rpi4: Accommodate "armstub8.bin" header at the beginning of BL31 image
The Raspberry Pi GPU firmware checks for a magic value at offset 240
(0xf0) of the armstub8.bin image it loads. If that value matches,
it writes the kernel load address and the DTB address into subsequent
memory locations.
We can use these addresses to avoid hardcoding these values into the BL31
image, to make it more flexible and a drop-in replacement for the
official armstub8.bin.

Reserving just 16 bytes at offset 240 of the final image file is not easily
possible, though, as this location is in the middle of the generic BL31
entry point code.
However we can prepend an extra section before the actual BL31 image, to
contain the magic and addresses. This needs to be 4KB, because the
actual BL31 entry point needs to be page aligned.

Use the platform linker script hook that the generic code provides, to
add an almost empty 4KB code block before the entry point code. The very
first word contains a branch instruction to jump over this page, into
the actual entry code.
This also gives us plenty of room for the SMP pens later.

Change-Id: I38caa5e7195fa39cbef8600933a03d86f09263d6
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2019-09-25 11:45:35 +01:00
..
allwinner Remove MULTI_CONSOLE_API flag and references to it 2019-06-28 10:52:48 +01:00
amlogic amlogic: scpi: Add support to retrieve chip ID 2019-09-17 13:11:50 +01:00
arm Merge "Refactor ARMv8.3 Pointer Authentication support code" into integration 2019-09-13 15:22:23 +00:00
common Add UBSAN support and handlers 2019-09-11 14:15:54 +01:00
hisilicon Switch AARCH32/AARCH64 to __aarch64__ 2019-08-01 13:45:03 -07:00
imx Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
intel/soc Invalidate dcache build option for bl2 entry at EL3 2019-09-12 12:36:31 +00:00
layerscape Switch AARCH32/AARCH64 to __aarch64__ 2019-08-01 13:45:03 -07:00
marvell Replace __ASSEMBLY__ with compiler-builtin __ASSEMBLER__ 2019-08-01 13:14:12 -07:00
mediatek mediatek: mt8183: add MTK MCDI driver 2019-09-16 10:35:05 +08:00
nvidia/tegra Tegra: memctrl_v2: fix "overflow before widen" coverity issue 2019-09-05 08:40:38 -07:00
qemu qemu: Simplify the image size calculation 2019-09-18 15:58:13 +02:00
renesas/rcar rcar_get3: drivers: ddr: Partly unify register macros between DDR A and B 2019-08-29 13:02:30 +02:00
rockchip Merge changes from topic "rockchip-uart-fixes" into integration 2019-08-15 15:30:13 +00:00
rpi rpi4: Accommodate "armstub8.bin" header at the beginning of BL31 image 2019-09-25 11:45:35 +01:00
socionext uniphier: set CONSOLE_FLAG_TRANSLATE_CRLF and clean up console driver 2019-09-03 09:08:16 +00:00
st stm32mp1: manage CONSOLE_FLAG_TRANSLATE_CRLF and cleanup driver 2019-09-10 17:21:58 +02:00
ti/k3 ti: k3: common: Trap all asynchronous bus errors to EL3 2019-07-04 12:14:46 -04:00
xilinx plat: xilinx: zynqmp: Initialize IPI table from zynqmp_config_setup() 2019-09-10 12:25:56 -07:00