ARM: rework endianess selection
authorArnd Bergmann <arnd@arndb.de>
Mon, 4 Apr 2022 09:52:31 +0000 (11:52 +0200)
committerArnd Bergmann <arnd@arndb.de>
Fri, 8 Apr 2022 15:20:54 +0000 (17:20 +0200)
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>
34 files changed:
arch/arm/Kconfig
arch/arm/mach-asm9260/Kconfig
arch/arm/mach-aspeed/Kconfig
arch/arm/mach-at91/Kconfig
arch/arm/mach-clps711x/Kconfig
arch/arm/mach-davinci/Kconfig
arch/arm/mach-ep93xx/Kconfig
arch/arm/mach-exynos/Kconfig
arch/arm/mach-gemini/Kconfig
arch/arm/mach-highbank/Kconfig
arch/arm/mach-hisi/Kconfig
arch/arm/mach-imx/Kconfig
arch/arm/mach-iop32x/Kconfig
arch/arm/mach-keystone/Kconfig
arch/arm/mach-lpc32xx/Kconfig
arch/arm/mach-mmp/Kconfig
arch/arm/mach-moxart/Kconfig
arch/arm/mach-mv78xx0/Kconfig
arch/arm/mach-mvebu/Kconfig
arch/arm/mach-mxs/Kconfig
arch/arm/mach-nomadik/Kconfig
arch/arm/mach-npcm/Kconfig
arch/arm/mach-nspire/Kconfig
arch/arm/mach-orion5x/Kconfig
arch/arm/mach-oxnas/Kconfig
arch/arm/mach-qcom/Kconfig
arch/arm/mach-s3c/Kconfig.s3c24xx
arch/arm/mach-socfpga/Kconfig
arch/arm/mach-spear/Kconfig
arch/arm/mach-sunxi/Kconfig
arch/arm/mach-versatile/Kconfig
arch/arm/mach-vt8500/Kconfig
arch/arm/mach-zynq/Kconfig
arch/arm/mm/Kconfig

index 94909cadb78a1ebb2371849c6bb4b80ddd3df571..4d98de155e20062657f1211dbe72df569c9a2d34 100644 (file)
@@ -349,6 +349,7 @@ config ARCH_MULTIPLATFORM
 
 config ARCH_FOOTBRIDGE
        bool "FootBridge"
+       depends on CPU_LITTLE_ENDIAN
        select CPU_SA110
        select FOOTBRIDGE
        select NEED_MACH_MEMORY_H
@@ -358,7 +359,7 @@ config ARCH_FOOTBRIDGE
 
 config ARCH_IXP4XX
        bool "IXP4xx-based"
-       select ARCH_SUPPORTS_BIG_ENDIAN
+       depends on CPU_BIG_ENDIAN
        select ARM_PATCH_PHYS_VIRT
        select CPU_XSCALE
        select GPIO_IXP4XX
@@ -374,6 +375,7 @@ config ARCH_IXP4XX
 
 config ARCH_PXA
        bool "PXA2xx/PXA3xx-based"
+       depends on CPU_LITTLE_ENDIAN
        select ARCH_MTD_XIP
        select ARM_CPU_SUSPEND if PM
        select AUTO_ZRELADDR
@@ -393,6 +395,7 @@ config ARCH_PXA
 config ARCH_RPC
        bool "RiscPC"
        depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
+       depends on CPU_LITTLE_ENDIAN
        select ARCH_ACORN
        select ARCH_MAY_HAVE_PC_FDC
        select ARCH_SPARSEMEM_ENABLE
@@ -411,6 +414,7 @@ config ARCH_RPC
 
 config ARCH_SA1100
        bool "SA1100-based"
+       depends on CPU_LITTLE_ENDIAN
        select ARCH_MTD_XIP
        select ARCH_SPARSEMEM_ENABLE
        select CLKSRC_MMIO
@@ -429,6 +433,7 @@ config ARCH_SA1100
 
 config ARCH_OMAP1
        bool "TI OMAP1"
