On 17:01 Wed 30 Jan , Ruslan Bilovol wrote: > Currently, reading /proc/cpuinfo provides userspace with CPU ID of > the CPU carrying out the read from the file. > Userspace using this information may decide what module > to load or how to configure some specific (and processor-depended) > settings or so. > However, since really different SoCs can share same ARM core, > this information currently is not so useful. > For example, TI OMAP4460 and OMAP4470 SoCs show the same > information in the /proc/cpuinfo whereas they are different. > Since in most cases ARM CPU is a part of some system on a chip (SoC), > the "cpuinfo" file looks like exactly that place, where this > information have to be displayed. > > So added new line "SoC name" in the "cpuinfo" output for system > on a chip name. It is placed between CPU information and machine > information, so the file structure looks gracefully (CPU-SoC-Hardware) Nack this break the kernel ABI and we have now socinfo via sysfs Best Regards, J. > > Example: > > / # cat proc/cpuinfo > [...] > CPU variant : 0x2 > CPU part : 0xc09 > CPU revision : 10 > > SoC name : OMAP4470 > > Hardware : OMAP4 Blaze Tablet > Revision : 20edb4 > [...] > > Signed-off-by: Ruslan Bilovol <ruslan.bilovol@xxxxxx> > --- > arch/arm/include/asm/setup.h | 1 + > arch/arm/kernel/setup.c | 9 +++++++++ > 2 files changed, 10 insertions(+) > > diff --git a/arch/arm/include/asm/setup.h b/arch/arm/include/asm/setup.h > index c50f056..621df40 100644 > --- a/arch/arm/include/asm/setup.h > +++ b/arch/arm/include/asm/setup.h > @@ -52,5 +52,6 @@ extern struct meminfo meminfo; > extern int arm_add_memory(phys_addr_t start, phys_addr_t size); > extern void early_print(const char *str, ...); > extern void dump_machine_table(void); > +extern void set_soc_model_name(char *name); > > #endif > diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c > index 3f6cbb2..bb3805f 100644 > --- a/arch/arm/kernel/setup.c > +++ b/arch/arm/kernel/setup.c > @@ -134,6 +134,7 @@ char elf_platform[ELF_PLATFORM_SIZE]; > EXPORT_SYMBOL(elf_platform); > > static const char *cpu_name; > +static const char *soc_name; > static const char *machine_name; > static char __initdata cmd_line[COMMAND_LINE_SIZE]; > struct machine_desc *machine_desc __initdata; > @@ -493,6 +494,11 @@ static void __init setup_processor(void) > cpu_init(); > } > > +void set_soc_model_name(char *name) > +{ > + soc_name = name; > +} > + > void __init dump_machine_table(void) > { > struct machine_desc *p; > @@ -902,6 +908,9 @@ static int c_show(struct seq_file *m, void *v) > seq_printf(m, "CPU revision\t: %d\n\n", cpuid & 15); > } > > + if (soc_name) > + seq_printf(m, "SoC name\t: %s\n\n", soc_name); > + > seq_printf(m, "Hardware\t: %s\n", machine_name); > seq_printf(m, "Revision\t: %04x\n", system_rev); > seq_printf(m, "Serial\t\t: %08x%08x\n", > -- > 1.7.9.5 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html