|
@@ -65,7 +65,7 @@ static volatile unsigned long smp_invalidate_needed;
|
|
|
|
|
|
/* Bitmask of CPUs present in the system - exported by i386_syms.c, used
|
|
|
* by scheduler but indexed physically */
|
|
|
-cpumask_t phys_cpu_present_map = CPU_MASK_NONE;
|
|
|
+static cpumask_t voyager_phys_cpu_present_map = CPU_MASK_NONE;
|
|
|
|
|
|
/* The internal functions */
|
|
|
static void send_CPI(__u32 cpuset, __u8 cpi);
|
|
@@ -366,19 +366,19 @@ void __init find_smp_config(void)
|
|
|
/* set up everything for just this CPU, we can alter
|
|
|
* this as we start the other CPUs later */
|
|
|
/* now get the CPU disposition from the extended CMOS */
|
|
|
- cpus_addr(phys_cpu_present_map)[0] =
|
|
|
+ cpus_addr(voyager_phys_cpu_present_map)[0] =
|
|
|
voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK);
|
|
|
- cpus_addr(phys_cpu_present_map)[0] |=
|
|
|
+ cpus_addr(voyager_phys_cpu_present_map)[0] |=
|
|
|
voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK + 1) << 8;
|
|
|
- cpus_addr(phys_cpu_present_map)[0] |=
|
|
|
+ cpus_addr(voyager_phys_cpu_present_map)[0] |=
|
|
|
voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK +
|
|
|
2) << 16;
|
|
|
- cpus_addr(phys_cpu_present_map)[0] |=
|
|
|
+ cpus_addr(voyager_phys_cpu_present_map)[0] |=
|
|
|
voyager_extended_cmos_read(VOYAGER_PROCESSOR_PRESENT_MASK +
|
|
|
3) << 24;
|
|
|
- init_cpu_possible(&phys_cpu_present_map);
|
|
|
- printk("VOYAGER SMP: phys_cpu_present_map = 0x%lx\n",
|
|
|
- cpus_addr(phys_cpu_present_map)[0]);
|
|
|
+ init_cpu_possible(&voyager_phys_cpu_present_map);
|
|
|
+ printk("VOYAGER SMP: voyager_phys_cpu_present_map = 0x%lx\n",
|
|
|
+ cpus_addr(voyager_phys_cpu_present_map)[0]);
|
|
|
/* Here we set up the VIC to enable SMP */
|
|
|
/* enable the CPIs by writing the base vector to their register */
|
|
|
outb(VIC_DEFAULT_CPI_BASE, VIC_CPI_BASE_REGISTER);
|
|
@@ -628,15 +628,15 @@ void __init smp_boot_cpus(void)
|
|
|
/* now that the cat has probed the Voyager System Bus, sanity
|
|
|
* check the cpu map */
|
|
|
if (((voyager_quad_processors | voyager_extended_vic_processors)
|
|
|
- & cpus_addr(phys_cpu_present_map)[0]) !=
|
|
|
- cpus_addr(phys_cpu_present_map)[0]) {
|
|
|
+ & cpus_addr(voyager_phys_cpu_present_map)[0]) !=
|
|
|
+ cpus_addr(voyager_phys_cpu_present_map)[0]) {
|
|
|
/* should panic */
|
|
|
printk("\n\n***WARNING*** "
|
|
|
"Sanity check of CPU present map FAILED\n");
|
|
|
}
|
|
|
} else if (voyager_level == 4)
|
|
|
voyager_extended_vic_processors =
|
|
|
- cpus_addr(phys_cpu_present_map)[0];
|
|
|
+ cpus_addr(voyager_phys_cpu_present_map)[0];
|
|
|
|
|
|
/* this sets up the idle task to run on the current cpu */
|
|
|
voyager_extended_cpus = 1;
|
|
@@ -670,7 +670,7 @@ void __init smp_boot_cpus(void)
|
|
|
/* loop over all the extended VIC CPUs and boot them. The
|
|
|
* Quad CPUs must be bootstrapped by their extended VIC cpu */
|
|
|
for (i = 0; i < nr_cpu_ids; i++) {
|
|
|
- if (i == boot_cpu_id || !cpu_isset(i, phys_cpu_present_map))
|
|
|
+ if (i == boot_cpu_id || !cpu_isset(i, voyager_phys_cpu_present_map))
|
|
|
continue;
|
|
|
do_boot_cpu(i);
|
|
|
/* This udelay seems to be needed for the Quad boots
|