linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: dt: Use the 'model' field for printing the hardware revision
@ 2013-05-28 12:04 Fabio Estevam
  2013-05-28 12:15 ` Uwe Kleine-König
  0 siblings, 1 reply; 5+ messages in thread
From: Fabio Estevam @ 2013-05-28 12:04 UTC (permalink / raw)
  To: linux-arm-kernel

When booting a device tree kernel, we get the following output from 
'cat /proc/cpuinfo': 

$ cat /proc/cpuinfo 
processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 531.66
Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x2
CPU part        : 0xc08
CPU revision    : 5

Hardware        : Freescale i.MX51 (Device Tree Support)
Revision        : 0000
Serial          : 0000000000000000

The Hardware line does not really describe the hardware type, as it is reading
the information from the dt 'machine' field.

In the dt case, read the 'model' field instead, so that we can have a better
description output as follows:

Hardware        : Freescale i.MX51 Babbage Board

The hardware output string is unchanged for the non-dt kernel case.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 arch/arm/include/asm/mach/arch.h |  1 +
 arch/arm/kernel/devtree.c        | 15 ++++++++-------
 arch/arm/kernel/setup.c          |  7 ++++++-
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h
index 308ad7d..113d4af 100644
--- a/arch/arm/include/asm/mach/arch.h
+++ b/arch/arm/include/asm/mach/arch.h
@@ -23,6 +23,7 @@ struct smp_operations;
 struct machine_desc {
 	unsigned int		nr;		/* architecture number	*/
 	const char		*name;		/* architecture name	*/
+	const char		*model;		/* architectute model */
 	unsigned long		atag_offset;	/* tagged list (relative) */
 	const char *const 	*dt_compat;	/* array of device tree
 						 * 'compatible' strings	*/
diff --git a/arch/arm/kernel/devtree.c b/arch/arm/kernel/devtree.c
index 5af04f6..90d541a 100644
--- a/arch/arm/kernel/devtree.c
+++ b/arch/arm/kernel/devtree.c
@@ -178,7 +178,6 @@ struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
 	struct machine_desc *mdesc, *mdesc_best = NULL;
 	unsigned int score, mdesc_score = ~1;
 	unsigned long dt_root;
-	const char *model;
 
 #ifdef CONFIG_ARCH_MULTIPLATFORM
 	DT_MACHINE_START(GENERIC_DT, "Generic DT based system")
@@ -224,12 +223,14 @@ struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
 		dump_machine_table(); /* does not return */
 	}
 
-	model = of_get_flat_dt_prop(dt_root, "model", NULL);
-	if (!model)
-		model = of_get_flat_dt_prop(dt_root, "compatible", NULL);
-	if (!model)
-		model = "<unknown>";
-	pr_info("Machine: %s, model: %s\n", mdesc_best->name, model);
+	mdesc_best->model = of_get_flat_dt_prop(dt_root, "model", NULL);
+	if (!mdesc_best->model)
+		mdesc_best->model = of_get_flat_dt_prop(dt_root, "compatible",
+							NULL);
+	if (!mdesc_best->model)
+		mdesc_best->model = "<unknown>";
+	pr_info("Machine: %s, model: %s\n", mdesc_best->name,
+		mdesc_best->model);
 
 	/* Retrieve various information from the /chosen node */
 	of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line);
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 79e8d2f..d22f24b 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -137,6 +137,7 @@ EXPORT_SYMBOL(elf_platform);
 
 static const char *cpu_name;
 static const char *machine_name;
+static const char *model_name;
 static char __initdata cmd_line[COMMAND_LINE_SIZE];
 struct machine_desc *machine_desc __initdata;
 
@@ -786,6 +787,7 @@ void __init setup_arch(char **cmdline_p)
 		mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type);
 	machine_desc = mdesc;
 	machine_name = mdesc->name;
+	model_name = mdesc->model;
 
 	setup_dma_zone(mdesc);
 
@@ -950,7 +952,10 @@ 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);
+	if (model_name)
+		seq_printf(m, "Hardware\t: %s\n", model_name);
+	else
+		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",
 		   system_serial_high, system_serial_low);
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH] ARM: dt: Use the 'model' field for printing the hardware revision
  2013-05-28 12:04 [PATCH] ARM: dt: Use the 'model' field for printing the hardware revision Fabio Estevam
@ 2013-05-28 12:15 ` Uwe Kleine-König
  2013-05-28 12:57   ` Fabio Estevam
  0 siblings, 1 reply; 5+ messages in thread
From: Uwe Kleine-König @ 2013-05-28 12:15 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, May 28, 2013 at 09:04:30AM -0300, Fabio Estevam wrote:
> When booting a device tree kernel, we get the following output from 
> 'cat /proc/cpuinfo': 
> 
> $ cat /proc/cpuinfo 
> processor       : 0
> model name      : ARMv7 Processor rev 5 (v7l)
> BogoMIPS        : 531.66
> Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls 
> CPU implementer : 0x41
> CPU architecture: 7
> CPU variant     : 0x2
> CPU part        : 0xc08
> CPU revision    : 5
> 
> Hardware        : Freescale i.MX51 (Device Tree Support)
> Revision        : 0000
> Serial          : 0000000000000000
> 
> The Hardware line does not really describe the hardware type, as it is reading
> the information from the dt 'machine' field.
> 
> In the dt case, read the 'model' field instead, so that we can have a better
> description output as follows:
> 
> Hardware        : Freescale i.MX51 Babbage Board
> 
> The hardware output string is unchanged for the non-dt kernel case.
> 
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
>  arch/arm/include/asm/mach/arch.h |  1 +
>  arch/arm/kernel/devtree.c        | 15 ++++++++-------
>  arch/arm/kernel/setup.c          |  7 ++++++-
>  3 files changed, 15 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h
> index 308ad7d..113d4af 100644
> --- a/arch/arm/include/asm/mach/arch.h
> +++ b/arch/arm/include/asm/mach/arch.h
> @@ -23,6 +23,7 @@ struct smp_operations;
>  struct machine_desc {
>  	unsigned int		nr;		/* architecture number	*/
>  	const char		*name;		/* architecture name	*/
> +	const char		*model;		/* architectute model */
s/architectute/architecture/

Is it really needed to add a new field here? Alternatively overwrite
name or do something like:

	if (this_is_a_device_tree_machine)
		seq_printf(m, "Hardware\t: %s\n", get_model_from_dt());
	else
		seq_printf(m, "Hardware\t: %s\n", machine_name);
		
Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] ARM: dt: Use the 'model' field for printing the hardware revision
  2013-05-28 12:15 ` Uwe Kleine-König
