From 5e910074245fa180cfbe70d3c8bceeff1eaa026e Mon Sep 17 00:00:00 2001 From: Andrew Thoelke Date: Mon, 2 Jun 2014 11:40:35 +0100 Subject: Per-cpu data cache restructuring This patch prepares the per-cpu pointer cache for wider use by: * renaming the structure to cpu_data and placing in new header * providing accessors for this CPU, or other CPUs * splitting the initialization of the TPIDR pointer from the initialization of the cpu_data content * moving the crash stack initialization to a crash stack function * setting the TPIDR pointer very early during boot Change-Id: Icef9004ff88f8eb241d48c14be3158087d7e49a3 --- services/std_svc/psci/psci_afflvl_on.c | 1 - services/std_svc/psci/psci_afflvl_suspend.c | 1 - services/std_svc/psci/psci_entry.S | 6 ++++++ 3 files changed, 6 insertions(+), 2 deletions(-) (limited to 'services') diff --git a/services/std_svc/psci/psci_afflvl_on.c b/services/std_svc/psci/psci_afflvl_on.c index 443e6af..1c7a877 100644 --- a/services/std_svc/psci/psci_afflvl_on.c +++ b/services/std_svc/psci/psci_afflvl_on.c @@ -380,7 +380,6 @@ static unsigned int psci_afflvl0_on_finish(unsigned long mpidr, */ assert(cm_get_context(NON_SECURE)); cm_set_next_eret_context(NON_SECURE); - cm_init_pcpu_ptr_cache(); write_vbar_el3((uint64_t) runtime_exceptions); /* diff --git a/services/std_svc/psci/psci_afflvl_suspend.c b/services/std_svc/psci/psci_afflvl_suspend.c index a986e5c..3a1a419 100644 --- a/services/std_svc/psci/psci_afflvl_suspend.c +++ b/services/std_svc/psci/psci_afflvl_suspend.c @@ -497,7 +497,6 @@ static unsigned int psci_afflvl0_suspend_finish(unsigned long mpidr, * set on this cpu prior to suspension. */ cm_set_next_eret_context(NON_SECURE); - cm_init_pcpu_ptr_cache(); write_vbar_el3((uint64_t) runtime_exceptions); /* diff --git a/services/std_svc/psci/psci_entry.S b/services/std_svc/psci/psci_entry.S index bc8d900..037673d 100644 --- a/services/std_svc/psci/psci_entry.S +++ b/services/std_svc/psci/psci_entry.S @@ -60,6 +60,12 @@ psci_aff_suspend_finish_entry: psci_aff_common_finish_entry: adr x22, psci_afflvl_power_on_finish + /* --------------------------------------------- + * Initialise the pcpu cache pointer for the CPU + * --------------------------------------------- + */ + bl init_cpu_data_ptr + /* --------------------------------------------- * Exceptions should not occur at this point. * Set VBAR in order to handle and report any -- cgit v1.2.3