git: 147c7e4dde23 - releng/14.1 - Increase IOAPIC_MAX_ID to 255 (from 254)

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Thu, 16 May 2024 12:23:21 UTC
The branch releng/14.1 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=147c7e4dde23b3b787b4fb8b754f043f64ab7adb

commit 147c7e4dde23b3b787b4fb8b754f043f64ab7adb
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2024-05-10 17:40:59 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2024-05-16 12:23:05 +0000

    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
    
    (cherry picked from commit 4e3286818327453efd8e4c133928ba26a169567a)
    (cherry picked from commit 18119e711f1c844bd6eacf5afc8d4cdec3ac8085)
    
    Approved by:    re (cperciva)
---
 sys/x86/include/apicvar.h | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

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)