FABRIC-3.10.8 MC-1b: aarch64's second core online and parked

Cores from the DTB /cpus or, on QEMU (ACPI, no DTB), the MADT GICC
entries; the MADT lookup is now shared (hal/acpi.c) with amd64. PSCI
CPU_ON through the discovered conduit into ap_entry.S, which copies the
boot core's MMU/control state, sets TPIDR_EL1 and parks. Core 1 online
at EL1 with its own block; its vCPU thread 0.0% on the host. QEMU aarch64
-smp 2 -name debug-threads=on. 3-ISA acceptance clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-09-26 13:16:33 -04:00
co-authored by Claude Opus 5.5
parent 24bde47481
commit 3a2ba5149f
16 changed files with 27949 additions and 48 deletions
+9
View File
@@ -485,6 +485,9 @@ endif
ifeq ($(ARCH),riscv64)
LOADER_ASM += $(KERNEL_SRC)/arch/$(ARCH)/kernel_entry.S
endif
ifeq ($(ARCH),aarch64)
LOADER_ASM += $(KERNEL_SRC)/arch/$(ARCH)/ap_entry.S
endif
LOADER_ARCH_SRCS := \
$(KERNEL_SRC)/arch/$(ARCH)/arch.c \
@@ -502,6 +505,10 @@ ifeq ($(ARCH),riscv64)
LOADER_ARCH_SRCS += \
$(KERNEL_SRC)/arch/$(ARCH)/plic.c
endif
ifeq ($(ARCH),aarch64)
LOADER_ARCH_SRCS += \
$(KERNEL_SRC)/arch/$(ARCH)/smp.c
endif
else
LOADER_SRCS_BASE := \
$(KERNEL_SRC)/boot/uefi_loader.c \
@@ -950,6 +957,8 @@ else ifeq ($(ARCH),aarch64)
qemu-system-aarch64 \
-machine virt \
-cpu cortex-a57 \
-smp 2 \
-name debug-threads=on \
$$(if [ -n "$$AAVMF_VARS" ]; then \
echo "-drive if=pflash,format=raw,readonly=on,file=$$AAVMF_CODE -drive if=pflash,format=raw,file=$$AAVMF_VARS"; \
else \