Re: [PATCH 18/21] ARM: drop SMP support for ARM11MPCore
From: Ard Biesheuvel
Date: Thu Mar 30 2023 - 07:53:46 EST
On Mon, 27 Mar 2023 at 14:18, Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
>
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> The cache management operations for noncoherent DMA on ARMv6 work
> in two different ways:
>
> * When CONFIG_DMA_CACHE_RWFO is set, speculative prefetches on in-flight
> DMA buffers lead to data corruption when the prefetched data is written
> back on top of data from the device.
>
> * When CONFIG_DMA_CACHE_RWFO is disabled, a cache flush on one CPU
> is not seen by the other core(s), leading to inconsistent contents
> accross the system.
>
> As a consequence, neither configuration is actually safe to use in a
> general-purpose kernel that is used on both MPCore systems and ARM1176
> with prefetching enabled.
>
> We could add further workarounds to make the behavior more dynamic based
> on the system, but realistically, there are close to zero remaining
> users on any ARM11MPCore anyway, and nobody seems too interested in it,
> compared to the more popular ARM1176 used in BMC2835 and AST2500.
>
> The Oxnas platform has some minimal support in OpenWRT, but most of the
> drivers and dts files never made it into the mainline kernel, while the
> Arm Versatile/Realview platform mainly serves as a reference system but
> is not necessary to be kept working once all other ARM11MPCore are gone.
>
> Take the easy way out here and drop support for multiprocessing on
> ARMv6, along with the CONFIG_DMA_CACHE_RWFO option and the cache
> management implementation for it. This also helps with other ARMv6
> issues, but for the moment leaves the ability to build a kernel that
> can run on both ARMv7 SMP and single-processor ARMv6, which we probably
> want to stop supporting as well, but not as part of this series.
>
> Cc: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
> Cc: Daniel Golle <daniel@xxxxxxxxxxxxxx>
> Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
> Cc: linux-oxnas@xxxxxxxxx
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
Acked-by: Ard Biesheuvel <ardb@xxxxxxxxxx>