diff options
Diffstat (limited to 'arch/arm/kernel/setup.c')
-rw-r--r-- | arch/arm/kernel/setup.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 2cab741ad0f8..c45d10d07bde 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -205,7 +205,7 @@ static const char *proc_arch[] = { | |||
205 | "5TE", | 205 | "5TE", |
206 | "5TEJ", | 206 | "5TEJ", |
207 | "6TEJ", | 207 | "6TEJ", |
208 | "?(10)", | 208 | "7", |
209 | "?(11)", | 209 | "?(11)", |
210 | "?(12)", | 210 | "?(12)", |
211 | "?(13)", | 211 | "?(13)", |
@@ -258,14 +258,17 @@ int cpu_architecture(void) | |||
258 | { | 258 | { |
259 | int cpu_arch; | 259 | int cpu_arch; |
260 | 260 | ||
261 | if ((processor_id & 0x0000f000) == 0) { | 261 | if ((processor_id & 0x0008f000) == 0) { |
262 | cpu_arch = CPU_ARCH_UNKNOWN; | 262 | cpu_arch = CPU_ARCH_UNKNOWN; |
263 | } else if ((processor_id & 0x0000f000) == 0x00007000) { | 263 | } else if ((processor_id & 0x0008f000) == 0x00007000) { |
264 | cpu_arch = (processor_id & (1 << 23)) ? CPU_ARCH_ARMv4T : CPU_ARCH_ARMv3; | 264 | cpu_arch = (processor_id & (1 << 23)) ? CPU_ARCH_ARMv4T : CPU_ARCH_ARMv3; |
265 | } else { | 265 | } else if ((processor_id & 0x00080000) == 0x00000000) { |
266 | cpu_arch = (processor_id >> 16) & 7; | 266 | cpu_arch = (processor_id >> 16) & 7; |
267 | if (cpu_arch) | 267 | if (cpu_arch) |
268 | cpu_arch += CPU_ARCH_ARMv3; | 268 | cpu_arch += CPU_ARCH_ARMv3; |
269 | } else { | ||
270 | /* the revised CPUID */ | ||
271 | cpu_arch = ((processor_id >> 12) & 0xf) - 0xb + CPU_ARCH_ARMv6; | ||
269 | } | 272 | } |
270 | 273 | ||
271 | return cpu_arch; | 274 | return cpu_arch; |
@@ -863,11 +866,11 @@ static int c_show(struct seq_file *m, void *v) | |||
863 | seq_printf(m, "\nCPU implementer\t: 0x%02x\n", processor_id >> 24); | 866 | seq_printf(m, "\nCPU implementer\t: 0x%02x\n", processor_id >> 24); |
864 | seq_printf(m, "CPU architecture: %s\n", proc_arch[cpu_architecture()]); | 867 | seq_printf(m, "CPU architecture: %s\n", proc_arch[cpu_architecture()]); |
865 | 868 | ||
866 | if ((processor_id & 0x0000f000) == 0x00000000) { | 869 | if ((processor_id & 0x0008f000) == 0x00000000) { |
867 | /* pre-ARM7 */ | 870 | /* pre-ARM7 */ |
868 | seq_printf(m, "CPU part\t\t: %07x\n", processor_id >> 4); | 871 | seq_printf(m, "CPU part\t\t: %07x\n", processor_id >> 4); |
869 | } else { | 872 | } else { |
870 | if ((processor_id & 0x0000f000) == 0x00007000) { | 873 | if ((processor_id & 0x0008f000) == 0x00007000) { |
871 | /* ARM7 */ | 874 | /* ARM7 */ |
872 | seq_printf(m, "CPU variant\t: 0x%02x\n", | 875 | seq_printf(m, "CPU variant\t: 0x%02x\n", |
873 | (processor_id >> 16) & 127); | 876 | (processor_id >> 16) & 127); |