Description:
I'm using FVP + boot-wrapper-aarch64 to boot a kernel. When running with a single core, the boot process is successful. However, when enabling multiple cores, the boot fails.
Observations:
In boot-wrapper-aarch64/common/init.c, it appears that only the primary CPU (CPU 0) executes the following function:
boot-wrapper-aarch64/common/init.c
void cpu_init_bootwrapper(void) { static volatile unsigned int cpu_next = 0; unsigned int cpu = this_cpu_logical_id(); if (cpu == 0) init_bootwrapper(); while (cpu_next != cpu) wfe(); cpu_init_self(cpu); cpu_next = cpu + 1; dsb(sy); sev(); if (cpu != 0) return; while (cpu_next != NR_CPUS) wfe(); print_string("All CPUs initialized. Entering kernel...\r\n\r\n"); }
Possible causes:
sev()
Additional Information:
boot-wrapper-aarch64
Further questions:
Any insights or debugging methods would be appreciated