|
@@ -426,13 +426,14 @@ int __cpu_logical_map[NR_CPUS];
|
|
|
void __init smp_setup_processor_id(void)
|
|
|
{
|
|
|
int i;
|
|
|
- u32 cpu = is_smp() ? read_cpuid_mpidr() & 0xff : 0;
|
|
|
+ u32 mpidr = is_smp() ? read_cpuid_mpidr() & MPIDR_HWID_BITMASK : 0;
|
|
|
+ u32 cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0);
|
|
|
|
|
|
cpu_logical_map(0) = cpu;
|
|
|
- for (i = 1; i < NR_CPUS; ++i)
|
|
|
+ for (i = 1; i < nr_cpu_ids; ++i)
|
|
|
cpu_logical_map(i) = i == cpu ? 0 : i;
|
|
|
|
|
|
- printk(KERN_INFO "Booting Linux on physical CPU %d\n", cpu);
|
|
|
+ printk(KERN_INFO "Booting Linux on physical CPU 0x%x\n", mpidr);
|
|
|
}
|
|
|
|
|
|
static void __init setup_processor(void)
|