+       depends on CPU_LITTLE_ENDIAN
        select ARCH_OMAP
        select CLKSRC_MMIO
        select GENERIC_IRQ_CHIP
@@ -505,7 +510,6 @@ config ARCH_VIRT
        select ARM_GIC_V3_ITS if PCI
        select ARM_PSCI
        select HAVE_ARM_ARCH_TIMER
-       select ARCH_SUPPORTS_BIG_ENDIAN
 
 config ARCH_AIROHA
        bool "Airoha SoC Support"
index a2e1d0aaf2529aa59eaff594e53a10a37a627132..74e0f61c74c88f9376085c92962395a62c8a286a 100644 (file)
@@ -2,6 +2,7 @@
 config MACH_ASM9260
        bool "Alphascale ASM9260"
        depends on ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select CPU_ARM926T
        select ASM9260_TIMER
        help
index ea96d11b850241cee143f7ae2a399e1baab4f5cb..cd8a15be0724d96a2b590d550dde0d0b90e335b2 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 menuconfig ARCH_ASPEED
        bool "Aspeed BMC architectures"
-       depends on ARCH_MULTI_V5 || ARCH_MULTI_V6 || ARCH_MULTI_V7
+       depends on (CPU_LITTLE_ENDIAN && ARCH_MULTI_V5) || ARCH_MULTI_V6 || ARCH_MULTI_V7
        select SRAM
        select WATCHDOG
        select ASPEED_WATCHDOG
index 279810381256710c9161d30641a2d635a722c2b2..b427c8abc4c6530fe2690ad1a7052746513544e4 100644 (file)
@@ -1,7 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0-only
 menuconfig ARCH_AT91
        bool "AT91/Microchip SoCs"
-       depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
+       depends on (CPU_LITTLE_ENDIAN && (ARCH_MULTI_V4T || ARCH_MULTI_V5)) || \
+               ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
        select ARM_CPU_SUSPEND if PM && ARCH_MULTI_V7
        select COMMON_CLK_AT91
        select GPIOLIB
index 314de9477b84989ee1beed4a92f922dbeaf3c9fa..fd32e576ecd0243a7f5d1a2bc13d87949fec4648 100644 (file)
@@ -2,6 +2,7 @@
 menuconfig ARCH_CLPS711X
        bool "Cirrus Logic EP721x/EP731x-based"
        depends on ARCH_MULTI_V4T
+       depends on CPU_LITTLE_ENDIAN
        select CLPS711X_TIMER
        select CPU_ARM720T
        select GPIOLIB
index 1d3aef84287d5494ba105cf7e817d944f7d3ed21..008cbc2ab867d772236d2aba873f7672f446d14e 100644 (file)
@@ -3,6 +3,7 @@
 menuconfig ARCH_DAVINCI
        bool "TI DaVinci"
        depends on ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select DAVINCI_TIMER
        select ZONE_DMA
        select PM_GENERIC_DOMAINS if PM
index aa502ab5740417408b5633459c4d5c556ab9c35b..21f4cc2ba651ebe5158b2933325626d25c96da2a 100644 (file)
@@ -2,6 +2,7 @@
 menuconfig ARCH_EP93XX
        bool "EP93xx-based"
        depends on ARCH_MULTI_V4T
+       depends on CPU_LITTLE_ENDIAN
        select ARCH_SPARSEMEM_ENABLE
        select ARM_AMBA
        select ARM_VIC
index f7d993628cb700f87b62108141da7658d03c17bf..51a336f349f48daefbd817db1378160dbfd684e5 100644 (file)
@@ -8,7 +8,6 @@
 menuconfig ARCH_EXYNOS
        bool "Samsung Exynos"
        depends on ARCH_MULTI_V7
-       select ARCH_SUPPORTS_BIG_ENDIAN
        select ARM_AMBA
        select ARM_GIC
        select EXYNOS_IRQ_COMBINER
