mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
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 to more easily test the platforms. 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> Acked-by: Aaro Koskinen <aaro.koskinen@iki.fi> # OMAP Signed-off-by: Arnd Bergmann <arnd@arndb.de>
205 lines
5.0 KiB
Plaintext
205 lines
5.0 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
menu "Platform selection"
|
|
depends on MMU
|
|
|
|
comment "CPU Core family selection"
|
|
|
|
config ARCH_MULTI_V4
|
|
bool "ARMv4 based platforms (FA526, StrongARM)"
|
|
depends on !ARCH_MULTI_V6_V7
|
|
select ARCH_MULTI_V4_V5
|
|
select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)
|
|
|
|
config ARCH_MULTI_V4T
|
|
bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
|
|
depends on !ARCH_MULTI_V6_V7
|
|
select ARCH_MULTI_V4_V5
|
|
select CPU_ARM920T if !(CPU_ARM7TDMI || CPU_ARM720T || \
|
|
CPU_ARM740T || CPU_ARM9TDMI || CPU_ARM922T || \
|
|
CPU_ARM925T || CPU_ARM940T)
|
|
|
|
config ARCH_MULTI_V5
|
|
bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)"
|
|
depends on !ARCH_MULTI_V6_V7
|
|
select ARCH_MULTI_V4_V5
|
|
select CPU_ARM926T if !(CPU_ARM946E || CPU_ARM1020 || \
|
|
CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \
|
|
CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_FEROCEON)
|
|
|
|
config ARCH_MULTI_V4_V5
|
|
bool
|
|
|
|
config ARCH_MULTI_V6
|
|
bool "ARMv6 based platforms (ARM11)"
|
|
select ARCH_MULTI_V6_V7
|
|
select CPU_ARM1176
|
|
|
|
config ARCH_MULTI_V7
|
|
bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
|
|
default y
|
|
select ARCH_MULTI_V6_V7
|
|
select CPU_V7
|
|
select HAVE_SMP
|
|
|
|
config ARCH_MULTI_V6_V7
|
|
bool
|
|
select MIGHT_HAVE_CACHE_L2X0
|
|
|
|
config ARCH_MULTI_CPU_AUTO
|
|
def_bool !(ARCH_MULTI_V4 || ARCH_MULTI_V4T || ARCH_MULTI_V6_V7)
|
|
select ARCH_MULTI_V5
|
|
|
|
endmenu
|
|
|
|
config ARCH_VIRT
|
|
bool "Dummy Virtual Machine"
|
|
depends on ARCH_MULTI_V7
|
|
select ARM_AMBA
|
|
select ARM_GIC
|
|
select ARM_GIC_V2M if PCI
|
|
select ARM_GIC_V3
|
|
select ARM_GIC_V3_ITS if PCI
|
|
select ARM_PSCI
|
|
select HAVE_ARM_ARCH_TIMER
|
|
|
|
config ARCH_AIROHA
|
|
bool "Airoha SoC Support"
|
|
depends on ARCH_MULTI_V7
|
|
select ARM_AMBA
|
|
select ARM_GIC
|
|
select ARM_GIC_V3
|
|
select ARM_PSCI
|
|
select HAVE_ARM_ARCH_TIMER
|
|
help
|
|
Support for Airoha EN7523 SoCs
|
|
|
|
config MACH_ASM9260
|
|
bool "Alphascale ASM9260"
|
|
depends on ARCH_MULTI_V5
|
|
depends on CPU_LITTLE_ENDIAN
|
|
select CPU_ARM926T
|
|
select ASM9260_TIMER
|
|
help
|
|
Support for Alphascale ASM9260 based platform.
|
|
|
|
menuconfig ARCH_HPE
|
|
bool "HPE SoC support"
|
|
depends on ARCH_MULTI_V7
|
|
help
|
|
This enables support for HPE ARM based BMC chips.
|
|
|
|
if ARCH_HPE
|
|
|
|
config ARCH_HPE_GXP
|
|
bool "HPE GXP SoC"
|
|
depends on ARCH_MULTI_V7
|
|
select ARM_VIC
|
|
select GENERIC_IRQ_CHIP
|
|
select CLKSRC_MMIO
|
|
help
|
|
HPE GXP is the name of the HPE Soc. This SoC is used to implement many
|
|
BMC features at HPE. It supports ARMv7 architecture based on the Cortex
|
|
A9 core. It is capable of using an AXI bus to which a memory controller
|
|
is attached. It has multiple SPI interfaces to connect boot flash and
|
|
BIOS flash. It uses a 10/100/1000 MAC for network connectivity. It
|
|
has multiple i2c engines to drive connectivity with a host
|
|
infrastructure.
|
|
|
|
endif
|
|
|
|
menuconfig ARCH_MOXART
|
|
bool "MOXA ART SoC"
|
|
depends on ARCH_MULTI_V4
|
|
depends on CPU_LITTLE_ENDIAN
|
|
select CPU_FA526
|
|
select ARM_DMA_MEM_BUFFERABLE
|
|
select FARADAY_FTINTC010
|
|
select FTTMR010_TIMER
|
|
select GPIOLIB
|
|
select PHYLIB if NETDEVICES
|
|
help
|
|
Say Y here if you want to run your kernel on hardware with a
|
|
MOXA ART SoC.
|
|
The MOXA ART SoC is based on a Faraday FA526 ARMv4 32-bit
|
|
192 MHz CPU with MMU and 16KB/8KB D/I-cache (UC-7112-LX).
|
|
Used on models UC-7101, UC-7112/UC-7110, IA240/IA241, IA3341.
|
|
|
|
if ARCH_MOXART
|
|
|
|
config MACH_UC7112LX
|
|
bool "MOXA UC-7112-LX"
|
|
depends on ARCH_MOXART
|
|
help
|
|
Say Y here if you intend to run this kernel on a MOXA
|
|
UC-7112-LX embedded computer.
|
|
|
|
endif
|
|
|
|
config ARCH_NSPIRE
|
|
bool "TI-NSPIRE based"
|
|
depends on ARCH_MULTI_V4T
|
|
depends on CPU_LITTLE_ENDIAN
|
|
select CPU_ARM926T
|
|
select GENERIC_IRQ_CHIP
|
|
select ARM_AMBA
|
|
select ARM_VIC
|
|
select ARM_TIMER_SP804
|
|
select NSPIRE_TIMER
|
|
select POWER_RESET
|
|
select POWER_RESET_SYSCON
|
|
help
|
|
This enables support for systems using the TI-NSPIRE CPU
|
|
|
|
config ARCH_RDA
|
|
bool "RDA Micro SoCs"
|
|
depends on ARCH_MULTI_V7
|
|
select RDA_INTC
|
|
select RDA_TIMER
|
|
help
|
|
This enables support for the RDA Micro 8810PL SoC family.
|
|
|
|
menuconfig ARCH_SUNPLUS
|
|
bool "Sunplus SoCs"
|
|
depends on ARCH_MULTI_V7
|
|
help
|
|
Support for Sunplus SoC family: SP7021 and succeeding SoC-based systems,
|
|
such as the Banana Pi BPI-F2S development board (and derivatives).
|
|
(<http://www.sinovoip.com.cn/ecp_view.asp?id=586>)
|
|
(<https://tibbo.com/store/plus1.html>)
|
|
|
|
if ARCH_SUNPLUS
|
|
|
|
config SOC_SP7021
|
|
bool "Sunplus SP7021 SoC support"
|
|
default ARCH_SUNPLUS
|
|
select HAVE_ARM_ARCH_TIMER
|
|
select ARM_GIC
|
|
select ARM_PSCI
|
|
select PINCTRL
|
|
select PINCTRL_SPPCTL
|
|
select SERIAL_SUNPLUS if TTY
|
|
select SERIAL_SUNPLUS_CONSOLE if TTY
|
|
help
|
|
Support for Sunplus SP7021 SoC. It is based on ARM 4-core
|
|
Cortex-A7 with various peripherals (e.g.: I2C, SPI, SDIO,
|
|
Ethernet, etc.), FPGA interface, chip-to-chip bus.
|
|
It is designed for industrial control.
|
|
|
|
endif
|
|
|
|
config ARCH_UNIPHIER
|
|
bool "Socionext UniPhier SoCs"
|
|
depends on ARCH_MULTI_V7
|
|
select ARCH_HAS_RESET_CONTROLLER
|
|
select ARM_AMBA
|
|
select ARM_GLOBAL_TIMER
|
|
select ARM_GIC
|
|
select HAVE_ARM_SCU
|
|
select HAVE_ARM_TWD if SMP
|
|
select PINCTRL
|
|
select RESET_CONTROLLER
|
|
help
|
|
Support for UniPhier SoC family developed by Socionext Inc.
|
|
(formerly, System LSI Business Division of Panasonic Corporation)
|