diff mbox series

ARM: aspeed: ast2500 is ARMv6K

Message ID 20190919142654.1578823-1-arnd@arndb.de
State Accepted
Commit b74d957f6317e60924d0d3c0c01750814c24611b
Headers show
Series ARM: aspeed: ast2500 is ARMv6K | expand

Commit Message

Arnd Bergmann Sept. 19, 2019, 2:26 p.m. UTC
Linux supports both the original ARMv6 level (early ARM1136) and ARMv6K
(later ARM1136, ARM1176 and ARM11mpcore).

ast2500 falls into the second categoy, being based on arm1176jzf-s.
This is enabled by default when using ARCH_MULTI_V6, so we should
not 'select CPU_V6'.

Removing this will lead to more efficient use of atomic instructions.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 arch/arm/mach-aspeed/Kconfig | 1 -
 1 file changed, 1 deletion(-)

-- 
2.20.0

Comments

Andrew Jeffery Sept. 20, 2019, 3:58 a.m. UTC | #1
On Thu, 19 Sep 2019, at 23:56, Arnd Bergmann wrote:
> Linux supports both the original ARMv6 level (early ARM1136) and ARMv6K

> (later ARM1136, ARM1176 and ARM11mpcore).

> 

> ast2500 falls into the second categoy, being based on arm1176jzf-s.

> This is enabled by default when using ARCH_MULTI_V6, so we should

> not 'select CPU_V6'.

> 

> Removing this will lead to more efficient use of atomic instructions.

> 

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
Joel Stanley Sept. 20, 2019, 5:51 a.m. UTC | #2
On Thu, 19 Sep 2019 at 14:27, Arnd Bergmann <arnd@arndb.de> wrote:
>

> Linux supports both the original ARMv6 level (early ARM1136) and ARMv6K

> (later ARM1136, ARM1176 and ARM11mpcore).

>

> ast2500 falls into the second categoy, being based on arm1176jzf-s.

> This is enabled by default when using ARCH_MULTI_V6, so we should

> not 'select CPU_V6'.

>

> Removing this will lead to more efficient use of atomic instructions.


Wow, nice find.

>

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

>  arch/arm/mach-aspeed/Kconfig | 1 -

>  1 file changed, 1 deletion(-)

>

> diff --git a/arch/arm/mach-aspeed/Kconfig b/arch/arm/mach-aspeed/Kconfig

> index a293137f5814..163931a03136 100644

> --- a/arch/arm/mach-aspeed/Kconfig

> +++ b/arch/arm/mach-aspeed/Kconfig

> @@ -26,7 +26,6 @@ config MACH_ASPEED_G4

>  config MACH_ASPEED_G5

>         bool "Aspeed SoC 5th Generation"

>         depends on ARCH_MULTI_V6

> -       select CPU_V6

>         select PINCTRL_ASPEED_G5 if !CC_IS_CLANG


I can't find any trees with !CC_IS_CLANG here. Is there a problem
building our pinmux driver with Clang?

I tested with this patch:

--- a/arch/arm/mach-aspeed/Kconfig
+++ b/arch/arm/mach-aspeed/Kconfig
@@ -25,8 +25,8 @@ config MACH_ASPEED_G4

 config MACH_ASPEED_G5
        bool "Aspeed SoC 5th Generation"
+       # This implies ARMv6K which covers the ARM1176
        depends on ARCH_MULTI_V6
-       select CPU_V6
        select PINCTRL_ASPEED_G5
        select FTTMR010_TIMER
        help

If you want to apply that as a fix for 5.4 I would be happy with that.

Fixes: 8c2ed9bcfbeb ("arm: Add Aspeed machine")
Reviewed-by: Joel Stanley <joel@jms.id.au>


Cheers,

Joel
Andrew Jeffery Sept. 20, 2019, 5:54 a.m. UTC | #3
On Thu, 19 Sep 2019, at 23:56, Arnd Bergmann wrote:
> Linux supports both the original ARMv6 level (early ARM1136) and ARMv6K

> (later ARM1136, ARM1176 and ARM11mpcore).

