arm64: secmon: add entry point for turned on CPUs

Newly turned on CPUs need a place to go bring its EL3
state inline with expectations. Plumb this path in for
CPUs turning on as well as waking up from a power down
state. Some of the infrastructure declarations were
moved around for easier consumption in ramstage and
secmon. Lastly, a psci_soc_init() is added to
inform the SoC of the CPU's entry point as well do
any initialization.

BUG=chrome-os-partner:32112
BRANCH=None
TEST=Built and booted. On entry point not actually utilized.

Change-Id: I2af424c2906df159f78ed5e0a26a6bc0ba2ba24f
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: dbefec678a111e8b42acf2ae162c1ccdd7f9fd40
Original-Change-Id: I7b8c8c828ffb73752ca3ac1117cd895a5aa275d8
Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/228296
Original-Reviewed-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-on: http://review.coreboot.org/9422
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Tested-by: build bot (Jenkins)
This commit is contained in:
Aaron Durbin
2014-11-06 15:17:33 -06:00
committed by Patrick Georgi
parent 1f4db4046f
commit 6cdacb37f0
8 changed files with 117 additions and 36 deletions

View File

@@ -220,6 +220,15 @@ void psci_turn_on_self(const struct cpu_action *action)
psci_schedule_cpu_on(e);
}
void psci_cpu_entry(void)
{
/*
* Just wait for an action to be performed. Only CPU_ON is supported
* initially. i.e. no power down then wake.
*/
secmon_wait_for_action();
}
static void psci_cpu_on(struct psci_func *pf)
{
uint64_t entry;
@@ -483,7 +492,7 @@ static int psci_allocate_nodes(void)
return 0;
}
void psci_init(void)
void psci_init(uintptr_t cpu_on_entry)
{
struct cpu_action action = {
.run = &psci_link_cpu_info,