feat(arm): convert arm platforms to expect a wakeup
Newer cores in upcoming platforms may refuse to power down. The PSCI
library is already prepared for this so convert platform code to also
allow this. This is simple - drop the `wfi` + panic and let common code
deal with the fallout. The end result will be the same (sans the
message) except the platform will have fewer responsibilities. The only
exception is for cores being signalled to power off gracefully ahead of
system reset. That path must also be terminal so replace the end with
the same psci_pwrdown_cpu_end() to behave the same as the generic
implementation. It will handle wakeups and panic, hoping that the system
gets reset from under it. The dmb is upgraded to a dsb so no functional
change.
Change-Id: I381f96bec8532bda6ccdac65de57971aac42e7e8
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
diff --git a/drivers/arm/css/scp/css_pm_scpi.c b/drivers/arm/css/scp/css_pm_scpi.c
index b4019ce..02be070 100644
--- a/drivers/arm/css/scp/css_pm_scpi.c
+++ b/drivers/arm/css/scp/css_pm_scpi.c
@@ -117,7 +117,7 @@
/*
* Helper function to shutdown the system via SCPI.
*/
-void __dead2 css_scp_sys_shutdown(void)
+void css_scp_sys_shutdown(void)
{
uint32_t response;
@@ -134,15 +134,12 @@
ERROR("CSS System Off: SCP error %u.\n", response);
panic();
}
- wfi();
- ERROR("CSS System Off: operation not handled.\n");
- panic();
}
/*
* Helper function to reset the system via SCPI.
*/
-void __dead2 css_scp_sys_reboot(void)
+void css_scp_sys_reboot(void)
{
uint32_t response;
@@ -159,7 +156,4 @@
ERROR("CSS System Reset: SCP error %u.\n", response);
panic();
}
- wfi();
- ERROR("CSS System Reset: operation not handled.\n");
- panic();
}