diff options
author | Soby Mathew <soby.mathew@arm.com> | 2019-10-04 14:15:59 +0000 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2019-10-04 14:15:59 +0000 |
commit | 7d3054a7a194a43546b65b7c5d814b8212e2e01e (patch) | |
tree | 4d9056c3d3cc86fb248ca312c6a8b75b7cd039fb /tftf | |
parent | 7edf1a5ef3153f761c094c035da3eb10501b7247 (diff) | |
parent | 719714f1895399e6d64049bed3b03c2597d95402 (diff) | |
download | tf-a-tests-7d3054a7a194a43546b65b7c5d814b8212e2e01e.tar.gz |
Merge "TF-A Tests: Enable PAuth on warm boot path"
Diffstat (limited to 'tftf')
-rw-r--r-- | tftf/framework/main.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/tftf/framework/main.c b/tftf/framework/main.c index e84e45070..a2e84b7ea 100644 --- a/tftf/framework/main.c +++ b/tftf/framework/main.c @@ -12,6 +12,7 @@ #include <irq.h> #include <mmio.h> #include <nvm.h> +#include <pauth.h> #include <plat_topology.h> #include <platform.h> #include <platform_def.h> @@ -528,19 +529,12 @@ void __dead2 tftf_cold_boot_main(void) #if ENABLE_PAUTH assert(is_armv8_3_pauth_apa_api_present()); - uint64_t *apiakey = plat_init_apiakey(); - - write_apiakeylo_el1(apiakey[0]); - write_apiakeyhi_el1(apiakey[1]); - - if (IS_IN_EL2()) { - write_sctlr_el2(read_sctlr_el2() | SCTLR_EnIA_BIT); - } else { - assert(IS_IN_EL1()); - write_sctlr_el1(read_sctlr_el1() | SCTLR_EnIA_BIT); - } - - isb(); + /* + * Program APIAKey_EL1 key and enable ARMv8.3-PAuth here as this + * function doesn't return, and RETAA instuction won't be executed, + * what would cause translation fault otherwise. + */ + pauth_init_enable(); #endif /* ENABLE_PAUTH */ tftf_platform_setup(); |