ARM: kernel: add MIDR to per-CPU information data
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tue, 6 Nov 2012 11:57:43 +0000 (11:57 +0000)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Mon, 19 Nov 2012 14:51:11 +0000 (14:51 +0000)
The advent of big.LITTLE ARM platforms requires the kernel to be able
to identify the MIDRs of all online CPUs upon request. MIDRs are stashed
at boot time so that kernel subsystems can detect the MIDR of online CPUs
by simply retrieving per-CPU data updated by all booted CPUs.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
arch/arm/include/asm/cpu.h
arch/arm/kernel/smp.c

index d797223b39d5b4cf5889dc0465d1b235bd223fb1..2744f0602550fc16a9b80bc9ff55669b011af20f 100644 (file)
@@ -15,6 +15,7 @@
 
 struct cpuinfo_arm {
        struct cpu      cpu;
+       u32             cpuid;
 #ifdef CONFIG_SMP
        unsigned int    loops_per_jiffy;
 #endif
index fbc8b2623d82f08c8c2926375a7b8a31f943361b..7eacd84cdc9c24b1262d68af3f7a43cf4775284f 100644 (file)
@@ -281,6 +281,7 @@ static void __cpuinit smp_store_cpu_info(unsigned int cpuid)
        struct cpuinfo_arm *cpu_info = &per_cpu(cpu_data, cpuid);
 
        cpu_info->loops_per_jiffy = loops_per_jiffy;
+       cpu_info->cpuid = read_cpuid_id();
 
        store_cpu_topology(cpuid);
 }