summaryrefslogtreecommitdiff
path: root/lib/psci
diff options
context:
space:
mode:
authorSoby Mathew <soby.mathew@arm.com>2019-09-13 15:22:23 +0000
committerTrustedFirmware Code Review <review@review.trustedfirmware.org>2019-09-13 15:22:23 +0000
commit6129e9a643274e658a0e6f5428ad976676c7bb7a (patch)
tree04ab176ebe7086290e4f788566d3d25b647a086f /lib/psci
parent2cb662f3d0676099d469478be17e5889014677e6 (diff)
parented108b56051de5da8024568a06781ce287e86c78 (diff)
Merge "Refactor ARMv8.3 Pointer Authentication support code" into integration
Diffstat (limited to 'lib/psci')
-rw-r--r--lib/psci/psci_setup.c8
-rw-r--r--lib/psci/psci_suspend.c8
2 files changed, 14 insertions, 2 deletions
diff --git a/lib/psci/psci_setup.c b/lib/psci/psci_setup.c
index b9467d3e..853f9157 100644
--- a/lib/psci/psci_setup.c
+++ b/lib/psci/psci_setup.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -280,6 +280,12 @@ void psci_arch_setup(void)
/* Having initialized cpu_ops, we can now print errata status */
print_errata_status();
+
+#if ENABLE_PAUTH
+ /* Store APIAKey_EL1 key */
+ set_cpu_data(apiakey[0], read_apiakeylo_el1());
+ set_cpu_data(apiakey[1], read_apiakeyhi_el1());
+#endif /* ENABLE_PAUTH */
}
/******************************************************************************
diff --git a/lib/psci/psci_suspend.c b/lib/psci/psci_suspend.c
index 6d5c099f..98dd2d62 100644
--- a/lib/psci/psci_suspend.c
+++ b/lib/psci/psci_suspend.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -304,6 +304,12 @@ void psci_cpu_suspend_finish(int cpu_idx, const psci_power_state_t *state_info)
counter_freq = plat_get_syscnt_freq2();
write_cntfrq_el0(counter_freq);
+#if ENABLE_PAUTH
+ /* Store APIAKey_EL1 key */
+ set_cpu_data(apiakey[0], read_apiakeylo_el1());
+ set_cpu_data(apiakey[1], read_apiakeyhi_el1());
+#endif /* ENABLE_PAUTH */
+
/*
* Call the cpu suspend finish handler registered by the Secure Payload
* Dispatcher to let it do any bookeeping. If the handler encounters an