|
@@ -78,7 +78,6 @@ unsigned int compat_elf_hwcap2 __read_mostly;
|
|
|
#endif
|
|
|
|
|
|
static const char *cpu_name;
|
|
|
-static const char *machine_name;
|
|
|
phys_addr_t __fdt_pointer __initdata;
|
|
|
|
|
|
/*
|
|
@@ -310,8 +309,6 @@ static void __init setup_machine_fdt(phys_addr_t dt_phys)
|
|
|
while (true)
|
|
|
cpu_relax();
|
|
|
}
|
|
|
-
|
|
|
- machine_name = of_flat_dt_get_machine_name();
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -450,10 +447,21 @@ static int c_show(struct seq_file *m, void *v)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
- seq_printf(m, "Processor\t: %s rev %d (%s)\n",
|
|
|
- cpu_name, read_cpuid_id() & 15, ELF_PLATFORM);
|
|
|
+ /*
|
|
|
+ * Dump out the common processor features in a single line. Userspace
|
|
|
+ * should read the hwcaps with getauxval(AT_HWCAP) rather than
|
|
|
+ * attempting to parse this.
|
|
|
+ */
|
|
|
+ seq_puts(m, "features\t:");
|
|
|
+ for (i = 0; hwcap_str[i]; i++)
|
|
|
+ if (elf_hwcap & (1 << i))
|
|
|
+ seq_printf(m, " %s", hwcap_str[i]);
|
|
|
+ seq_puts(m, "\n\n");
|
|
|
|
|
|
for_each_online_cpu(i) {
|
|
|
+ struct cpuinfo_arm64 *cpuinfo = &per_cpu(cpu_data, i);
|
|
|
+ u32 midr = cpuinfo->reg_midr;
|
|
|
+
|
|
|
/*
|
|
|
* glibc reads /proc/cpuinfo to determine the number of
|
|
|
* online processors, looking for lines beginning with
|
|
@@ -462,25 +470,13 @@ static int c_show(struct seq_file *m, void *v)
|
|
|
#ifdef CONFIG_SMP
|
|
|
seq_printf(m, "processor\t: %d\n", i);
|
|
|
#endif
|
|
|
+ seq_printf(m, "implementer\t: 0x%02x\n",
|
|
|
+ MIDR_IMPLEMENTOR(midr));
|
|
|
+ seq_printf(m, "variant\t\t: 0x%x\n", MIDR_VARIANT(midr));
|
|
|
+ seq_printf(m, "partnum\t\t: 0x%03x\n", MIDR_PARTNUM(midr));
|
|
|
+ seq_printf(m, "revision\t: 0x%x\n\n", MIDR_REVISION(midr));
|
|
|
}
|
|
|
|
|
|
- /* dump out the processor features */
|
|
|
- seq_puts(m, "Features\t: ");
|
|
|
-
|
|
|
- for (i = 0; hwcap_str[i]; i++)
|
|
|
- if (elf_hwcap & (1 << i))
|
|
|
- seq_printf(m, "%s ", hwcap_str[i]);
|
|
|
-
|
|
|
- seq_printf(m, "\nCPU implementer\t: 0x%02x\n", read_cpuid_id() >> 24);
|
|
|
- seq_printf(m, "CPU architecture: AArch64\n");
|
|
|
- seq_printf(m, "CPU variant\t: 0x%x\n", (read_cpuid_id() >> 20) & 15);
|
|
|
- seq_printf(m, "CPU part\t: 0x%03x\n", (read_cpuid_id() >> 4) & 0xfff);
|
|
|
- seq_printf(m, "CPU revision\t: %d\n", read_cpuid_id() & 15);
|
|
|
-
|
|
|
- seq_puts(m, "\n");
|
|
|
-
|
|
|
- seq_printf(m, "Hardware\t: %s\n", machine_name);
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|