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 <[email protected]>
---
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
select FTTMR010_TIMER
help
--
2.20.0
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 <[email protected]>
Reviewed-by: Andrew Jeffery <[email protected]>
On Thu, 19 Sep 2019 at 14:27, Arnd Bergmann <[email protected]> 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 <[email protected]>
> ---
> 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 <[email protected]>
Cheers,
Joel
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 <[email protected]>
> ---
> 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
On Fri, Sep 20, 2019 at 7:51 AM Joel Stanley <[email protected]> wrote:
> On Thu, 19 Sep 2019 at 14:27, Arnd Bergmann <[email protected]> wrote:
> > Signed-off-by: Arnd Bergmann <[email protected]>
> > ---
> > 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 <[email protected]>
Applied to arm/fixes now.
Arnd