diff options
| author | Martin J. Bligh <mbligh@aracnet.com> | 2003-01-14 19:29:51 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2003-01-14 19:29:51 -0800 |
| commit | eb0258126de912460cf549167728f5b48a6de5cf (patch) | |
| tree | e4926a9d1b5a584b6f317050622f51f98a19307f /include | |
| parent | a5aea3c61ebdea58bf09524ad17b1513a61b09af (diff) | |
[PATCH] 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.
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-i386/apicdef.h | 9 | ||||
| -rw-r--r-- | include/asm-i386/mach-summit/mach_mpparse.h | 4 | ||||
| -rw-r--r-- | include/asm-i386/mpspec.h | 6 |
3 files changed, 13 insertions, 6 deletions
diff --git a/include/asm-i386/apicdef.h b/include/asm-i386/apicdef.h index 4aac5f72e9ed..47aa0c17c49a 100644 --- 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) diff --git a/include/asm-i386/mach-summit/mach_mpparse.h b/include/asm-i386/mach-summit/mach_mpparse.h index 1d73e88f061a..cb0c875b58ce 100644 --- 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 mpc_oem_pci_bus(struct mpc_config_bus *m, 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 --git a/include/asm-i386/mpspec.h b/include/asm-i386/mpspec.h index 6f3a009bad64..bdb208ca961c 100644 --- 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 |