@ 2013-05-28 12:57   ` Fabio Estevam
  2013-05-28 13:01     ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 1 reply; 5+ messages in thread
From: Fabio Estevam @ 2013-05-28 12:57 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Uwe,

On Tue, May 28, 2013 at 9:15 AM, Uwe Kleine-K?nig
<u.kleine-koenig@pengutronix.de> wrote:

>>  struct machine_desc {
>>       unsigned int            nr;             /* architecture number  */
>>       const char              *name;          /* architecture name    */
>> +     const char              *model;         /* architectute model */
> s/architectute/architecture/

Thanks for reviewing it. Will fix in v2.

>
> Is it really needed to add a new field here? Alternatively overwrite
> name or do something like:
>
>         if (this_is_a_device_tree_machine)
>                 seq_printf(m, "Hardware\t: %s\n", get_model_from_dt());
>         else
>                 seq_printf(m, "Hardware\t: %s\n", machine_name);

I was not able to find a good trick that provides me the
'this_is_a_device_tree_machine' information inside the c_show()
function, so I ended up adding a the model inside machine_desc struct.

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] ARM: dt: Use the 'model' field for printing the hardware revision
  2013-05-28 12:57   ` Fabio Estevam
@ 2013-05-28 13:01     ` Jean-Christophe PLAGNIOL-VILLARD
  2013-05-28 13:08       ` Fabio Estevam
  0 siblings, 1 reply; 5+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2013-05-28 13:01 UTC (permalink / raw)
  To: linux-arm-kernel


On May 28, 2013, at 8:57 PM, Fabio Estevam <festevam@gmail.com> wrote:

> Hi Uwe,
> 
> On Tue, May 28, 2013 at 9:15 AM, Uwe Kleine-K?nig
> <u.kleine-koenig@pengutronix.de> wrote:
> 
>>> struct machine_desc {
>>>      unsigned int            nr;             /* architecture number  */
>>>      const char              *name;          /* architecture name    */
>>> +     const char              *model;         /* architectute model */
>> s/architectute/architecture/
> 
> Thanks for reviewing it. Will fix in v2.
> 
>> 
>> Is it really needed to add a new field here? Alternatively overwrite
>> name or do something like:
>> 
>>        if (this_is_a_device_tree_machine)
>>                seq_printf(m, "Hardware\t: %s\n", get_model_from_dt());
>>        else
>>                seq_printf(m, "Hardware\t: %s\n", machine_name);

> I was not able to find a good trick that provides me the
> 'this_is_a_device_tree_machine' information inside the c_show()
> function, so I ended up adding a the model inside machine_desc struct.
> 

if the dt is present means this is a dt machine
or the machine_id

Best Regards,
J.

> Regards,
> 
> Fabio Estevam
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] ARM: dt: Use the 'model' field for printing the hardware revision
  2013-05-28 13:01     ` Jean-Christophe PLAGNIOL-VILLARD
@ 2013-05-28 13:08       ` Fabio Estevam
  0 siblings, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2013-05-28 13:08 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, May 28, 2013 at 10:01 AM, Jean-Christophe PLAGNIOL-VILLARD
<plagnioj@jcrosoft.com> wrote:

> if the dt is present means this is a dt machine
> or the machine_id

Sorry, I cannot understand what you mean here. How does this relate to
the patch?

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-05-28 13:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-28 12:04 [PATCH] ARM: dt: Use the 'model' field for printing the hardware revision Fabio Estevam
2013-05-28 12:15 ` Uwe Kleine-König
2013-05-28 12:57   ` Fabio Estevam
2013-05-28 13:01     ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-28 13:08       ` Fabio Estevam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).