Attention is currently required from: Bill XIE, Arthur Heymans.
Hello Tim Wawrzynczak, Angel Pons, Arthur Heymans,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/69215
to look at the new patch set (#2).
Change subject: cpu/x86/mp_init.c: Fix the logic to add AP cpus ......................................................................
cpu/x86/mp_init.c: Fix the logic to add AP cpus
commit 48c825ebd1beadb8ac4fd3ae687a36ff4705ab7a assumes that (g_)cpu_bus->children->sibling represents the first AP cpu, but this is not true when device tree (like mb/asus/p8x7x-series/devicetree.cb) contains additional static lapic nodes. In such case, Linux kernel can find one cpu unable to wake up, and an additional working cpu without corresponding ACPI firmware node:
smpboot: Allowing 5 CPUs, 0 hotplug CPUs smpboot: CPU0: Intel(R) Xeon(R) CPU E3-1225 V2 @ 3.20GHz (family: 0x6, model: 0x3a, stepping: 0x9) smpboot: do_boot_cpu failed(-1) to wakeup CPU#2
Now, in the end of init_bsp(), the last apic node is held on g_last_apic, and all node representing an AP cpu should be inserted and set up after it. The consistency lost with commit 48c825e should be restored now.
Signed-off-by: Bill XIE persmule@hardenedlinux.org Change-Id: I1075bc52091e619ef79cbeab0a0f6b57cff1d708 --- M src/cpu/x86/mp_init.c 1 file changed, 38 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/15/69215/2