arm-trusted-firmware/plat
Manish V Badarkhe f98630fbbf plat/arm: fvp: Protect GICR frames for fused/unused cores
Currently, BLs are mapping the GIC memory region as read-write
for all cores on boot-up.

This opens up the security hole where the active core can write
the GICR frame of fused/inactive core. To avoid this issue, disable
the GICR frame of all inactive cores as below:

1. After primary CPU boots up, map GICR region of all cores as
   read-only.
2. After primary CPU boots up, map its GICR region as read-write
   and initialize its redistributor interface.
3. After secondary CPU boots up, map its GICR region as read-write
   and initialize its redistributor interface.
4. All unused/fused core's redistributor regions remain read-only and
   write attempt to such protected regions results in an exception.

As mentioned above, this patch offers only the GICR memory-mapped
region protection considering there is no facility at the GIC IP
level to avoid writing the redistributor area.

These changes are currently done in BL31 of Arm FVP and guarded under
the flag 'FVP_GICR_REGION_PROTECTION'.

As of now, this patch is tested manually as below:
1. Disable the FVP cores (core 1, 2, 3) with core 0 as an active core.
2. Verify data abort triggered by manually updating the ‘GICR_CTLR’
   register of core 1’s(fused) redistributor from core 0(active).

Change-Id: I86c99c7b41bae137b2011cf2ac17fad0a26e776d
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2021-02-09 15:55:26 +00:00
..
allwinner allwinner: Leave CPU power alone during BL31 setup 2021-01-24 17:15:43 -06:00
amlogic Plat AXG: Fix PLAT_MAX_PWR_LVL value 2020-12-29 13:52:11 +00:00
arm plat/arm: fvp: Protect GICR frames for fused/unused cores 2021-02-09 15:55:26 +00:00
brcm Merge "Don't return error information from console_flush" into integration 2020-10-14 18:59:27 +00:00
common Fix typos and misspellings 2020-11-12 15:21:11 +00:00
hisilicon Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
imx Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
intel/soc intel: common: Fix non-MISRA compliant code v2 2020-10-27 11:21:00 +08:00
layerscape Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
marvell plat: marvell: armada: a3k: Do not use 'echo -e' in Makefile 2021-01-29 17:46:50 +01:00
mediatek mediatek: mt8192: add rtc power off sequence 2020-12-16 17:22:02 +08:00
nvidia/tegra plat/nvidia: tegra: Rename SMC API 2020-11-19 20:09:28 +00:00
qemu Merge changes from topic "tp-feat-rng" into integration 2021-01-26 14:58:00 +00:00
qti plat:qti Mandate SMC implementaion 2020-11-20 01:09:52 +05:30
renesas plat: renesas: rzg: DT memory node enhancements 2021-01-13 19:15:57 +00:00
rockchip rockchip: Add support for the stack protector 2020-12-01 11:54:57 +01:00
rpi Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
socionext Don't return error information from console_flush 2020-10-09 10:21:50 -05:00
st Merge changes from topic "scmi-msg" into integration 2021-01-27 15:14:46 +00:00
ti/k3 ti: k3: Introduce lite device board support 2020-12-23 06:36:25 -06:00
xilinx plat: xilinx: versal: Remove code duplication 2021-01-20 00:59:33 -08:00