From e07242e3a1589742772732c4e739f78bdab20a00 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Tue, 19 Dec 2023 22:08:43 -0500 Subject: kernel/amd64: lapic: Fixup LAPIC state tracking This commit removes the lapic_set_base() function and certain globals from the Local APIC driver so it won't cause problems on hardware with many CPU sockets or that is just wacky. Signed-off-by: Ian Moffett --- sys/include/arch/amd64/cpu.h | 2 ++ sys/include/arch/amd64/lapic.h | 1 - sys/include/firmware/acpi/acpi.h | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'sys/include') diff --git a/sys/include/arch/amd64/cpu.h b/sys/include/arch/amd64/cpu.h index 9645aac..ff294de 100644 --- a/sys/include/arch/amd64/cpu.h +++ b/sys/include/arch/amd64/cpu.h @@ -54,6 +54,8 @@ struct cpu_info { /* AMD64 */ volatile size_t lapic_tmr_freq; + volatile void *lapic_base; + volatile bool has_x2apic; volatile struct tss_entry *tss; }; diff --git a/sys/include/arch/amd64/lapic.h b/sys/include/arch/amd64/lapic.h index 11edfe4..1e7caf6 100644 --- a/sys/include/arch/amd64/lapic.h +++ b/sys/include/arch/amd64/lapic.h @@ -36,7 +36,6 @@ #define LAPIC_TMR_PERIODIC 0x01 void lapic_timer_init(size_t *freq_out); -void lapic_set_base(void *mmio_base); void lapic_init(void); #endif /* !_AMD64_LAPIC_H_ */ diff --git a/sys/include/firmware/acpi/acpi.h b/sys/include/firmware/acpi/acpi.h index 3352627..7d092e7 100644 --- a/sys/include/firmware/acpi/acpi.h +++ b/sys/include/firmware/acpi/acpi.h @@ -31,6 +31,7 @@ #define _ACPI_ACPI_H_ #include +#include #include void acpi_init(void); @@ -39,6 +40,6 @@ void *acpi_query(const char *query); bool acpi_is_checksum_valid(struct acpi_header *hdr); struct acpi_root_sdt *acpi_get_root_sdt(void); size_t acpi_get_root_sdt_len(void); -void acpi_parse_madt(void); +void acpi_parse_madt(struct cpu_info *ci); #endif /* !_ACPI_ACPI_H_ */ -- cgit v1.2.3