From 6bca5c2873ef4cfccd8d2ebeedad29c9d5a6ec7f Mon Sep 17 00:00:00 2001 From: Damien Zammit Date: Mon, 29 Jan 2024 10:06:57 +0000 Subject: Support up to two IOAPICs with up to 32 GSIs on each Previously, only IOAPIC[0] was supported. Now this supports up to two IOAPICs. Message-ID: <20240129100652.1262126-1-damien@zamaudio.com> --- i386/i386at/acpi_parse_apic.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'i386/i386at/acpi_parse_apic.c') diff --git a/i386/i386at/acpi_parse_apic.c b/i386/i386at/acpi_parse_apic.c index 9cd861ed..1aef53ed 100644 --- a/i386/i386at/acpi_parse_apic.c +++ b/i386/i386at/acpi_parse_apic.c @@ -331,6 +331,9 @@ acpi_apic_add_ioapic(struct acpi_apic_ioapic *ioapic_entry) io_apic.ioapic = (ApicIoUnit *)kmem_map_aligned_table(ioapic_entry->addr, sizeof(ApicIoUnit), VM_PROT_READ | VM_PROT_WRITE); + io_apic.ioapic->select.r = APIC_IO_VERSION; + io_apic.ngsis = ((io_apic.ioapic->window.r >> APIC_IO_ENTRIES_SHIFT) & 0xff) + 1; + /* Insert IOAPIC in the list. */ apic_add_ioapic(io_apic); } -- cgit v1.2.3