Skip to contentSkip to conversation

(4/5) Fix APIC header defines for Summit

PATCH New Martin J. Bligh 1 participant 1 message Jan 15, 2003

lore
Share & tools
lore
#0 lore raw

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

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.

arch/i386/kernel/io_apic.c +1 -1
diff -Nru a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c
@@ -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)
 {
include/asm-i386/apicdef.h +7 -2
diff -Nru a/include/asm-i386/apicdef.h b/include/asm-i386/apicdef.h
@@ -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)
include/asm-i386/mach-summit/mach_mpparse.h +3 -1
diff -Nru a/include/asm-i386/mach-summit/mach_mpparse.h b/include/asm-i386/mach-summit/mach_mpparse.h
@@ -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;
 }
 
include/asm-i386/mpspec.h +3 -3
diff -Nru a/include/asm-i386/mpspec.h b/include/asm-i386/mpspec.h
@@ -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