mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 01:41:39 +00:00
![Arnd Bergmann](/assets/img/avatar_default.png)
Choosing big-endian vs little-endian kernels in Kconfig has not worked correctly since the introduction of CONFIG_ARCH_MULTIPLATFORM a long time ago. The problems is that CONFIG_BIG_ENDIAN depends on ARCH_SUPPORTS_BIG_ENDIAN, which can set by any one platform in the config, but would actually have to be supported by all of them. This was mostly ok for ARMv6/ARMv7 builds, since these are BE8 and tend to just work aside from problems in nonportable device drivers. For ARMv4/v5 machines, CONFIG_BIG_ENDIAN and CONFIG_ARCH_MULTIPLATFORM were never set together, so this was disabled on all those machines except for IXP4xx. As IXP4xx can now become part of ARCH_MULTIPLATFORM, it seems better to formalize this logic: all ARMv4/v5 platforms get an explicit dependency on being either big-endian (ixp4xx) or little-endian (the rest). We may want to fix ixp4xx in the future to support both, but it does not work in LE mode at the moment. For the ARMv6/v7 platforms, there are two ways this could be handled a) allow both modes only for platforms selecting 'ARCH_SUPPORTS_BIG_ENDIAN' today, but only LE mode for the others, given that these were added intentionally at some point. b) allow both modes everwhere, given that it was already possible to build that way by e.g. selecting ARCH_VIRT, and that the list is not an accurate reflection of which platforms may or may not work. Out of these, I picked b) because it seemed slighly more logical to me. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
42 lines
980 B
Text
42 lines
980 B
Text
# SPDX-License-Identifier: GPL-2.0-only
|
|
menuconfig ARCH_NPCM
|
|
bool "Nuvoton NPCM Architecture"
|
|
depends on (ARCH_MULTI_V5 && CPU_LITTLE_ENDIAN) || ARCH_MULTI_V7
|
|
select PINCTRL
|
|
|
|
if ARCH_NPCM
|
|
|
|
config ARCH_WPCM450
|
|
bool "Support for WPCM450 BMC (Hermon)"
|
|
depends on ARCH_MULTI_V5
|
|
select CPU_ARM926T
|
|
select WPCM450_AIC
|
|
select NPCM7XX_TIMER
|
|
help
|
|
General support for WPCM450 BMC (Hermon).
|
|
|
|
Winbond/Nuvoton WPCM450 BMC based on the ARM926EJ-S.
|
|
|
|
config ARCH_NPCM7XX
|
|
bool "Support for NPCM7xx BMC (Poleg)"
|
|
depends on ARCH_MULTI_V7
|
|
select PINCTRL_NPCM7XX
|
|
select NPCM7XX_TIMER
|
|
select GPIOLIB
|
|
select CACHE_L2X0
|
|
select ARM_GIC
|
|
select HAVE_ARM_TWD if SMP
|
|
select HAVE_ARM_SCU if SMP
|
|
select ARM_ERRATA_764369 if SMP
|
|
select ARM_ERRATA_720789
|
|
select ARM_ERRATA_754322
|
|
select ARM_ERRATA_794072
|
|
select PL310_ERRATA_588369
|
|
select PL310_ERRATA_727915
|
|
select MFD_SYSCON
|
|
help
|
|
General support for NPCM7xx BMC (Poleg).
|
|
|
|
Nuvoton NPCM7xx BMC based on the Cortex A9.
|
|
|
|
endif
|