From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Arnd Bergmann <arnd@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org, soc@lists.linux.dev,
linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
Aaro Koskinen <aaro.koskinen@iki.fi>,
Alexander Sverdlin <alexander.sverdlin@siemens.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Andrew Lunn <andrew@lunn.ch>, Ard Biesheuvel <ardb@kernel.org>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
Daniel Mack <daniel@zonque.org>,
Ethan Nelson-Moore <enelsonmoore@gmail.com>,
Frank Li <Frank.Li@nxp.com>,
Gregory Clement <gregory.clement@bootlin.com>,
Haojian Zhuang <haojian.zhuang@gmail.com>,
"Jeremy J. Peper" <jeremy@jeremypeper.com>,
Kristoffer Ericson <kristoffer.ericson@gmail.com>,
Krzysztof Kozlowski <krzk@kernel.org>,
Linus Walleij <linusw@kernel.org>,
Mark Brown <broonie@kernel.org>, Marc Zyngier <maz@kernel.org>,
Mike Rapoport <rppt@kernel.org>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Patrice Chotard <patrice.chotard@foss.st.com>,
Ralph Siemsen <ralph.siemsen@linaro.org>,
Robert Jarzmik <robert.jarzmik@free.fr>,
Russell King <linux@armlinux.org.uk>,
Sascha Hauer <s.hauer@pengutronix.de>,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
Stefan Agner <stefan@agner.ch>,
Stefan Wiehler <stefan.wiehler@nokia.com>,
Tony Lindgren <tony@atomide.com>,
Vladimir Zapolskiy <vz@mleia.com>, Will Deacon <will@kernel.org>,
Linus Walleij <linus.walleij@linaro.org>
Subject: Re: [PATCH v2 03/19] ARM: rework ARM11 CPU selection logic
Date: Thu, 2 Jul 2026 15:46:36 +0200 [thread overview]
Message-ID: <202607021346368633bfa6@mail.local> (raw)
In-Reply-To: <20260701212353.2196041-4-arnd@kernel.org>
On 01/07/2026 23:23:37+0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> Support for SMP on ARM1136r0 has been broken for a while, and nobody
> is working on fixing it. I had a plan to change ARMv6 support to no
> longer coexist in a common kernel with ARMv7 CPUs but instead ARMv5 and
> below. This would have addressed the problem, but after a recent mailing
> list discussion, we concluded that an easier approach is to just forbid
> ARM1136r0 CPU support on SMP-enabled kernels.
>
> This mainly affects users of the Nokia N800/N810 tablets using an
> OMAP2420 SoC, which is the only commercial product with an ARM1136r0
> that is still supported by the kernel.
>
> The other machines that are still in the same hardware catogory are:
>
> - TI OMAP2420 H4 reference board
> - TI OMAP2430 SDP software development platform
> - Freescale/NXP i.MX31 Lite Development Kit
> - Buglabs i.MX31 Bug 1.x prototype
> - Arm Integrator/AP with CM1136JF-S core module
>
> To my knowledge, none of these have any actual users aside from
> reference boards being used more easily test the platforms.
There is a missing "to" in this sentence ;)
>
> There are also a few ARM1136r1 machines, which implement the
> ARMv6K SMP support (barriers, atomics and TLS):
>
> - Eukrea CPUIMX35 reference platform
> - Freescale/NXP i.MX35 Product Development Kit
> - ARM Integrator/CP/IM-LT3 with ARM1136J Core Tile
> - ARM Realview/EB with ARM1136J Core Tile
>
> Again, these are mainly reference implementations rather than
> actual products, but since they support ARMv6K, they should
> continue to work correctly in SMP-enabled kernels. For the
> ARM Core Tile, I have not found a datasheet but instead use
> the revision based on what the respective virtual models
> report.
>
> All the other ARMv6 platforms use an ARM1176 with ARMv6K,
> VMSAv7 and Trustzone support.
>
> To avoid the broken configuration, annotate the ARM1136 based
> machines with specific CPU_ARM1136R0 or CPU_ARM1136R2 symbols
> in Kconfig and make the r0 variants depend on !SMP.
>
> Link: https://lore.kernel.org/linux-arm-kernel/2831c5a6-cfbf-4fe0-b51c-0396e5b0aeb7@app.fastmail.com/T/
> Acked-by: Linus Walleij <linus.walleij@linaro.org>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> arch/arm/Kconfig.platforms | 2 +-
> arch/arm/mach-imx/Kconfig | 4 +++-
> arch/arm/mach-omap2/Kconfig | 3 ++-
> arch/arm/mach-versatile/Kconfig | 10 +++++-----
> arch/arm/mm/Kconfig | 24 +++++++++++++++++++++++-
> 5 files changed, 34 insertions(+), 9 deletions(-)
>
> 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
> --
> 2.39.5
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2026-07-02 13:46 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-01 21:23 [PATCH v2 00/19] ARM: platform and feature deprecation Arnd Bergmann
2026-07-01 21:23 ` [PATCH v2 01/19] ARM: use CONFIG_AEABI by default everywhere Arnd Bergmann
2026-07-02 7:42 ` Nicolas Ferre
2026-07-02 8:34 ` Arnd Bergmann
2026-07-02 12:57 ` Alexandre Belloni
2026-07-02 16:10 ` Aaro Koskinen
2026-07-03 17:29 ` Sverdlin, Alexander
2026-07-01 21:23 ` [PATCH v2 02/19] ARM: limit OABI support to StrongARM CPUs Arnd Bergmann
2026-07-02 13:36 ` Alexandre Belloni
2026-07-02 13:40 ` Arnd Bergmann
2026-07-01 21:23 ` [PATCH v2 03/19] ARM: rework ARM11 CPU selection logic Arnd Bergmann
2026-07-02 13:46 ` Alexandre Belloni [this message]
2026-07-02 13:49 ` Arnd Bergmann
2026-07-02 16:14 ` Aaro Koskinen
2026-07-01 21:23 ` [PATCH v2 04/19] ARM: deprecate support for ARM1136r0 Arnd Bergmann
2026-07-01 22:11 ` Vladimir Zapolskiy
2026-07-02 16:59 ` Aaro Koskinen
2026-07-01 21:23 ` [PATCH v2 05/19] ARM: turn CONFIG_ATAGS off by default Arnd Bergmann
2026-07-01 22:22 ` Ethan Nelson-Moore
2026-07-02 6:31 ` Arnd Bergmann
2026-07-02 17:00 ` Aaro Koskinen
2026-07-01 21:23 ` [PATCH v2 06/19] ARM: mark CPU_ENDIAN_BE8 as deprecated Arnd Bergmann
2026-07-01 21:57 ` Ethan Nelson-Moore
2026-07-02 6:02 ` Arnd Bergmann
2026-07-03 20:29 ` Linus Walleij
2026-07-04 10:33 ` Arnd Bergmann
2026-07-04 11:05 ` Julian Braha
2026-07-01 21:23 ` [PATCH v2 07/19] ARM: update DEPRECATED_PARAM_STRUCT removal timeline Arnd Bergmann
2026-07-02 0:54 ` Ethan Nelson-Moore
2026-07-02 5:36 ` Arnd Bergmann
2026-07-02 12:04 ` Ralph Siemsen
2026-07-01 21:23 ` [PATCH v2 08/19] ARM: s3c64xx: extend deprecation schedule Arnd Bergmann
2026-07-01 21:23 ` [PATCH v2 09/19] ARM: update FPE_NWFPE help text Arnd Bergmann
2026-07-02 11:59 ` Ralph Siemsen
2026-07-01 21:23 ` [PATCH v2 10/19] ARM: mark IWMMXT as deprecated Arnd Bergmann
2026-07-01 21:23 ` [PATCH v2 11/19] ARM: mark ARCH_DOVE " Arnd Bergmann
2026-07-01 22:48 ` Ethan Nelson-Moore
2026-07-01 21:23 ` [PATCH v2 12/19] ARM: PXA: mark remaining board files " Arnd Bergmann
2026-07-01 21:23 ` [PATCH v2 13/19] ARM: orion5x: mark all " Arnd Bergmann
2026-07-02 13:50 ` Arnd Bergmann
2026-07-01 21:23 ` [PATCH v2 14/19] ARM: mark mach-sa1100 " Arnd Bergmann
2026-07-03 12:30 ` Linus Walleij
2026-07-03 13:13 ` Arnd Bergmann
2026-07-01 21:23 ` [PATCH v2 15/19] ARM: mark RiscPC " Arnd Bergmann
2026-07-01 21:23 ` [PATCH v2 16/19] ARM: mark footbridge " Arnd Bergmann
2026-07-02 13:08 ` Ralph Siemsen
2026-07-01 21:23 ` [PATCH v2 17/19] ARM: mark Cortex-M3/M4/M7 based boards " Arnd Bergmann
2026-07-01 22:12 ` Vladimir Zapolskiy
2026-07-02 7:39 ` Nicolas Ferre
2026-07-02 8:43 ` Vladimir Murzin
2026-07-02 14:25 ` Frank Li
2026-07-01 21:23 ` [PATCH v2 18/19] ARM: mark axxia platform " Arnd Bergmann
2026-07-01 22:41 ` Ethan Nelson-Moore
2026-07-02 5:57 ` Arnd Bergmann
2026-07-03 17:13 ` Sverdlin, Alexander
2026-07-01 21:23 ` [PATCH v2 19/19] ARM: mark mv78xx0 support " Arnd Bergmann
2026-07-03 16:18 ` Gregory CLEMENT
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202607021346368633bfa6@mail.local \
--to=alexandre.belloni@bootlin.com \
--cc=Frank.Li@nxp.com \
--cc=aaro.koskinen@iki.fi \
--cc=alexander.sverdlin@siemens.com \
--cc=alexandre.torgue@foss.st.com \
--cc=andrew@lunn.ch \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=broonie@kernel.org \
--cc=claudiu.beznea@tuxon.dev \
--cc=daniel@zonque.org \
--cc=enelsonmoore@gmail.com \
--cc=gregory.clement@bootlin.com \
--cc=haojian.zhuang@gmail.com \
--cc=jeremy@jeremypeper.com \
--cc=kristoffer.ericson@gmail.com \
--cc=krzk@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linusw@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=maz@kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=patrice.chotard@foss.st.com \
--cc=ralph.siemsen@linaro.org \
--cc=robert.jarzmik@free.fr \
--cc=rppt@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=sebastian.hesselbarth@gmail.com \
--cc=soc@lists.linux.dev \
--cc=stefan.wiehler@nokia.com \
--cc=stefan@agner.ch \
--cc=tony@atomide.com \
--cc=vz@mleia.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.