diff --git a/Makefile b/Makefile index 4d52c316a..15559fb3a 100644 --- a/Makefile +++ b/Makefile @@ -513,6 +513,12 @@ ifeq ($(SPMC_AT_EL3),1) endif endif +################################################################################ +# Include the platform specific Makefile after the SPD Makefile (the platform +# makefile may use all previous definitions in this file) +################################################################################ +include ${PLAT_MAKEFILE_FULL} + ################################################################################ # Process BRANCH_PROTECTION value and set # Pointer Authentication and Branch Target Identification flags @@ -557,12 +563,6 @@ ifeq (${ENABLE_PAUTH}, 1) BL_COMMON_SOURCES += lib/extensions/pauth/pauth_helpers.S endif -################################################################################ -# Include the platform specific Makefile after the SPD Makefile (the platform -# makefile may use all previous definitions in this file) -################################################################################ -include ${PLAT_MAKEFILE_FULL} - ################################################################################ # Setup arch_features based on ARM_ARCH_MAJOR, ARM_ARCH_MINOR provided from # platform. diff --git a/docs/porting-guide.rst b/docs/porting-guide.rst index 5cb20fd9e..671648d04 100644 --- a/docs/porting-guide.rst +++ b/docs/porting-guide.rst @@ -2454,7 +2454,7 @@ pointer authentication keys. The value should be obtained from a reliable source of randomness. This function is only needed if ARMv8.3 pointer authentication is used in the -Trusted Firmware by building with ``BRANCH_PROTECTION`` option set to non-zero. +Trusted Firmware by building with ``BRANCH_PROTECTION`` option set to 1, 2 or 3. Function : plat_get_syscnt_freq2() [mandatory] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/plat/arm/common/arm_bl2_setup.c b/plat/arm/common/arm_bl2_setup.c index 07b3b6203..17dc0ed29 100644 --- a/plat/arm/common/arm_bl2_setup.c +++ b/plat/arm/common/arm_bl2_setup.c @@ -52,17 +52,10 @@ CASSERT(BL2_BASE >= ARM_FW_CONFIG_LIMIT, assert_bl2_base_overflows); #pragma weak bl2_plat_arch_setup #pragma weak bl2_plat_sec_mem_layout -#if ENABLE_RME #define MAP_BL2_TOTAL MAP_REGION_FLAT( \ bl2_tzram_layout.total_base, \ bl2_tzram_layout.total_size, \ - MT_MEMORY | MT_RW | MT_ROOT) -#else -#define MAP_BL2_TOTAL MAP_REGION_FLAT( \ - bl2_tzram_layout.total_base, \ - bl2_tzram_layout.total_size, \ - MT_MEMORY | MT_RW | MT_SECURE) -#endif /* ENABLE_RME */ + MT_MEMORY | MT_RW | EL3_PAS) #pragma weak arm_bl2_plat_handle_post_image_load diff --git a/plat/arm/common/arm_common.mk b/plat/arm/common/arm_common.mk index 73d96c502..580ef5fa1 100644 --- a/plat/arm/common/arm_common.mk +++ b/plat/arm/common/arm_common.mk @@ -363,7 +363,7 @@ BL31_SOURCES += lib/extensions/ras/std_err_record.c \ endif # Pointer Authentication sources -ifeq (${ENABLE_PAUTH}, 1) +ifeq ($(BRANCH_PROTECTION),$(filter $(BRANCH_PROTECTION),1 2 3)) PLAT_BL_COMMON_SOURCES += plat/arm/common/aarch64/arm_pauth.c endif diff --git a/plat/nuvoton/npcm845x/platform.mk b/plat/nuvoton/npcm845x/platform.mk index 1959aacf4..d73756cb3 100644 --- a/plat/nuvoton/npcm845x/platform.mk +++ b/plat/nuvoton/npcm845x/platform.mk @@ -318,9 +318,8 @@ BL31_SOURCES += lib/extensions/ras/std_err_record.c \ endif # Pointer Authentication sources -ifeq (${ENABLE_PAUTH}, 1) -PLAT_BL_COMMON_SOURCES += plat/arm/common/aarch64/arm_pauth.c \ - lib/extensions/pauth/pauth_helpers.S +ifeq ($(BRANCH_PROTECTION),$(filter $(BRANCH_PROTECTION),1 2 3)) +PLAT_BL_COMMON_SOURCES += plat/arm/common/aarch64/arm_pauth.c endif ifeq (${SPD},spmd) diff --git a/plat/qemu/common/common.mk b/plat/qemu/common/common.mk index 51497bd2a..5e3a61afb 100644 --- a/plat/qemu/common/common.mk +++ b/plat/qemu/common/common.mk @@ -149,9 +149,8 @@ $(error "This is an AArch64-only port; CTX_INCLUDE_AARCH32_REGS must be disabled endif # Pointer Authentication sources -ifeq (${ENABLE_PAUTH}, 1) +ifeq ($(BRANCH_PROTECTION),$(filter $(BRANCH_PROTECTION),1 2 3)) PLAT_BL_COMMON_SOURCES += plat/arm/common/aarch64/arm_pauth.c -CTX_INCLUDE_PAUTH_REGS := 1 endif endif