[PATCH 2/2] ARM: mxs: Pass the system revision

Shawn Guo shawn.guo at linaro.org
Thu May 30 00:32:51 EDT 2013


On Wed, May 29, 2013 at 04:44:23PM -0300, Fabio Estevam wrote:
> Some mxs userspace tools, such as multimedia plugins and kobs-ng (tool used to 
> burn boot images to NAND) rely on the 'Revision' field reported by 
> '/proc/cpuinfo'.
> 
> Provide a mechanism to pass such information, so that now we can get:
> 
> $ cat /proc/cpuinfo                                             
> processor       : 0                                                             
> model name      : ARM926EJ-S rev 5 (v5l)                                        
> BogoMIPS        : 226.09                                                        
> Features        : swp half fastmult edsp java                                   
> CPU implementer : 0x41                                                          
> CPU architecture: 5TEJ                                                          
> CPU variant     : 0x0                                                           
> CPU part        : 0x926                                                         
> CPU revision    : 5                                                             
>                                                                                 
> Hardware        : Freescale i.MX28 Evaluation Kit                               
> Revision        : 28012                                                         
> Serial          : 0000000000000000                                              

We now have a standard way to report SoC revision to user space.  Check
drivers/base/soc.c and arch/arm/mach-tegra/tegra.c for example.

But I will be fine with populating system_rev for coping with those
user space which are already spread widely if people think it's
useful/helpful.

Shawn

> 
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
>  arch/arm/mach-mxs/mach-mxs.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
> 
> diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c
> index b632323..032812d 100644
> --- a/arch/arm/mach-mxs/mach-mxs.c
> +++ b/arch/arm/mach-mxs/mach-mxs.c
> @@ -29,6 +29,7 @@
>  #include <asm/mach/map.h>
>  #include <asm/mach/time.h>
>  #include <asm/system_misc.h>
> +#include <asm/system_info.h>
>  
>  #include "pm.h"
>  
> @@ -443,10 +444,24 @@ static void mxs_print_silicon_rev(const char *cpu, int srev)
>  				cpu, (srev >> 4) & 0xf, srev & 0xf);
>  }
>  
> +static void mxs_pass_sysrev(void)
> +{
> +	int cputype = 0;
> +
> +	if (strcmp(mxs_get_cpu_type(), "MX23"))
> +		cputype = 0x23000;
> +
> +	if (strcmp(mxs_get_cpu_type(), "MX28"))
> +		cputype = 0x28000;
> +
> +	system_rev = (cputype | mxs_get_cpu_rev());
> +}
> +
>  static void __init mxs_machine_init(void)
>  {
>  
>  	mxs_print_silicon_rev(mxs_get_cpu_type(), mxs_get_cpu_rev());
> +	mxs_pass_sysrev();
>  
>  	if (of_machine_is_compatible("fsl,imx28-evk"))
>  		imx28_evk_init();
> -- 
> 1.8.1.2
> 
> 




More information about the linux-arm-kernel mailing list