index 969674ea5f17ab4263d30b5ed2ca57eb0aae1acc..f436a2009eca39e0b12dc833ced6af85ed3208aa 100644 (file)
@@ -2,6 +2,7 @@
 menuconfig ARCH_GEMINI
        bool "Cortina Systems Gemini"
        depends on ARCH_MULTI_V4
+       depends on CPU_LITTLE_ENDIAN
        select ARCH_HAS_RESET_CONTROLLER
        select ARM_AMBA
        select ARM_APPENDED_DTB # Old Redboot bootloaders deployed
index 9de38ce8124f2b75c2c675ddba91a3408726c264..c2d6ef6b3927961bdf52c7c42628c5e3b6f7bfa3 100644 (file)
@@ -2,7 +2,6 @@
 config ARCH_HIGHBANK
        bool "Calxeda ECX-1000/2000 (Highbank/Midway)"
        depends on ARCH_MULTI_V7
-       select ARCH_SUPPORTS_BIG_ENDIAN
        select ARM_AMBA
        select ARM_ERRATA_764369 if SMP
        select ARM_ERRATA_775420
index 2e980f834a6aa1b183fbf9839697b7a8e84d0362..75cccbd3f05f377af63497fe921ebb1d3fe05c2b 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config ARCH_HISI
        bool "Hisilicon SoC Support"
-       depends on ARCH_MULTI_V7 || ARCH_MULTI_V5
+       depends on ARCH_MULTI_V7 || (ARCH_MULTI_V5 && CPU_LITTLE_ENDIAN)
        select ARM_AMBA
        select ARM_GIC if ARCH_MULTI_V7
        select ARM_TIMER_SP804
index c5a59158722b7cde72057cff639058a4f4c850f0..696c59fe4588628bb44e71c5d99a2cbeecabf71d 100644 (file)
@@ -1,8 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0-only
 menuconfig ARCH_MXC
        bool "Freescale i.MX family"
-       depends on ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M
-       select ARCH_SUPPORTS_BIG_ENDIAN
+       depends on (ARCH_MULTI_V4_V5 && CPU_LITTLE_ENDIAN) || \
+               ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M
        select CLKSRC_IMX_GPT
        select GENERIC_IRQ_CHIP
        select GPIOLIB
index 07dd137b8867bd29c1fd3453ced4b8f169c414ef..01f60a8e64041895df51cad0fa853d5ed640943d 100644 (file)
@@ -2,6 +2,7 @@
 menuconfig ARCH_IOP32X
        bool "IOP32x-based platforms"
        depends on ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select CPU_XSCALE
        select GPIO_IOP
        select GPIOLIB
index cfd39f729f8e4a5e81f30ea787712c37a3396fa4..de69cc2dd483148706ecff66635cd6163371e000 100644 (file)
@@ -8,7 +8,6 @@ config ARCH_KEYSTONE
        select ARCH_HAS_RESET_CONTROLLER
        select ARM_ERRATA_798181 if SMP
        select COMMON_CLK_KEYSTONE
-       select ARCH_SUPPORTS_BIG_ENDIAN
        select ZONE_DMA if ARM_LPAE
        select PINCTRL
        select PM_GENERIC_DOMAINS if PM
index ec87c65f453621f56694b303d3f236b72b9999b2..35730d3696d029ac693fa37254b119b09f9e2ac9 100644 (file)
@@ -3,6 +3,7 @@
 config ARCH_LPC32XX
        bool "NXP LPC32XX"
        depends on ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select ARM_AMBA
        select CLKSRC_LPC32XX
        select CPU_ARM926T
index 0dd999212944fa9323a3b4b096f04232436b4dd7..9642e6663a526c0901be2accc753d093ebb0dc82 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 menuconfig ARCH_MMP
        bool "Marvell PXA168/910/MMP2/MMP3"
