summaryrefslogtreecommitdiff
path: root/lib/psci/psci_off.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/psci/psci_off.c')
-rw-r--r--lib/psci/psci_off.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/psci/psci_off.c b/lib/psci/psci_off.c
index 471141dd..1cc6ede3 100644
--- a/lib/psci/psci_off.c
+++ b/lib/psci/psci_off.c
@@ -33,6 +33,8 @@
#include <assert.h>
#include <debug.h>
#include <platform.h>
+#include <pmf.h>
+#include <runtime_instr.h>
#include <string.h>
#include "psci_private.h"
@@ -153,6 +155,19 @@ exit:
dsbish();
inv_cpu_data(psci_svc_cpu_data.aff_info_state);
+#if ENABLE_RUNTIME_INSTRUMENTATION
+
+ /*
+ * Update the timestamp with cache off. We assume this
+ * timestamp can only be read from the current CPU and the
+ * timestamp cache line will be flushed before return to
+ * normal world on wakeup.
+ */
+ PMF_CAPTURE_TIMESTAMP(rt_instr_svc,
+ RT_INSTR_ENTER_HW_LOW_PWR,
+ PMF_NO_CACHE_MAINT);
+#endif
+
if (psci_plat_pm_ops->pwr_domain_pwr_down_wfi) {
/* This function must not return */
psci_plat_pm_ops->pwr_domain_pwr_down_wfi(&state_info);