diff --git a/Makefile b/Makefile index 6f080b441..09ebb0ba3 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_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