-       depends on ARCH_MULTI_V5 || ARCH_MULTI_V7
+       depends on (CPU_LITTLE_ENDIAN && ARCH_MULTI_V5) || ARCH_MULTI_V7
        select GPIO_PXA
        select GPIOLIB
        select PINCTRL
index 31ada63ba51b82aaf85786d858b48debaf66b383..909c6573ba8b1988565e46f272061253a4a98dde 100644 (file)
@@ -2,6 +2,7 @@
 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
index ea52c7fabb79eb77f4c57986660202bb6c31cba5..f0276f0d11025db08bfd7b486f749830b339461b 100644 (file)
@@ -2,6 +2,7 @@
 menuconfig ARCH_MV78XX0
        bool "Marvell MV78xx0"
        depends on ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select CPU_FEROCEON
        select GPIOLIB
        select MVEBU_MBUS
index 34dbeaab94b07e52fb58d21c1f26a9caaefa895c..9f60a6fe0eafb87210de336cf28e6d8355ff3619 100644 (file)
@@ -1,8 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 menuconfig ARCH_MVEBU
        bool "Marvell Engineering Business Unit (MVEBU) SoCs"
-       depends on ARCH_MULTI_V7 || ARCH_MULTI_V5
-       select ARCH_SUPPORTS_BIG_ENDIAN
+       depends on ARCH_MULTI_V7 || (ARCH_MULTI_V5 && CPU_LITTLE_ENDIAN)
        select CLKSRC_MMIO
        select PINCTRL
        select PLAT_ORION
index be1c1388055a02bb38dd0bab9aef5606621c60d6..26dd8b9b7321cdb22a6c63ee874c1349ee30254c 100644 (file)
@@ -16,6 +16,7 @@ config SOC_IMX28
 config ARCH_MXS
        bool "Freescale MXS (i.MX23, i.MX28) support"
        depends on ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select GPIOLIB
        select MXS_TIMER
        select PINCTRL
index e98429be2b18eb6e0c8b2852a2f70905b6de57c1..d1f819468e947105bbc2919ced867fa3c7e0f4c5 100644 (file)
@@ -2,6 +2,7 @@
 menuconfig ARCH_NOMADIK
        bool "ST-Ericsson Nomadik"
        depends on ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select ARM_AMBA
        select ARM_VIC
        select CLKSRC_NOMADIK_MTU
index a71cf1d189ae5b740246be8477d7e2a8b18e82e9..63b42a19d1b8e4dfb20dcdd2c730ae9d61d00720 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 menuconfig ARCH_NPCM
        bool "Nuvoton NPCM Architecture"
-       depends on ARCH_MULTI_V5 || ARCH_MULTI_V7
+       depends on (ARCH_MULTI_V5 && CPU_LITTLE_ENDIAN) || ARCH_MULTI_V7
        select PINCTRL
 
 if ARCH_NPCM
index 6ef1b167619b0624196e333cf627bf968a1a1178..eb9916233dea51a676d6ca261a6fd467b52b00d8 100644 (file)
@@ -2,6 +2,7 @@
 config ARCH_NSPIRE
        bool "TI-NSPIRE based"
        depends on ARCH_MULTI_V4_V5
+       depends on CPU_LITTLE_ENDIAN
        select CPU_ARM926T
        select GENERIC_IRQ_CHIP
        select ARM_AMBA
index c77f3b4e287bcdafd6760c778df594a4227483d5..bf833b51931d193cd3674af3f904389ab5550fa6 100644 (file)
@@ -2,6 +2,7 @@
 menuconfig ARCH_ORION5X
        bool "Marvell Orion"
        depends on ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select CPU_FEROCEON
        select GPIOLIB
        select MVEBU_MBUS
index bee5f64c2e5f4ecce44b6a7c822598c487033e5c..a9ded70792682c6e544719670597444a08d71ea2 100644 (file)
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 menuconfig ARCH_OXNAS
        bool "Oxford Semiconductor OXNAS Family SoCs"
