Skip to contentSkip to conversation

ARM: display machine model in cpuinfo

PATCH New Rafał Miłecki 3 participants 3 messages Dec 14, 2014 – Dec 15, 2014 Arm (32-bit)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: display machine model in cpuinfo

This may be useful to display hardware model in the /proc/cpuinfo. It definitely helps to identify the device and there are some archs already doing that (arm64, m32r, mips).
Use the model from DT and add it to the cpuinfo.

---
 arch/arm/kernel/setup.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
arch/arm/kernel/setup.c +5 -2
index c031063..957d9ac 100644
@@ -145,6 +145,7 @@ EXPORT_SYMBOL(elf_platform);
 
 static const char *cpu_name;
 static const char *machine_name;
+static const char *hardware;
 static char __initdata cmd_line[COMMAND_LINE_SIZE];
 const struct machine_desc *machine_desc __initdata;
 
@@ -899,7 +900,8 @@ void __init setup_arch(char **cmdline_p)
 	if (!mdesc)
 		mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type);
 	machine_desc = mdesc;
-	machine_name = mdesc->name;
+	machine_name = of_flat_dt_get_machine_name();
+	hardware = mdesc->name;
 
 	if (mdesc->reboot_mode != REBOOT_HARD)
 		reboot_mode = mdesc->reboot_mode;
@@ -1077,7 +1079,8 @@ static int c_show(struct seq_file *m, void *v)
 		seq_printf(m, "CPU revision\t: %d\n\n", cpuid & 15);
 	}
 
-	seq_printf(m, "Hardware\t: %s\n", machine_name);
+	seq_printf(m, "Machine\t\t: %s\n", machine_name);
+	seq_printf(m, "Hardware\t: %s\n", hardware);
 	seq_printf(m, "Revision\t: %04x\n", system_rev);
 	seq_printf(m, "Serial\t\t: %08x%08x\n",
 		   system_serial_high, system_serial_low);
Signature · 1 line
1.8.4.5
#1 lore raw

PATCH 1/1 ARM: display machine model in cpuinfo

Quoted 3 lines · Rafa? Mi?ecki

This may be useful to display hardware model in the /proc/cpuinfo. It definitely helps to identify the device and there are some archs already doing that (arm64, m32r, mips).

Not true for arm64, if you look in linux-next.

I'm rather wary of exposing this kind via cpuinfo because it's completely arbitrary in nature and not guaranteed to be in any way useful (I have seen dtbs where the model string is misleading due to copy+paste and no modificiation).

Mark.

Quoted 47 lines

Use the model from DT and add it to the cpuinfo.

---
 arch/arm/kernel/setup.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
arch/arm/kernel/setup.c +5 -2
index c031063..957d9ac 100644
@@ -145,6 +145,7 @@ EXPORT_SYMBOL(elf_platform);
 
 static const char *cpu_name;
 static const char *machine_name;
+static const char *hardware;
 static char __initdata cmd_line[COMMAND_LINE_SIZE];
 const struct machine_desc *machine_desc __initdata;
 
@@ -899,7 +900,8 @@ void __init setup_arch(char **cmdline_p)
 	if (!mdesc)
 		mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type);
 	machine_desc = mdesc;
-	machine_name = mdesc->name;
+	machine_name = of_flat_dt_get_machine_name();
+	hardware = mdesc->name;
 
 	if (mdesc->reboot_mode != REBOOT_HARD)
 		reboot_mode = mdesc->reboot_mode;
@@ -1077,7 +1079,8 @@ static int c_show(struct seq_file *m, void *v)
 		seq_printf(m, "CPU revision\t: %d\n\n", cpuid & 15);
 	}
 
-	seq_printf(m, "Hardware\t: %s\n", machine_name);
+	seq_printf(m, "Machine\t\t: %s\n", machine_name);
+	seq_printf(m, "Hardware\t: %s\n", hardware);
 	seq_printf(m, "Revision\t: %04x\n", system_rev);
 	seq_printf(m, "Serial\t\t: %08x%08x\n",
 		   system_serial_high, system_serial_low);
Signature · 7 lines
1.8.4.5


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
#2 lore raw

PATCH 1/1 ARM: display machine model in cpuinfo

Quoted 11 lines · Mark Rutland
Quoted 3 lines · Rafa? Mi?ecki

This may be useful to display hardware model in the /proc/cpuinfo. It definitely helps to identify the device and there are some archs already doing that (arm64, m32r, mips).

Not true for arm64, if you look in linux-next.

I'm rather wary of exposing this kind via cpuinfo because it's completely arbitrary in nature and not guaranteed to be in any way useful (I have seen dtbs where the model string is misleading due to copy+paste and no modificiation).

I wonder what's wrong with reading it from /sys/firmware/devicetree/base/model if that exists, if not falling back to reading it from /proc/cpuinfo.

Even better of course to use /sys/firmware/devicetree/base/compatible

Signature · 2 lines
FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up
according to speedtest.net.