> 

> ast2500 falls into the second categoy, being based on arm1176jzf-s.

> This is enabled by default when using ARCH_MULTI_V6, so we should

> not 'select CPU_V6'.

> 

> Removing this will lead to more efficient use of atomic instructions.

> 

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

>  arch/arm/mach-aspeed/Kconfig | 1 -

>  1 file changed, 1 deletion(-)

> 

> diff --git a/arch/arm/mach-aspeed/Kconfig b/arch/arm/mach-aspeed/Kconfig

> index a293137f5814..163931a03136 100644

> --- a/arch/arm/mach-aspeed/Kconfig

> +++ b/arch/arm/mach-aspeed/Kconfig

> @@ -26,7 +26,6 @@ config MACH_ASPEED_G4

>  config MACH_ASPEED_G5

>  	bool "Aspeed SoC 5th Generation"

>  	depends on ARCH_MULTI_V6

> -	select CPU_V6

>  	select PINCTRL_ASPEED_G5 if !CC_IS_CLANG


Unrelated, but I'm intrigued by this. Looks like I should try compile it with clang
and fix the fallout.

Andrew
Arnd Bergmann Sept. 20, 2019, 7:42 a.m. UTC | #4
On Fri, Sep 20, 2019 at 7:51 AM Joel Stanley <joel@jms.id.au> wrote:
> On Thu, 19 Sep 2019 at 14:27, Arnd Bergmann <arnd@arndb.de> wrote:


> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> > ---

> >  arch/arm/mach-aspeed/Kconfig | 1 -

> >  1 file changed, 1 deletion(-)

> >

> > diff --git a/arch/arm/mach-aspeed/Kconfig b/arch/arm/mach-aspeed/Kconfig

> > index a293137f5814..163931a03136 100644

> > --- a/arch/arm/mach-aspeed/Kconfig

> > +++ b/arch/arm/mach-aspeed/Kconfig

> > @@ -26,7 +26,6 @@ config MACH_ASPEED_G4

> >  config MACH_ASPEED_G5

> >         bool "Aspeed SoC 5th Generation"

> >         depends on ARCH_MULTI_V6

> > -       select CPU_V6

> >         select PINCTRL_ASPEED_G5 if !CC_IS_CLANG

>

> I can't find any trees with !CC_IS_CLANG here. Is there a problem

> building our pinmux driver with Clang?


This was an unrelated change from my local randconfig tree.

Your driver uncovered a bug in clang that is now fixed, the driver
itself is fine, see https://bugs.llvm.org/show_bug.cgi?id=43243

> I tested with this patch:

> --- a/arch/arm/mach-aspeed/Kconfig

> +++ b/arch/arm/mach-aspeed/Kconfig

> @@ -25,8 +25,8 @@ config MACH_ASPEED_G4

>

>  config MACH_ASPEED_G5

>         bool "Aspeed SoC 5th Generation"

> +       # This implies ARMv6K which covers the ARM1176

>         depends on ARCH_MULTI_V6

> -       select CPU_V6

>         select PINCTRL_ASPEED_G5

>         select FTTMR010_TIMER

>         help

>

> If you want to apply that as a fix for 5.4 I would be happy with that.

>

> Fixes: 8c2ed9bcfbeb ("arm: Add Aspeed machine")

> Reviewed-by: Joel Stanley <joel@jms.id.au>


Applied to arm/fixes now.

      Arnd
diff mbox series

Patch

diff --git a/arch/arm/mach-aspeed/Kconfig b/arch/arm/mach-aspeed/Kconfig
index a293137f5814..163931a03136 100644
--- a/arch/arm/mach-aspeed/Kconfig
+++ b/arch/arm/mach-aspeed/Kconfig
@@ -26,7 +26,6 @@  config MACH_ASPEED_G4
 config MACH_ASPEED_G5
 	bool "Aspeed SoC 5th Generation"
 	depends on ARCH_MULTI_V6
-	select CPU_V6
 	select PINCTRL_ASPEED_G5 if !CC_IS_CLANG
 	select FTTMR010_TIMER
 	help