From: Marco Felsch Date: Fri, 1 Jul 2022 13:55:30 +0000 (+0200) Subject: feat(imx8mp): add BL31 PIE support X-Git-Tag: baikal/aarch64/sdk5.9~59^2 X-Git-Url: https://git.baikalelectronics.ru/sdk/?a=commitdiff_plain;h=7a443fefa4eaef65332a38c8189573b5b4b4a1e3;p=arm-tf.git feat(imx8mp): add BL31 PIE support Enable PIE support so the BL31 firmware can be loaded from anywhere within the OCRAM (SRAM). How important this is shows the back and forth of the BL31_BASE address starting with TF-A v2.5. Since then the BL31_BASE address wasn't stable and choosing the correct combination of SPL version loadaddress and TF-A version loadaddr was tricky. For the PIE support we only need to replace the BL31_BASE by the BL31_START which is a relocatable symbol and to enable it by setting ENABLE_PIE := 1. Signed-off-by: Marco Felsch Change-Id: I4214db1f27120f9f9cd1413ccd7a5a7d095ff45d --- diff --git a/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c b/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c index 4221633e0..a5edf9880 100644 --- a/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c +++ b/plat/imx/imx8m/imx8mp/imx8mp_bl31_setup.c @@ -176,7 +176,7 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, } #define MAP_BL31_TOTAL \ - MAP_REGION_FLAT(BL31_BASE, BL31_SIZE, MT_MEMORY | MT_RW | MT_SECURE) + MAP_REGION_FLAT(BL31_START, BL31_SIZE, MT_MEMORY | MT_RW | MT_SECURE) #define MAP_BL31_RO \ MAP_REGION_FLAT(BL_CODE_BASE, BL_CODE_END - BL_CODE_BASE, MT_MEMORY | MT_RO | MT_SECURE) #define MAP_COHERENT_MEM \ diff --git a/plat/imx/imx8m/imx8mp/platform.mk b/plat/imx/imx8m/imx8mp/platform.mk index e8669e5f8..b8fdbab1c 100644 --- a/plat/imx/imx8m/imx8mp/platform.mk +++ b/plat/imx/imx8m/imx8mp/platform.mk @@ -138,6 +138,7 @@ $(ROTPK_HASH): $(ROT_KEY) ${OPENSSL_BIN_PATH}/openssl dgst -sha256 -binary > $@ 2>/dev/null endif +ENABLE_PIE := 1 USE_COHERENT_MEM := 1 RESET_TO_BL31 := 1 A53_DISABLE_NON_TEMPORAL_HINT := 0