Patchwork ARM: imx: fix i.MX35 CPU architecture

login
register
mail settings
Submitter Benoît Thébaudeau
Date June 27, 2012, 8:28 p.m.
Message ID <147037481.185152.1340828906821.JavaMail.root@advansee.com>
Download mbox | patch
Permalink /patch/167739/
State New
Headers show

Comments

Benoît Thébaudeau - June 27, 2012, 8:28 p.m.
The data sheet of the i.MX35 says it is an ARM1136JF-S processor, version r1p3,
which, according to section "B.1. New instructions" of the ARM1136JF-S and
ARM1136J-S Technical Reference Manual, makes the i.MX35 CPU architecture not
only ARMv6, but ARMv6k.

Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: <linux-arm-kernel@lists.infradead.org>
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
---
 .../arch/arm/mach-imx/Kconfig                      |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Sascha Hauer - June 28, 2012, 10:57 a.m.
On Wed, Jun 27, 2012 at 10:28:26PM +0200, Benoît Thébaudeau wrote:
> The data sheet of the i.MX35 says it is an ARM1136JF-S processor, version r1p3,
> which, according to section "B.1. New instructions" of the ARM1136JF-S and
> ARM1136J-S Technical Reference Manual, makes the i.MX35 CPU architecture not
> only ARMv6, but ARMv6k.

Is this true for i.MX31 aswell? If not, we would have to add additional
magic to enable CPU_V6K only when SOC_IMX31 is not selected.

Sascha

> 
> Cc: Sascha Hauer <kernel@pengutronix.de>
> Cc: <linux-arm-kernel@lists.infradead.org>
> Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
> ---
>  .../arch/arm/mach-imx/Kconfig                      |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git linux-next-HEAD-49289f3.orig/arch/arm/mach-imx/Kconfig linux-next-HEAD-49289f3/arch/arm/mach-imx/Kconfig
> index eff4db5..0345e85 100644
> --- linux-next-HEAD-49289f3.orig/arch/arm/mach-imx/Kconfig
> +++ linux-next-HEAD-49289f3/arch/arm/mach-imx/Kconfig
> @@ -73,7 +73,7 @@ config SOC_IMX31
>  
>  config SOC_IMX35
>  	bool
> -	select CPU_V6
> +	select CPU_V6K
>  	select ARCH_MXC_IOMUX_V3
>  	select COMMON_CLK
>  	select HAVE_EPIT
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Benoît Thébaudeau - June 28, 2012, 3:08 p.m.
On Thu, Jun 28, 2012 at 12:57:20PM +0200, Sascha Hauer wrote:
> On Wed, Jun 27, 2012 at 10:28:26PM +0200, Benoît Thébaudeau wrote:
> > The data sheet of the i.MX35 says it is an ARM1136JF-S processor,
> > version r1p3,
> > which, according to section "B.1. New instructions" of the
> > ARM1136JF-S and
> > ARM1136J-S Technical Reference Manual, makes the i.MX35 CPU
> > architecture not
> > only ARMv6, but ARMv6k.
> 
> Is this true for i.MX31 aswell?

No.

> If not, we would have to add
> additional
> magic to enable CPU_V6K only when SOC_IMX31 is not selected.

Why? That could be "select CPU_V6K if !SOC_IMX31", but e.g. CPU_V7 is selected
by SOC_IMX5 whether or not SOC_IMX31 or SOC_IMX35 is selected, and CPU_V6/6K/7
conflicts are handled with priorities by the ARM infrastructure.

Regards,
Benoît
Sascha Hauer - June 29, 2012, 9:15 a.m.
On Thu, Jun 28, 2012 at 05:08:30PM +0200, Benoît Thébaudeau wrote:
> On Thu, Jun 28, 2012 at 12:57:20PM +0200, Sascha Hauer wrote:
> > On Wed, Jun 27, 2012 at 10:28:26PM +0200, Benoît Thébaudeau wrote:
> > > The data sheet of the i.MX35 says it is an ARM1136JF-S processor,
> > > version r1p3,
> > > which, according to section "B.1. New instructions" of the
> > > ARM1136JF-S and
> > > ARM1136J-S Technical Reference Manual, makes the i.MX35 CPU
> > > architecture not
> > > only ARMv6, but ARMv6k.
> > 
> > Is this true for i.MX31 aswell?
> 
> No.
> 
> > If not, we would have to add
> > additional
> > magic to enable CPU_V6K only when SOC_IMX31 is not selected.
> 
> Why? That could be "select CPU_V6K if !SOC_IMX31", but e.g. CPU_V7 is selected
> by SOC_IMX5 whether or not SOC_IMX31 or SOC_IMX35 is selected, and CPU_V6/6K/7
> conflicts are handled with priorities by the ARM infrastructure.

A boot test on i.MX31 shows that you are probably right. I remember a
time when enabling CPU_V6K caused trouble, but it seems this has been
sorted out.

So, applied this one.

Sascha

Patch

diff --git linux-next-HEAD-49289f3.orig/arch/arm/mach-imx/Kconfig linux-next-HEAD-49289f3/arch/arm/mach-imx/Kconfig
index eff4db5..0345e85 100644
--- linux-next-HEAD-49289f3.orig/arch/arm/mach-imx/Kconfig
+++ linux-next-HEAD-49289f3/arch/arm/mach-imx/Kconfig
@@ -73,7 +73,7 @@  config SOC_IMX31
 
 config SOC_IMX35
 	bool
-	select CPU_V6
+	select CPU_V6K
 	select ARCH_MXC_IOMUX_V3
 	select COMMON_CLK
 	select HAVE_EPIT