aboutsummaryrefslogtreecommitdiff
path: root/src/arch/arm64/c_entry.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/arm64/c_entry.c')
-rw-r--r--src/arch/arm64/c_entry.c18
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);