a5ds: Add handler for when user tries to switch off secondary cores
a5ds only has always-on power domain and there is no power control present. However, without the pwr_domain_off handler, the kernel panics when the user will try to switch off secondary cores. The a5ds_pwr_domain_off handler will prevent kernel from crashing, i.e. the kernel will attempt but fail to shut down the secondary CPUs if the user tries to switch them offline. Change-Id: I3c2239a1b6f035113ddbdda063c8495000cbe30c Signed-off-by: Usama Arif <usama.arif@arm.com>
This commit is contained in:
parent
ace23683be
commit
59ffec157c
|
@ -3,6 +3,7 @@
|
|||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
#include <assert.h>
|
||||
|
||||
#include <lib/psci/psci.h>
|
||||
#include <plat/arm/common/plat_arm.h>
|
||||
|
@ -39,6 +40,18 @@ void a5ds_pwr_domain_on_finish(const psci_power_state_t *target_state)
|
|||
gicv2_cpuif_enable();
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Platform handler called when a power domain is about to be turned off. The
|
||||
* target_state encodes the power state that each level should transition to.
|
||||
* a5ds only has always-on power domain and there is no power control present.
|
||||
******************************************************************************/
|
||||
void a5ds_pwr_domain_off(const psci_power_state_t *target_state)
|
||||
{
|
||||
ERROR("CPU_OFF not supported on this platform\n");
|
||||
assert(false);
|
||||
panic();
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Export the platform handlers via a5ds_psci_pm_ops. The ARM Standard
|
||||
* platform layer will take care of registering the handlers with PSCI.
|
||||
|
@ -47,7 +60,8 @@ plat_psci_ops_t a5ds_psci_pm_ops = {
|
|||
/* dummy struct */
|
||||
.validate_ns_entrypoint = NULL,
|
||||
.pwr_domain_on = a5ds_pwr_domain_on,
|
||||
.pwr_domain_on_finish = a5ds_pwr_domain_on_finish
|
||||
.pwr_domain_on_finish = a5ds_pwr_domain_on_finish,
|
||||
.pwr_domain_off = a5ds_pwr_domain_off
|
||||
};
|
||||
|
||||
int __init plat_setup_psci_ops(uintptr_t sec_entrypoint,
|
||||
|
|
Loading…
Reference in New Issue