[PATCH RESEND v2] ARM: dt: Use the 'model' field for printing the hardware revision

Rob Herring robherring2 at gmail.com
Fri Jul 26 11:36:53 EDT 2013


On Fri, Jul 26, 2013 at 8:19 AM, Fabio Estevam <festevam at gmail.com> wrote:
> From: Fabio Estevam <fabio.estevam at freescale.com>
>
> 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 at freescale.com>
> ---
> Changes since v1:
> - Fix typo in 'architecture'
>  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;         /* architecture model */

As Russell said, we want to get rid of machine_desc at some point. So
I think a better approach is to remove the .name field (i.e. make it
NULL for now) for the DT case.

>         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);

This won't work with Russell's constifying of machine_desc patch.

Rob



More information about the linux-arm-kernel mailing list