Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: Kconfig: clean up platform selection

The top-level platform selection is mostly meaningless these days after
almost everything is sorted below the CONFIG_ARCH_MULTIPLATFORM, with
the only exception being the 20+ year old StrongARM based machines.

Make this more consistent by removing the entire choice statement and
moving the StrongARM specific options into regular platform specific
Kconfig files.

The three platforms (footbridge, rpc and sa1100) are still mutually
exclusive and cannot coexist with other ARMv4/v5 machines, but since
there are only three of them and we will not add more, this can be
expressed using Kconfig 'depends on' statements.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+109 -111
+18 -96
arch/arm/Kconfig
··· 28 28 select ARCH_HAS_GCOV_PROFILE_ALL 29 29 select ARCH_KEEP_MEMBLOCK 30 30 select ARCH_MIGHT_HAVE_PC_PARPORT 31 - select ARCH_NO_SG_CHAIN if !ARM_HAS_SG_CHAIN 32 31 select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX 33 32 select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7 34 33 select ARCH_SUPPORTS_ATOMIC_RMW ··· 41 42 select ARCH_WANT_LD_ORPHAN_WARN 42 43 select BINFMT_FLAT_ARGVP_ENVP_ON_STACK 43 44 select BUILDTIME_TABLE_SORT if MMU 45 + select COMMON_CLK if !(ARCH_RPC || ARCH_FOOTBRIDGE) 44 46 select CLONE_BACKWARDS 45 47 select CPU_PM if SUSPEND || CPU_IDLE 46 48 select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS ··· 110 110 select HAVE_MOD_ARCH_SPECIFIC 111 111 select HAVE_NMI 112 112 select HAVE_OPTPROBES if !THUMB2_KERNEL 113 + select HAVE_PCI 113 114 select HAVE_PERF_EVENTS 114 115 select HAVE_PERF_REGS 115 116 select HAVE_PERF_USER_STACK_DUMP ··· 127 126 select OF_EARLY_FLATTREE if OF 128 127 select OLD_SIGACTION 129 128 select OLD_SIGSUSPEND3 129 + select PCI_DOMAINS_GENERIC if PCI 130 130 select PCI_SYSCALL if PCI 131 131 select PERF_USE_VMALLOC 132 132 select RTC_LIB 133 + select SPARSE_IRQ if !(ARCH_FOOTBRIDGE || ARCH_RPC) 133 134 select SYS_SUPPORTS_APM_EMULATION 134 135 select THREAD_INFO_IN_TASK 136 + select TIMER_OF if OF 135 137 select HAVE_ARCH_VMAP_STACK if MMU && ARM_HAS_GROUP_RELOCS 136 138 select TRACE_IRQFLAGS_SUPPORT if !CPU_V7M 139 + select USE_OF if !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100) 137 140 # Above selects are sorted alphabetically; please add new ones 138 141 # according to that. Thanks. 139 142 help ··· 159 154 which is usually sufficient, but not for allyesconfig, so we disable 160 155 this feature when doing compile testing. 161 156 162 - config ARM_HAS_SG_CHAIN 163 - bool 164 - 165 157 config ARM_DMA_USE_IOMMU 166 158 bool 167 - select ARM_HAS_SG_CHAIN 168 159 select NEED_SG_DMA_LENGTH 169 160 170 161 if ARM_DMA_USE_IOMMU ··· 308 307 config ARM_SINGLE_ARMV7M 309 308 def_bool !MMU 310 309 select ARM_NVIC 311 - select AUTO_ZRELADDR 312 - select TIMER_OF 313 - select COMMON_CLK 314 310 select CPU_V7M 315 311 select NO_IOPORT_MAP 316 - select SPARSE_IRQ 317 - select USE_OF 318 312 319 313 config ARCH_MMAP_RND_BITS_MIN 320 314 default 8 ··· 319 323 default 15 if PAGE_OFFSET=0x80000000 320 324 default 16 321 325 322 - # 323 - # The "ARM system type" choice list is ordered alphabetically by option 324 - # text. Please add new entries in the option alphabetic order. 325 - # 326 - choice 327 - prompt "ARM system type" 328 - depends on MMU 329 - default ARCH_MULTIPLATFORM 330 - 331 326 config ARCH_MULTIPLATFORM 332 - bool "Allow multiple platforms to be selected" 333 - select ARCH_FLATMEM_ENABLE 334 - select ARCH_SPARSEMEM_ENABLE 335 - select ARCH_SELECT_MEMORY_MODEL 336 - select ARM_HAS_SG_CHAIN 337 - select ARM_PATCH_PHYS_VIRT 338 - select AUTO_ZRELADDR 339 - select TIMER_OF 340 - select COMMON_CLK 341 - select HAVE_PCI 342 - select PCI_DOMAINS_GENERIC if PCI 343 - select SPARSE_IRQ 344 - select USE_OF 327 + def_bool MMU && !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100) 345 328 346 - config ARCH_FOOTBRIDGE 347 - bool "FootBridge" 348 - depends on CPU_LITTLE_ENDIAN 349 - depends on ATAGS 350 - select CPU_SA110 351 - select FOOTBRIDGE 352 - select NEED_MACH_MEMORY_H 353 - help 354 - Support for systems based on the DC21285 companion chip 355 - ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. 356 - 357 - config ARCH_RPC 358 - bool "RiscPC" 359 - depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000 360 - depends on CPU_LITTLE_ENDIAN 361 - depends on ATAGS 362 - select ARCH_ACORN 363 - select ARCH_MAY_HAVE_PC_FDC 364 - select ARCH_SPARSEMEM_ENABLE 365 - select ARM_HAS_SG_CHAIN 366 - select CPU_SA110 367 - select FIQ 368 - select HAVE_PATA_PLATFORM 369 - select ISA_DMA_API 370 - select LEGACY_TIMER_TICK 371 - select NEED_MACH_IO_H 372 - select NEED_MACH_MEMORY_H 373 - select NO_IOPORT_MAP 374 - help 375 - On the Acorn Risc-PC, Linux can support the internal IDE disk and 376 - CD-ROM interface, serial and parallel port, and the floppy drive. 377 - 378 - config ARCH_SA1100 379 - bool "SA1100-based" 380 - depends on CPU_LITTLE_ENDIAN 381 - depends on ATAGS 382 - select ARCH_MTD_XIP 383 - select ARCH_SPARSEMEM_ENABLE 384 - select CLKSRC_MMIO 385 - select CLKSRC_PXA 386 - select TIMER_OF if OF 387 - select COMMON_CLK 388 - select CPU_FREQ 389 - select CPU_SA1100 390 - select GPIOLIB 391 - select IRQ_DOMAIN 392 - select ISA 393 - select NEED_MACH_MEMORY_H 394 - select SPARSE_IRQ 395 - help 396 - Support for StrongARM 11x0 based boards. 397 - 398 - endchoice 399 - 400 - menu "Multiple platform selection" 401 - depends on ARCH_MULTIPLATFORM 329 + menu "Platform selection" 330 + depends on MMU 402 331 403 332 comment "CPU Core family selection" 404 333 405 334 config ARCH_MULTI_V4 406 - bool "ARMv4 based platforms (FA526)" 335 + bool "ARMv4 based platforms (FA526, StrongARM)" 407 336 depends on !ARCH_MULTI_V6_V7 408 337 select ARCH_MULTI_V4_V5 409 - select CPU_FA526 338 + select CPU_FA526 if !(CPU_SA110 || CPU_SA1100) 410 339 411 340 config ARCH_MULTI_V4T 412 341 bool "ARMv4T based platforms (ARM720T, ARM920T, ...)" ··· 393 472 select ARM_GIC_V3 394 473 select ARM_PSCI 395 474 select HAVE_ARM_ARCH_TIMER 396 - select COMMON_CLK 397 475 help 398 476 Support for Airoha EN7523 SoCs 399 477 ··· 493 573 494 574 source "arch/arm/mach-realtek/Kconfig" 495 575 576 + source "arch/arm/mach-rpc/Kconfig" 577 + 496 578 source "arch/arm/mach-rockchip/Kconfig" 497 579 498 580 source "arch/arm/mach-s3c/Kconfig" ··· 560 638 config PLAT_ORION 561 639 bool 562 640 select CLKSRC_MMIO 563 - select COMMON_CLK 564 641 select GENERIC_IRQ_CHIP 565 642 select IRQ_DOMAIN 566 643 ··· 1279 1358 at all). If in doubt say N. 1280 1359 1281 1360 config ARCH_SELECT_MEMORY_MODEL 1282 - bool 1361 + def_bool y 1283 1362 1284 1363 config ARCH_FLATMEM_ENABLE 1285 - bool 1364 + def_bool !(ARCH_RPC || ARCH_SA1100) 1286 1365 1287 1366 config ARCH_SPARSEMEM_ENABLE 1288 - bool 1367 + def_bool !ARCH_FOOTBRIDGE 1289 1368 select SPARSEMEM_STATIC if SPARSEMEM 1290 1369 1291 1370 config HIGHMEM ··· 1693 1772 For more details see Documentation/admin-guide/kdump/kdump.rst 1694 1773 1695 1774 config AUTO_ZRELADDR 1696 - bool "Auto calculation of the decompressed kernel image address" 1775 + bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM 1776 + default !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100) 1697 1777 help 1698 1778 ZRELADDR is the physical address where the decompressed kernel 1699 1779 image will be placed. If AUTO_ZRELADDR is selected, the address
+3 -4
arch/arm/Kconfig.debug
··· 1904 1904 1905 1905 config DEBUG_UNCOMPRESS 1906 1906 bool "Enable decompressor debugging via DEBUG_LL output" 1907 - depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M 1907 + depends on !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100) 1908 1908 depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \ 1909 1909 (!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \ 1910 1910 !DEBUG_BRCMSTB_UART && !DEBUG_SEMIHOSTING ··· 1921 1921 1922 1922 config UNCOMPRESS_INCLUDE 1923 1923 string 1924 - default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \ 1925 - PLAT_SAMSUNG || ARM_SINGLE_ARMV7M 1926 - default "mach/uncompress.h" 1924 + default "mach/uncompress.h" if ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100 1925 + default "debug/uncompress.h" 1927 1926 1928 1927 config EARLY_PRINTK 1929 1928 bool "Early printk"
+2
arch/arm/configs/assabet_defconfig
··· 1 1 CONFIG_SYSVIPC=y 2 2 CONFIG_LOG_BUF_SHIFT=14 3 3 CONFIG_BLK_DEV_INITRD=y 4 + CONFIG_ARCH_MULTI_V4=y 5 + # CONFIG_ARCH_MULTI_V7 is not set 4 6 CONFIG_ARCH_SA1100=y 5 7 CONFIG_SA1100_ASSABET=y 6 8 CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M root=/dev/ram"
+2
arch/arm/configs/badge4_defconfig
··· 1 1 CONFIG_LOG_BUF_SHIFT=14 2 2 CONFIG_EXPERT=y 3 + CONFIG_ARCH_MULTI_V4=y 4 + # CONFIG_ARCH_MULTI_V7 is not set 3 5 CONFIG_ARCH_SA1100=y 4 6 CONFIG_SA1100_BADGE4=y 5 7 CONFIG_UNUSED_BOARD_FILES=y
+2
arch/arm/configs/cerfcube_defconfig
··· 1 1 CONFIG_SYSVIPC=y 2 2 CONFIG_BSD_PROCESS_ACCT=y 3 3 CONFIG_LOG_BUF_SHIFT=14 4 + CONFIG_ARCH_MULTI_V4=y 5 + # CONFIG_ARCH_MULTI_V7 is not set 4 6 CONFIG_ARCH_SA1100=y 5 7 CONFIG_SA1100_CERF=y 6 8 CONFIG_SA1100_CERF_FLASH_16MB=y
+2
arch/arm/configs/collie_defconfig
··· 5 5 CONFIG_EXPERT=y 6 6 # CONFIG_BASE_FULL is not set 7 7 # CONFIG_EPOLL is not set 8 + CONFIG_ARCH_MULTI_V4=y 9 + # CONFIG_ARCH_MULTI_V7 is not set 8 10 CONFIG_ARCH_SA1100=y 9 11 CONFIG_SA1100_COLLIE=y 10 12 CONFIG_CMDLINE="noinitrd root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1"
+2
arch/arm/configs/footbridge_defconfig
··· 4 4 CONFIG_BLK_DEV_INITRD=y 5 5 CONFIG_EXPERT=y 6 6 # CONFIG_HOTPLUG is not set 7 + CONFIG_ARCH_MULTI_V4=y 8 + # CONFIG_ARCH_MULTI_V7 is not set 7 9 CONFIG_ARCH_FOOTBRIDGE=y 8 10 CONFIG_ARCH_EBSA285_HOST=y 9 11 CONFIG_ARCH_NETWINDER=y
+2
arch/arm/configs/h3600_defconfig
··· 4 4 CONFIG_PREEMPT=y 5 5 CONFIG_LOG_BUF_SHIFT=14 6 6 CONFIG_BLK_DEV_INITRD=y 7 + CONFIG_ARCH_MULTI_V4=y 8 + # CONFIG_ARCH_MULTI_V7 is not set 7 9 CONFIG_ARCH_SA1100=y 8 10 CONFIG_SA1100_H3600=y 9 11 # CONFIG_CPU_FREQ_STAT is not set
+2
arch/arm/configs/hackkit_defconfig
··· 1 1 CONFIG_SYSVIPC=y 2 2 CONFIG_LOG_BUF_SHIFT=14 3 3 CONFIG_BLK_DEV_INITRD=y 4 + CONFIG_ARCH_MULTI_V4=y 5 + # CONFIG_ARCH_MULTI_V7 is not set 4 6 CONFIG_ARCH_SA1100=y 5 7 CONFIG_SA1100_HACKKIT=y 6 8 CONFIG_UNUSED_BOARD_FILES=y
+2
arch/arm/configs/jornada720_defconfig
··· 1 1 CONFIG_SYSVIPC=y 2 2 CONFIG_LOG_BUF_SHIFT=14 3 3 CONFIG_SYSFS_DEPRECATED_V2=y 4 + CONFIG_ARCH_MULTI_V4=y 5 + # CONFIG_ARCH_MULTI_V7 is not set 4 6 CONFIG_ARCH_SA1100=y 5 7 CONFIG_SA1100_JORNADA720=y 6 8 CONFIG_SA1100_JORNADA720_SSP=y
+2
arch/arm/configs/lart_defconfig
··· 1 1 CONFIG_SYSVIPC=y 2 2 CONFIG_LOG_BUF_SHIFT=14 3 3 CONFIG_BLK_DEV_INITRD=y 4 + CONFIG_ARCH_MULTI_V4=y 5 + # CONFIG_ARCH_MULTI_V7 is not set 4 6 CONFIG_ARCH_SA1100=y 5 7 CONFIG_SA1100_LART=y 6 8 CONFIG_UNUSED_BOARD_FILES=y
+2
arch/arm/configs/neponset_defconfig
··· 1 1 CONFIG_SYSVIPC=y 2 2 CONFIG_LOG_BUF_SHIFT=14 3 3 CONFIG_BLK_DEV_INITRD=y 4 + CONFIG_ARCH_MULTI_V4=y 5 + # CONFIG_ARCH_MULTI_V7 is not set 4 6 CONFIG_ARCH_SA1100=y 5 7 CONFIG_SA1100_ASSABET=y 6 8 CONFIG_ASSABET_NEPONSET=y
+2
arch/arm/configs/netwinder_defconfig
··· 1 1 CONFIG_SYSVIPC=y 2 2 CONFIG_LOG_BUF_SHIFT=14 3 + CONFIG_ARCH_MULTI_V4=y 4 + # CONFIG_ARCH_MULTI_V7 is not set 3 5 CONFIG_ARCH_FOOTBRIDGE=y 4 6 CONFIG_ARCH_NETWINDER=y 5 7 CONFIG_DEPRECATED_PARAM_STRUCT=y
+2
arch/arm/configs/pleb_defconfig
··· 4 4 CONFIG_EXPERT=y 5 5 # CONFIG_HOTPLUG is not set 6 6 # CONFIG_SHMEM is not set 7 + CONFIG_ARCH_MULTI_V4=y 8 + # CONFIG_ARCH_MULTI_V7 is not set 7 9 CONFIG_ARCH_SA1100=y 8 10 CONFIG_SA1100_PLEB=y 9 11 CONFIG_UNUSED_BOARD_FILES=y
+2
arch/arm/configs/rpc_defconfig
··· 4 4 CONFIG_BLK_DEV_INITRD=y 5 5 CONFIG_MODULES=y 6 6 CONFIG_MODULE_UNLOAD=y 7 + CONFIG_ARCH_MULTI_V4=y 8 + # CONFIG_ARCH_MULTI_V7 is not set 7 9 CONFIG_ARCH_RPC=y 8 10 CONFIG_CPU_SA110=y 9 11 CONFIG_FPE_NWFPE=y
+2
arch/arm/configs/shannon_defconfig
··· 1 1 CONFIG_SYSVIPC=y 2 2 CONFIG_LOG_BUF_SHIFT=14 3 3 CONFIG_BLK_DEV_INITRD=y 4 + CONFIG_ARCH_MULTI_V4=y 5 + # CONFIG_ARCH_MULTI_V7 is not set 4 6 CONFIG_ARCH_SA1100=y 5 7 CONFIG_SA1100_SHANNON=y 6 8 CONFIG_UNUSED_BOARD_FILES=y
+2
arch/arm/configs/simpad_defconfig
··· 5 5 CONFIG_EXPERT=y 6 6 CONFIG_KALLSYMS_ALL=y 7 7 CONFIG_KALLSYMS_EXTRA_PASS=y 8 + CONFIG_ARCH_MULTI_V4=y 9 + # CONFIG_ARCH_MULTI_V7 is not set 8 10 CONFIG_ARCH_SA1100=y 9 11 CONFIG_SA1100_SIMPAD=y 10 12 CONFIG_UNUSED_BOARD_FILES=y
+15 -4
arch/arm/mach-footbridge/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 - if ARCH_FOOTBRIDGE 2 + menuconfig ARCH_FOOTBRIDGE 3 + bool "FootBridge Implementations" 4 + depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5) 5 + depends on !(ARCH_MOXART || ARCH_GEMINI || ARCH_SA1100) 6 + depends on ATAGS 7 + depends on CPU_LITTLE_ENDIAN 8 + depends on MMU 9 + select ARCH_NO_SG_CHAIN 10 + select CPU_SA110 11 + select FOOTBRIDGE 12 + select NEED_MACH_MEMORY_H 13 + help 14 + Support for systems based on the DC21285 companion chip 15 + ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder. 3 16 4 - menu "Footbridge Implementations" 17 + if ARCH_FOOTBRIDGE 5 18 6 19 config ARCH_CATS 7 20 bool "CATS" ··· 69 56 <http://www.netwinder.org/> 70 57 71 58 Saying N will reduce the size of the Footbridge kernel. 72 - 73 - endmenu 74 59 75 60 # Footbridge support 76 61 config FOOTBRIDGE
+1 -1
arch/arm/mach-imx/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 2 menuconfig ARCH_MXC 3 3 bool "Freescale i.MX family" 4 - depends on (ARCH_MULTI_V4_V5 && CPU_LITTLE_ENDIAN) || \ 4 + depends on ((ARCH_MULTI_V4T || ARCH_MULTI_V5) && CPU_LITTLE_ENDIAN) || \ 5 5 ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M 6 6 select CLKSRC_IMX_GPT 7 7 select GENERIC_IRQ_CHIP
+1 -1
arch/arm/mach-nspire/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 2 config ARCH_NSPIRE 3 3 bool "TI-NSPIRE based" 4 - depends on ARCH_MULTI_V4_V5 4 + depends on ARCH_MULTI_V4T 5 5 depends on CPU_LITTLE_ENDIAN 6 6 select CPU_ARM926T 7 7 select GENERIC_IRQ_CHIP
+21
arch/arm/mach-rpc/Kconfig
··· 1 + config ARCH_RPC 2 + bool "RiscPC" 3 + depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5) 4 + depends on !(ARCH_FOOTBRIDGE || ARCH_SA1100 || ARCH_MOXART || ARCH_GEMINI) 5 + depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000 6 + depends on CPU_LITTLE_ENDIAN 7 + depends on ATAGS 8 + depends on MMU 9 + select ARCH_ACORN 10 + select ARCH_MAY_HAVE_PC_FDC 11 + select CPU_SA110 12 + select FIQ 13 + select HAVE_PATA_PLATFORM 14 + select ISA_DMA_API 15 + select LEGACY_TIMER_TICK 16 + select NEED_MACH_IO_H 17 + select NEED_MACH_MEMORY_H 18 + select NO_IOPORT_MAP 19 + help 20 + On the Acorn Risc-PC, Linux can support the internal IDE disk and 21 + CD-ROM interface, serial and parallel port, and the floppy drive.
+20 -5
arch/arm/mach-sa1100/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 - if ARCH_SA1100 2 + menuconfig ARCH_SA1100 3 + bool "SA11x0 Implementations" 4 + depends on ARCH_MULTI_V4 && !(ARCH_MULTI_V4T || ARCH_MULTI_V5) 5 + depends on !(ARCH_MOXART || ARCH_GEMINI) 6 + depends on ATAGS 7 + depends on CPU_LITTLE_ENDIAN 8 + depends on MMU 9 + select ARCH_NO_SG_CHAIN 10 + select ARCH_MTD_XIP 11 + select CLKSRC_MMIO 12 + select CLKSRC_PXA 13 + select CPU_FREQ 14 + select CPU_SA1100 15 + select GPIOLIB 16 + select IRQ_DOMAIN 17 + select ISA 18 + select NEED_MACH_MEMORY_H 19 + help 20 + Support for StrongARM 11x0 based boards. 3 21 4 - menu "SA11x0 Implementations" 22 + if ARCH_SA1100 5 23 6 24 config SA1100_ASSABET 7 25 bool "Assabet" ··· 197 179 This isn't for audio support, but for attached sensors and 198 180 other devices, eg for BadgePAD 4 sensor support. 199 181 200 - endmenu 201 - 202 182 endif 203 -