2/8 Move NUMA-Q support into subarch
PATCH 1/1 2/8 Move NUMA-Q support into subarch
This patch adds a shell of a NUMA-Q subarch directory, and copies mach-default/mach_apic.h into it. I then edited the default version to remove the NUMA-Q stuff, and the NUMA-Q version to remove the default stuff.
arch/i386/Makefile +4 -0
@@ -53,6 +53,10 @@ mcore-y := mach-default mflags-$(CONFIG_VISWS) := -Iinclude/asm-i386/mach-visws mcore-$(CONFIG_VISWS) := mach-visws +#NUMAQ subarch support +mflags-$(CONFIG_X86_NUMAQ) := -Iinclude/asm-i386/mach-numaq +mcore-$(CONFIG_X86_NUMAQ) := mach-default + #add other subarch support here #default subarch .h files
include/asm-i386/mach-default/mach_apic.h +3 -6
@@ -12,7 +12,7 @@ static inline unsigned long calculate_ld#define APIC_DFR_VALUE (APIC_DFR_FLAT)#ifdef CONFIG_SMP -#define TARGET_CPUS (clustered_apic_mode ? 0xf : cpu_online_map) +#define TARGET_CPUS (cpu_online_map)#else #define TARGET_CPUS 0x01#endif
@@ -27,15 +27,12 @@ static inline void summit_check(char *oestatic inline void clustered_apic_check (void ) {printk ("Enabling APIC mode: %s. Using %d I/O APICs\n" , - (clustered_apic_mode ?"NUMA-Q" :"Flat" ), nr_ioapics); +"Flat" , nr_ioapics); }static inline int cpu_present_to_apicid (int mps_cpu) { -if (clustered_apic_mode) -return ( ((mps_cpu/4 )*16 ) + (1 <<(mps_cpu%4 )) ); -else -return mps_cpu; +return mps_cpu; }static inline unsigned long apicid_to_cpu_present (int apicid)
include/asm-i386/mach-numaq/mach_apic.h +39 -0
@@ -0,0 +1,39 @@ +#ifndef __ASM_MACH_APIC_H +#define __ASM_MACH_APIC_H + +static inline unsigned long calculate_ldr (unsigned long old) +{ +unsigned long id; + + id =1UL <<smp_processor_id (); +return ((old & ~APIC_LDR_MASK ) |SET_APIC_LOGICAL_ID (id)); +} + +#define APIC_DFR_VALUE (APIC_DFR_FLAT) + +#define TARGET_CPUS (0xf) + +#define APIC_BROADCAST_ID 0x0F +#define check_apicid_used (bitmap, apicid) (bitmap & (1 << apicid)) + +static inline void summit_check (char *oem,char *productid) +{ +} + +static inline void clustered_apic_check (void ) +{ +printk ("Enabling APIC mode: %s. Using %d I/O APICs\n" , +"NUMA-Q" , nr_ioapics); +} + +static inline int cpu_present_to_apicid (int mps_cpu) +{ +return ( ((mps_cpu/4 )*16 ) + (1 <<(mps_cpu%4 )) ); +} + +static inline unsigned long apicid_to_cpu_present (int apicid) +{ +return (1ul << apicid); +} + +#endif /* __ASM_MACH_APIC_H */