diff options
author | Ed Maste <emaste@FreeBSD.org> | 2024-05-10 17:40:59 +0000 |
---|---|---|
committer | Ed Maste <emaste@FreeBSD.org> | 2024-05-10 19:40:18 +0000 |
commit | 4e3286818327453efd8e4c133928ba26a169567a (patch) | |
tree | 34f73b31f672d304ddc016e33605f59deda02474 | |
parent | 9d8a3718e24c9ec1ffca6efba64aba3e308aee96 (diff) | |
download | src-4e3286818327453efd8e4c133928ba26a169567a.tar.gz src-4e3286818327453efd8e4c133928ba26a169567a.zip |
Increase IOAPIC_MAX_ID to 255 (from 254)
A test system provided by AMD panicked with "madt_parse_apics:
I/O APIC ID 255 too high". I/O APIC ID 255 is acceptable, so increase
the limit.
Reviewed by: jhb, kib
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D45157
-rw-r--r-- | sys/x86/include/apicvar.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/x86/include/apicvar.h b/sys/x86/include/apicvar.h index 10016e291b9b..ac6a82659e34 100644 --- a/sys/x86/include/apicvar.h +++ b/sys/x86/include/apicvar.h @@ -78,7 +78,12 @@ #define MAX_APIC_ID 0x800 #define APIC_ID_ALL 0xffffffff -#define IOAPIC_MAX_ID xAPIC_MAX_APIC_ID +/* + * The 0xff ID is used for broadcast IPIs for local APICs when not using + * x2APIC. IPIs are not sent to I/O APICs so it's acceptable for an I/O APIC + * to use that ID. + */ +#define IOAPIC_MAX_ID 0xff /* I/O Interrupts are used for external devices such as ISA, PCI, etc. */ #define APIC_IO_INTS (IDT_IO_INTS + 16) |