diff options
Diffstat (limited to 'src/arch/arm64/c_entry.c')
-rw-r--r-- | src/arch/arm64/c_entry.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/arch/arm64/c_entry.c b/src/arch/arm64/c_entry.c index e2aa4e5fb3..aba9fd3719 100644 --- a/src/arch/arm64/c_entry.c +++ b/src/arch/arm64/c_entry.c @@ -70,12 +70,18 @@ static void secondary_cpu_start(void) { mmu_enable(); exception_hwinit(); - soc_secondary_cpu_init(); - /* - * TODO(adurbin): need a proper place to park the CPUs. Currently - * assuming SoC code does the appropriate thing. - */ - while (1); + + 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. */ + arch_secondary_cpu_init(); } extern void arm64_cpu_startup(void); |