mirror of
https://github.com/AsahiLinux/m1n1
synced 2024-11-22 06:33:03 +00:00
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:
parent
cb7e7f7918
commit
e35ef6eb8c
1 changed files with 5 additions and 0 deletions
|
@ -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);
|
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) {
|
if (cluster == 0) {
|
||||||
write32(cpu_start_base + 0x8, 1 << core);
|
write32(cpu_start_base + 0x8, 1 << core);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue