[PATCH] (4/5) Fix APIC header defines for Summit

Martin J. Bligh (mbligh@aracnet.com)
Wed, 15 Jan 2003 11:21:50 -0800


Patch from James Cleverdon & John Stultz

Changes IO_APIC_MAX_ID to depend on the APIC type we're using.
The Summit machines have to use a larger set of bits in the apic registers,
we enlarge under ifdef for Summit only. We enlarge MAX_APICS for summit
as well as NUMA-Q (it would be nice to move this to subarch, but it creates
circular dependency problems ... I'll fix this up later).

Adds a check for the newer Summit boxes with a different name.

diff -Nru a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c
--- a/arch/i386/kernel/io_apic.c Tue Jan 14 11:02:28 2003
+++ b/arch/i386/kernel/io_apic.c Tue Jan 14 11:02:28 2003
@@ -1763,7 +1763,7 @@

#ifdef CONFIG_ACPI_BOOT

-#define IO_APIC_MAX_ID 15
+#define IO_APIC_MAX_ID APIC_BROADCAST_ID

int __init io_apic_get_unique_id (int ioapic, int apic_id)
{
diff -Nru a/include/asm-i386/apicdef.h b/include/asm-i386/apicdef.h
--- a/include/asm-i386/apicdef.h Tue Jan 14 11:02:28 2003
+++ b/include/asm-i386/apicdef.h Tue Jan 14 11:02:28 2003
@@ -11,8 +11,13 @@
#define APIC_DEFAULT_PHYS_BASE 0xfee00000

#define APIC_ID 0x20
-#define APIC_ID_MASK (0x0F<<24)
-#define GET_APIC_ID(x) (((x)>>24)&0x0F)
+#ifdef CONFIG_X86_SUMMIT
+ #define APIC_ID_MASK (0xFF<<24)
+ #define GET_APIC_ID(x) (((x)>>24)&0xFF)
+#else
+ #define APIC_ID_MASK (0x0F<<24)
+ #define GET_APIC_ID(x) (((x)>>24)&0x0F)
+#endif
#define APIC_LVR 0x30
#define APIC_LVR_MASK 0xFF00FF
#define GET_APIC_VERSION(x) ((x)&0xFF)
diff -Nru a/include/asm-i386/mach-summit/mach_mpparse.h b/include/asm-i386/mach-summit/mach_mpparse.h
--- a/include/asm-i386/mach-summit/mach_mpparse.h Tue Jan 14 11:02:28 2003
+++ b/include/asm-i386/mach-summit/mach_mpparse.h Tue Jan 14 11:02:28 2003
@@ -15,7 +15,9 @@
static inline void mps_oem_check(struct mp_config_table *mpc, char *oem,
char *productid)
{
- if (!strncmp(oem, "IBM ENSW", 8) && !strncmp(str, "VIGIL SMP", 9))
+ if (!strncmp(oem, "IBM ENSW", 8) &&
+ (!strncmp(productid, "VIGIL SMP", 9)
+ || !strncmp(productid, "RUTHLESS SMP", 12)))
x86_summit = 1;
}

diff -Nru a/include/asm-i386/mpspec.h b/include/asm-i386/mpspec.h
--- a/include/asm-i386/mpspec.h Tue Jan 14 11:02:28 2003
+++ b/include/asm-i386/mpspec.h Tue Jan 14 11:02:28 2003
@@ -16,11 +16,11 @@
/*
* a maximum of 16 APICs with the current APIC ID architecture.
*/
-#ifdef CONFIG_X86_NUMA
+#if defined(CONFIG_X86_NUMAQ) || defined (CONFIG_X86_SUMMIT)
#define MAX_APICS 256
-#else /* !CONFIG_X86_NUMA */
+#else
#define MAX_APICS 16
-#endif /* CONFIG_X86_NUMA */
+#endif

#define MAX_MPC_ENTRY 1024

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/