diff options
Diffstat (limited to 'services/std_svc/psci/psci_setup.c')
-rw-r--r-- | services/std_svc/psci/psci_setup.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/services/std_svc/psci/psci_setup.c b/services/std_svc/psci/psci_setup.c index 9e4955dc..b49b6e81 100644 --- a/services/std_svc/psci/psci_setup.c +++ b/services/std_svc/psci/psci_setup.c @@ -201,6 +201,15 @@ static void psci_init_aff_map_node(unsigned long mpidr, psci_svc_cpu_data.power_state, PSCI_INVALID_DATA); + /* + * There is no state associated with the current execution + * context so ensure that any reads of the highest affinity + * level in a powered down state return PSCI_INVALID_DATA. + */ + set_cpu_data_by_index(linear_id, + psci_svc_cpu_data.max_phys_off_afflvl, + PSCI_INVALID_DATA); + cm_set_context_by_mpidr(mpidr, (void *) &psci_ns_context[linear_id], NON_SECURE); |