diff --git a/arch/arm/Kconfig.platforms b/arch/arm/Kconfig.platforms index 386eccc81868..2e118b65f93b 100644 --- a/arch/arm/Kconfig.platforms +++ b/arch/arm/Kconfig.platforms @@ -33,7 +33,7 @@ config ARCH_MULTI_V4_V5 config ARCH_MULTI_V6 bool "ARMv6 based platforms (ARM11)" select ARCH_MULTI_V6_V7 - select CPU_V6K + select CPU_ARM1176 config ARCH_MULTI_V7 bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)" diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index a361840d7a04..041e73ad203a 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -41,13 +41,15 @@ comment "ARM1136 platforms" config SOC_IMX31 bool "i.MX31 support" - select CPU_V6 + depends on !SMP + select CPU_ARM1136R0 select MXC_AVIC help This enables support for Freescale i.MX31 processor config SOC_IMX35 bool "i.MX35 support" + select CPU_ARM1136R1 select MXC_AVIC help This enables support for Freescale i.MX35 processor diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index f3f19bcfca2c..13987ffbba00 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig @@ -8,8 +8,9 @@ config OMAP_HWMOD config ARCH_OMAP2 bool "TI OMAP2" depends on ARCH_MULTI_V6 + depends on !SMP select ARCH_OMAP2PLUS - select CPU_V6 + select CPU_ARM1136R0 select OMAP_HWMOD select SOC_HAS_OMAP2_SDRC diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig index 513618078440..de42da7de8c8 100644 --- a/arch/arm/mach-versatile/Kconfig +++ b/arch/arm/mach-versatile/Kconfig @@ -113,7 +113,8 @@ config INTEGRATOR_CM1136JFS bool "Integrator/CM1136JF-S core module" depends on ARCH_INTEGRATOR_AP depends on ARCH_MULTI_V6 - select CPU_V6 + depends on !SMP + select CPU_ARM1136R0 config ARCH_INTEGRATOR_CP bool "Support Integrator/CP platform" @@ -135,7 +136,7 @@ config INTEGRATOR_CTB36 bool "Integrator/CTB36 (ARM1136JF-S) core tile" depends on ARCH_INTEGRATOR_CP depends on ARCH_MULTI_V6 - select CPU_V6 + select CPU_ARM1136R1 config ARCH_CINTEGRATOR depends on ARCH_INTEGRATOR_CP @@ -182,7 +183,7 @@ config MACH_REALVIEW_EB config REALVIEW_EB_ARM1136 bool "Support ARM1136J(F)-S Tile" depends on MACH_REALVIEW_EB && ARCH_MULTI_V6 - select CPU_V6 + select CPU_ARM1136R1 help Enable support for the ARM1136 tile fitted to the Realview(R) Emulation Baseboard platform. @@ -201,11 +202,10 @@ config REALVIEW_EB_A9MP Enable support for the Cortex-A9MPCore tile fitted to the Realview(R) Emulation Baseboard platform. -# ARMv6 CPU without K extensions, but does have the new exclusive ops config MACH_REALVIEW_PB1176 bool "Support RealView(R) Platform Baseboard for ARM1176JZF-S" depends on ARCH_MULTI_V6 - select CPU_V6 + select CPU_ARM1176 select HAVE_TCM help Include support for the ARM(R) RealView(R) Platform Baseboard for diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig index 871bd58d2ccc..f3d71e89a31f 100644 --- a/arch/arm/mm/Kconfig +++ b/arch/arm/mm/Kconfig @@ -376,6 +376,7 @@ config CPU_PJ4B # ARMv6 config CPU_V6 bool + depends on !SMP select CPU_32v6 select CPU_ABRT_EV6 select CPU_CACHE_V6 @@ -386,7 +387,6 @@ config CPU_V6 select CPU_PABRT_V6 select CPU_THUMB_CAPABLE select CPU_TLB_V6 if MMU - select SMP_ON_UP if SMP # ARMv6k config CPU_V6K @@ -403,6 +403,28 @@ config CPU_V6K select CPU_THUMB_CAPABLE select CPU_TLB_V6 if MMU +config CPU_ARM1136R0 + bool + select CPU_V6 + depends on !SMP + help + These early revisions of ARM1136 lack support for the + ARMv6k extensions for multiprocessing. + +config CPU_ARM1136R1 + bool + select CPU_V6K + help + Later revisions of ARM1136 add ARMv6k (atomics, barriers + and TLS register) in addition to the features from r0. + +config CPU_ARM1176 + bool + select CPU_V6K + help + ARM1176 implements ARMv6k, VMSAv7 and Trustzone in + addition to the ARMv6 baseline. + # ARMv7 and ARMv8 architectures config CPU_V7 bool