Messages in this thread Patch in this message | | | Date | Wed, 15 Jan 2003 11:21:50 -0800 | From | "Martin J. Bligh" <> | Subject | [PATCH] (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.
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/
| |