This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

FVP + boot-wrapper-aarch64 Multi-Core Boot Failure

Description:

I'm using FVP + boot-wrapper-aarch64 to boot a Linux 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 boot function:

```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:

    1. SEV() issue: Could sev() fail to activate secondary CPUs?
    2. CPU power-on issue: Are secondary CPUs actually powered on?

Additional Information:

  • I only use boot-wrapper-aarch64, without TF-A.
  • Could this be an FVP issue? Does FVP handle SMC PSCI requests properly for boot-wrapper-aarch64?
  • I suspect that boot-wrapper-aarch64 itself plays the role of TF-A, so it should handle PSCI requests.

Further questions:

  1. How can I trace the CPU states in FVP Base Model?
  2. How can I determine whether each CPU is in EL1 or EL3?
  3. How can I monitor whether each CPU successfully powers on/off via PSCI requests?

Any insights or debugging methods would be appreciated!