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:
co-authored by
Claude Opus 5.5
parent
24bde47481
commit
3a2ba5149f
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
StarForth — Steady-State Virtual Machine Runtime
|
||||
|
||||
Copyright (c) 2023–2025 Robert A. James
|
||||
All rights reserved.
|
||||
|
||||
This file is part of the StarForth project.
|
||||
|
||||
Licensed under the StarForth License, Version 1.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* acpi.h - Finding an ACPI table from the RSDP (FABRIC-3.10.8 MC-1b).
|
||||
*
|
||||
* Shared by the core enumeration of amd64 (MADT Local APIC entries) and
|
||||
* aarch64 (MADT GICC entries, when the firmware hands over ACPI rather
|
||||
* than a devicetree, as QEMU's AAVMF does).
|
||||
*/
|
||||
#ifndef STARKERNEL_ACPI_H
|
||||
#define STARKERNEL_ACPI_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* The first XSDT-listed table whose 4-byte signature is `sig`, or NULL.
|
||||
* `rsdp` is BootInfo->acpi_table (ACPI 2.0+ RSDP); NULL-safe. */
|
||||
const uint8_t *acpi_find_table(const void *rsdp, const char *sig);
|
||||
|
||||
/* A table's length field (bytes 4..7 of its header). */
|
||||
uint32_t acpi_table_length(const uint8_t *table);
|
||||
|
||||
#endif /* STARKERNEL_ACPI_H */
|
||||
@@ -60,4 +60,8 @@ int arch_smp_start(BootInfo *boot_info, sk_percpu_t *pc, void *stack_top);
|
||||
/* One park step: interrupts stay masked; returns when the core wakes. */
|
||||
void arch_smp_park_once(void);
|
||||
|
||||
/* Once `pc` is online: what the ISA can say about how it arrived (the
|
||||
* exception level, the privilege mode), as a short phrase for its line. */
|
||||
const char *arch_smp_arrival(const sk_percpu_t *pc);
|
||||
|
||||
#endif /* STARKERNEL_SMP_H */
|
||||
|
||||
Reference in New Issue
Block a user