|
@@ -116,12 +116,16 @@ void __init early_print(const char *str, ...)
|
|
|
|
|
|
void __init smp_setup_processor_id(void)
|
|
|
{
|
|
|
+ u64 mpidr = read_cpuid_mpidr() & MPIDR_HWID_BITMASK;
|
|
|
+ cpu_logical_map(0) = mpidr;
|
|
|
+
|
|
|
/*
|
|
|
* clear __my_cpu_offset on boot CPU to avoid hang caused by
|
|
|
* using percpu variable early, for example, lockdep will
|
|
|
* access percpu variable inside lock_release
|
|
|
*/
|
|
|
set_my_cpu_offset(0);
|
|
|
+ pr_info("Booting Linux on physical CPU 0x%lx\n", (unsigned long)mpidr);
|
|
|
}
|
|
|
|
|
|
bool arch_match_cpu_phys_id(int cpu, u64 phys_id)
|
|
@@ -399,7 +403,6 @@ void __init setup_arch(char **cmdline_p)
|
|
|
|
|
|
psci_init();
|
|
|
|
|
|
- cpu_logical_map(0) = read_cpuid_mpidr() & MPIDR_HWID_BITMASK;
|
|
|
cpu_read_bootcpu_ops();
|
|
|
#ifdef CONFIG_SMP
|
|
|
smp_init_cpus();
|