arm64: remove soc_secondary_cpu_init()
The original purpose of soc_secondary_cpu_init() was to provide a way for the SoC to run code on the secondary processors as they come up. Now that devicetree based bringup is supported there's no need to have this functionality. BUG=chrome-os-partner:31761 BRANCH=None TEST=Booted SMP into linux. Change-Id: I6fa39b66a8b728d9982b0721480b7fae45af7c6e Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: 1356ec527e2bc61043ccd7dea4a7ff5182b16f3e Original-Change-Id: Ie5c38ef33efadb2d6fdb2f892b4d08f33eee5c42 Original-Signed-off-by: Aaron Durbin <adurbin@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/216927 Original-Reviewed-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: http://review.coreboot.org/9044 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
b6a81fa94b
commit
3693838d47
|
@ -36,11 +36,6 @@ void __attribute__((weak)) arm64_soc_init(void)
|
||||||
/* Default weak implementation does nothing. */
|
/* Default weak implementation does nothing. */
|
||||||
}
|
}
|
||||||
|
|
||||||
void __attribute__((weak)) soc_secondary_cpu_init(void)
|
|
||||||
{
|
|
||||||
/* Default weak implementation does nothing. */
|
|
||||||
}
|
|
||||||
|
|
||||||
static void seed_stack(void)
|
static void seed_stack(void)
|
||||||
{
|
{
|
||||||
char *stack_begin;
|
char *stack_begin;
|
||||||
|
@ -71,15 +66,6 @@ static void secondary_cpu_start(void)
|
||||||
mmu_enable();
|
mmu_enable();
|
||||||
exception_hwinit();
|
exception_hwinit();
|
||||||
|
|
||||||
if (!IS_ENABLED(CONFIG_SMP)) {
|
|
||||||
soc_secondary_cpu_init();
|
|
||||||
/*
|
|
||||||
* TODO(adurbin): need a proper place to park the CPUs.
|
|
||||||
* Currently assuming SoC code does the appropriate thing.
|
|
||||||
*/
|
|
||||||
while (1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This will never return. */
|
/* This will never return. */
|
||||||
arch_secondary_cpu_init();
|
arch_secondary_cpu_init();
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,13 @@
|
||||||
#ifndef ARCH_CPU_INTERNAL_H
|
#ifndef ARCH_CPU_INTERNAL_H
|
||||||
#define ARCH_CPU_INTERNAL_H
|
#define ARCH_CPU_INTERNAL_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do the necessary work to prepare for secondary CPUs coming up. The
|
||||||
|
* SoC will call this function before bringing up the other CPUs. The
|
||||||
|
* entry point for the seoncdary CPUs is returned.
|
||||||
|
*/
|
||||||
|
void *prepare_secondary_cpu_startup(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Code path for the non-BSP CPUs. This is an internal function used.
|
* Code path for the non-BSP CPUs. This is an internal function used.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -97,19 +97,6 @@ int arch_run_on_all_cpus(struct cpu_action *action);
|
||||||
int arch_run_on_cpu_async(unsigned int cpu, struct cpu_action *action);
|
int arch_run_on_cpu_async(unsigned int cpu, struct cpu_action *action);
|
||||||
int arch_run_on_all_cpus_async(struct cpu_action *action);
|
int arch_run_on_all_cpus_async(struct cpu_action *action);
|
||||||
|
|
||||||
/*
|
|
||||||
* Do the necessary work to prepare for secondary CPUs coming up. The
|
|
||||||
* SoC will call this function before bringing up the other CPUs. The
|
|
||||||
* entry point for the seoncdary CPUs is returned.
|
|
||||||
*/
|
|
||||||
void *prepare_secondary_cpu_startup(void);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Function provided by the SoC code that is called for each secondary
|
|
||||||
* CPU startup.
|
|
||||||
*/
|
|
||||||
void soc_secondary_cpu_init(void);
|
|
||||||
|
|
||||||
#endif /* !__PRE_RAM__ */
|
#endif /* !__PRE_RAM__ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue