smp: fix IRQs on secondary CPUs

Seems one of the registers is some kind of system-level CPU spinup flag,
without which the CPU runs but the rest of the system thinks it's still
dead.

Signed-off-by: Hector Martin <marcan@marcan.st>
This commit is contained in:
Hector Martin 2021-02-03 19:18:57 +09:00
parent cb7e7f7918
commit e35ef6eb8c

View file

@ -68,6 +68,11 @@ static void smp_start_cpu(int index, int cluster, int core, u64 rvbar, u64 cpu_s
write64(rvbar, (u64)_vectors_start);
// Some kind of system level startup/status bit
// Without this, IRQs don't work
write32(cpu_start_base + 0x4, 1 << index);
// Actually start the core
if (cluster == 0) {
write32(cpu_start_base + 0x8, 1 << core);
} else {