+       depends on (ARCH_MULTI_V5 && CPU_LITTLE_ENDIAN) || ARCH_MULTI_V6
        select ARCH_HAS_RESET_CONTROLLER
        select COMMON_CLK_OXNAS
        select GPIOLIB
@@ -11,7 +12,6 @@ menuconfig ARCH_OXNAS
        select RESET_OXNAS
        select VERSATILE_FPGA_IRQ
        select PINCTRL
-       depends on ARCH_MULTI_V5 || ARCH_MULTI_V6
        help
          Support for OxNas SoC family developed by Oxford Semiconductor.
 
index 466acc4a5e0c84a4d38ce186a9387d258ef756e7..109e126f727192e06c6216a3488da05f8f44fbb9 100644 (file)
@@ -2,7 +2,6 @@
 menuconfig ARCH_QCOM
        bool "Qualcomm Support"
        depends on ARCH_MULTI_V7
-       select ARCH_SUPPORTS_BIG_ENDIAN
        select ARM_GIC
        select ARM_AMBA
        select PINCTRL
index e388e265ba8319ee1b800ffc4a8a771554648b40..d7dc031abc7aee174066567250118877b873f778 100644 (file)
@@ -8,6 +8,7 @@
 menuconfig ARCH_S3C24XX
        bool "Samsung S3C24XX SoCs"
        depends on ARCH_MULTI_V4T || ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select ATAGS
        select CLKSRC_SAMSUNG_PWM
        select GPIO_SAMSUNG
index 594edf9bbea44383486678a9f868f98cde2bb28f..eb72c240c2486d6489a2a1b86f3f07dde4da699f 100644 (file)
@@ -3,7 +3,6 @@ menuconfig ARCH_INTEL_SOCFPGA
        bool "Altera SOCFPGA family"
        depends on ARCH_MULTI_V7
        select ARCH_HAS_RESET_CONTROLLER
-       select ARCH_SUPPORTS_BIG_ENDIAN
        select ARM_AMBA
        select ARM_GIC
        select CACHE_L2X0
index 20e284563a809764f10849fc39add1a55c879a79..1add7ee49b63e462cfa27659920bbbdf37cd3c0f 100644 (file)
@@ -5,7 +5,7 @@
 
 menuconfig PLAT_SPEAR
        bool "ST SPEAr Family"
-       depends on ARCH_MULTI_V7 || ARCH_MULTI_V5
+       depends on ARCH_MULTI_V7 || (ARCH_MULTI_V5 && CPU_LITTLE_ENDIAN)
        select ARM_AMBA
        select CLKSRC_MMIO
        select GPIOLIB
index e5c2fce281cd66f0c6cb13bde87a6ac415b262dd..93cf70c0749badb210b082099679fefbb7c1026e 100644 (file)
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 menuconfig ARCH_SUNXI
        bool "Allwinner SoCs"
-       depends on ARCH_MULTI_V5 || ARCH_MULTI_V7
+       depends on (CPU_LITTLE_ENDIAN && ARCH_MULTI_V5) || ARCH_MULTI_V7
        select ARCH_HAS_RESET_CONTROLLER
        select CLKSRC_MMIO
        select GENERIC_IRQ_CHIP
@@ -40,7 +40,6 @@ config MACH_SUN7I
        default ARCH_SUNXI
        select ARM_GIC
        select ARM_PSCI
-       select ARCH_SUPPORTS_BIG_ENDIAN
        select HAVE_ARM_ARCH_TIMER
        select SUN5I_HSTIMER
 
index 94b492c12e8d8e997a16b095c92b7123192134db..2ef226194c3a5b3ca31b3d6a65c4ddd7068fd5ab 100644 (file)
@@ -2,6 +2,7 @@
 config ARCH_VERSATILE
        bool "ARM Ltd. Versatile family"
        depends on ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select ARM_AMBA
        select ARM_TIMER_SP804
        select ARM_VIC
@@ -19,6 +20,7 @@ config ARCH_VERSATILE
 menuconfig ARCH_INTEGRATOR
        bool "ARM Ltd. Integrator family"
        depends on ARCH_MULTI_V4T || ARCH_MULTI_V5 || ARCH_MULTI_V6
+       depends on CPU_LITTLE_ENDIAN || ARCH_MULTI_V6
        select ARM_AMBA
        select CMA
        select DMA_CMA
@@ -143,7 +145,7 @@ endif
 
 menuconfig ARCH_REALVIEW
        bool "ARM Ltd. RealView family"
-       depends on ARCH_MULTI_V5 || ARCH_MULTI_V6 || ARCH_MULTI_V7
+       depends on (CPU_LITTLE_ENDIAN && ARCH_MULTI_V5) || ARCH_MULTI_V6 || ARCH_MULTI_V7
        select ARM_AMBA
        select ARM_GIC
        select ARM_TIMER_SP804
@@ -247,7 +249,6 @@ endif
 menuconfig ARCH_VEXPRESS
        bool "ARM Ltd. Versatile Express family"
        depends on ARCH_MULTI_V7
-       select ARCH_SUPPORTS_BIG_ENDIAN
        select ARM_AMBA
        select ARM_GIC
        select ARM_GLOBAL_TIMER
index d01cdd9ad9c7ccf1be418e7008991b98026084be..1aad54ea3c3d95b1e41c088ceaf69a5c1339ee19 100644 (file)
@@ -10,6 +10,7 @@ config ARCH_VT8500
 config ARCH_WM8505
        bool "VIA/Wondermedia 85xx and WM8650"
        depends on ARCH_MULTI_V5
+       depends on CPU_LITTLE_ENDIAN
        select ARCH_VT8500
        select CPU_ARM926T
 
index a56748d671c43b47600ff6ca99b3f7e73029babc..05be5aa9b4028449753f9025d83432afb96982ff 100644 (file)
@@ -3,7 +3,6 @@ config ARCH_ZYNQ
        bool "Xilinx Zynq ARM Cortex A9 Platform"
        depends on ARCH_MULTI_V7
        select ARCH_HAS_RESET_CONTROLLER
-       select ARCH_SUPPORTS_BIG_ENDIAN
        select ARM_AMBA
        select ARM_GIC
        select ARM_GLOBAL_TIMER
index d30ee26ccc8706c33ce46ff12168f2ed97f6d0e0..a3a4589ec73b04ad14aa481195f2a0bc1377b5b8 100644 (file)
@@ -738,15 +738,29 @@ config SWP_EMULATE
 
          If unsure, say Y.
 
+choice
+       prompt "CPU Endianess"
+       default CPU_LITTLE_ENDIAN
+
+config CPU_LITTLE_ENDIAN
+       bool "Built little-endian kernel"
+       help
+         Say Y if you plan on running a kernel in little-endian mode.
+         This is the default and is used in practically all modern user
+         space builds.
+
 config CPU_BIG_ENDIAN
        bool "Build big-endian kernel"
-       depends on ARCH_SUPPORTS_BIG_ENDIAN
        depends on !LD_IS_LLD
        help
          Say Y if you plan on running a kernel in big-endian mode.
-         Note that your board must be properly built and your board
-         port must properly enable any big-endian related features
-         of your chipset/board/processor.
+         This works on many machines using ARMv6 or newer processors
+         but requires big-endian user space.
+
+         The only ARMv5 platform with big-endian support is
+         Intel IXP4xx.
+
+endchoice
 
 config CPU_ENDIAN_BE8
        bool
@@ -1122,12 +1136,6 @@ config ARM_DMA_MEM_BUFFERABLE
 config ARM_HEAVY_MB
        bool
 
-config ARCH_SUPPORTS_BIG_ENDIAN
-       bool
-       help
-         This option specifies the architecture can support big endian
-         operation.
-
 config DEBUG_ALIGN_RODATA
        bool "Make rodata strictly non-executable"
        depends on STRICT_KERNEL_RWX