Commit 6fd09c9a authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

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: default avatarArnd Bergmann <arnd@arndb.de>
parent 8c7d29a7
Loading
Loading
Loading
Loading
+18 −96
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ config ARM
	select ARCH_HAS_GCOV_PROFILE_ALL
	select ARCH_KEEP_MEMBLOCK
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select ARCH_NO_SG_CHAIN if !ARM_HAS_SG_CHAIN
	select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
	select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7
	select ARCH_SUPPORTS_ATOMIC_RMW
@@ -42,6 +41,7 @@ config ARM
	select ARCH_WANT_LD_ORPHAN_WARN
	select BINFMT_FLAT_ARGVP_ENVP_ON_STACK
	select BUILDTIME_TABLE_SORT if MMU
	select COMMON_CLK if !(ARCH_RPC || ARCH_FOOTBRIDGE)
	select CLONE_BACKWARDS
	select CPU_PM if SUSPEND || CPU_IDLE
	select DCACHE_WORD_ACCESS if HAVE_EFFICIENT_UNALIGNED_ACCESS
@@ -110,6 +110,7 @@ config ARM
	select HAVE_MOD_ARCH_SPECIFIC
	select HAVE_NMI
	select HAVE_OPTPROBES if !THUMB2_KERNEL
	select HAVE_PCI
	select HAVE_PERF_EVENTS
	select HAVE_PERF_REGS
	select HAVE_PERF_USER_STACK_DUMP
@@ -126,13 +127,17 @@ config ARM
	select OF_EARLY_FLATTREE if OF
	select OLD_SIGACTION
	select OLD_SIGSUSPEND3
	select PCI_DOMAINS_GENERIC if PCI
	select PCI_SYSCALL if PCI
	select PERF_USE_VMALLOC
	select RTC_LIB
	select SPARSE_IRQ if !(ARCH_FOOTBRIDGE || ARCH_RPC)
	select SYS_SUPPORTS_APM_EMULATION
	select THREAD_INFO_IN_TASK
	select TIMER_OF if OF
	select HAVE_ARCH_VMAP_STACK if MMU && ARM_HAS_GROUP_RELOCS
	select TRACE_IRQFLAGS_SUPPORT if !CPU_V7M
	select USE_OF if !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
	# Above selects are sorted alphabetically; please add new ones
	# according to that.  Thanks.
	help
@@ -154,12 +159,8 @@ config ARM_HAS_GROUP_RELOCS
	  which is usually sufficient, but not for allyesconfig, so we disable
	  this feature when doing compile testing.

config ARM_HAS_SG_CHAIN
	bool

config ARM_DMA_USE_IOMMU
	bool
	select ARM_HAS_SG_CHAIN
	select NEED_SG_DMA_LENGTH

if ARM_DMA_USE_IOMMU
@@ -307,13 +308,8 @@ config MMU
config ARM_SINGLE_ARMV7M
	def_bool !MMU
	select ARM_NVIC
	select AUTO_ZRELADDR
	select TIMER_OF
	select COMMON_CLK
	select CPU_V7M
	select NO_IOPORT_MAP
	select SPARSE_IRQ
	select USE_OF

config ARCH_MMAP_RND_BITS_MIN
	default 8
@@ -323,94 +319,19 @@ config ARCH_MMAP_RND_BITS_MAX
	default 15 if PAGE_OFFSET=0x80000000
	default 16

#
# The "ARM system type" choice list is ordered alphabetically by option
# text.  Please add new entries in the option alphabetic order.
#
choice
	prompt "ARM system type"
	depends on MMU
	default ARCH_MULTIPLATFORM

config ARCH_MULTIPLATFORM
	bool "Allow multiple platforms to be selected"
	select ARCH_FLATMEM_ENABLE
	select ARCH_SPARSEMEM_ENABLE
	select ARCH_SELECT_MEMORY_MODEL
	select ARM_HAS_SG_CHAIN
	select ARM_PATCH_PHYS_VIRT
	select AUTO_ZRELADDR
	select TIMER_OF
	select COMMON_CLK
	select HAVE_PCI
	select PCI_DOMAINS_GENERIC if PCI
	select SPARSE_IRQ
	select USE_OF

config ARCH_FOOTBRIDGE
	bool "FootBridge"
	depends on CPU_LITTLE_ENDIAN
	depends on ATAGS
	select CPU_SA110
	select FOOTBRIDGE
	select NEED_MACH_MEMORY_H
	help
	  Support for systems based on the DC21285 companion chip
	  ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.

config ARCH_RPC
	bool "RiscPC"
	depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
	depends on CPU_LITTLE_ENDIAN
	depends on ATAGS
	select ARCH_ACORN
	select ARCH_MAY_HAVE_PC_FDC
	select ARCH_SPARSEMEM_ENABLE
	select ARM_HAS_SG_CHAIN
	select CPU_SA110
	select FIQ
	select HAVE_PATA_PLATFORM
	select ISA_DMA_API
	select LEGACY_TIMER_TICK
	select NEED_MACH_IO_H
	select NEED_MACH_MEMORY_H
	select NO_IOPORT_MAP
	help
	  On the Acorn Risc-PC, Linux can support the internal IDE disk and
	  CD-ROM interface, serial and parallel port, and the floppy drive.

config ARCH_SA1100
	bool "SA1100-based"
	depends on CPU_LITTLE_ENDIAN
	depends on ATAGS
	select ARCH_MTD_XIP
	select ARCH_SPARSEMEM_ENABLE
	select CLKSRC_MMIO
	select CLKSRC_PXA
	select TIMER_OF if OF
	select COMMON_CLK
	select CPU_FREQ
	select CPU_SA1100
	select GPIOLIB
	select IRQ_DOMAIN
	select ISA
	select NEED_MACH_MEMORY_H
	select SPARSE_IRQ
	help
	  Support for StrongARM 11x0 based boards.
	def_bool MMU && !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)

endchoice

menu "Multiple platform selection"
	depends on ARCH_MULTIPLATFORM
menu "Platform selection"
	depends on MMU

comment "CPU Core family selection"

config ARCH_MULTI_V4
	bool "ARMv4 based platforms (FA526)"
	bool "ARMv4 based platforms (FA526, StrongARM)"
	depends on !ARCH_MULTI_V6_V7
	select ARCH_MULTI_V4_V5
	select CPU_FA526
	select CPU_FA526 if !(CPU_SA110 || CPU_SA1100)

config ARCH_MULTI_V4T
	bool "ARMv4T based platforms (ARM720T, ARM920T, ...)"
@@ -472,7 +393,6 @@ config ARCH_AIROHA
	select ARM_GIC_V3
	select ARM_PSCI
	select HAVE_ARM_ARCH_TIMER
	select COMMON_CLK
	help
	  Support for Airoha EN7523 SoCs

@@ -573,6 +493,8 @@ source "arch/arm/mach-rda/Kconfig"

source "arch/arm/mach-realtek/Kconfig"

source "arch/arm/mach-rpc/Kconfig"

source "arch/arm/mach-rockchip/Kconfig"

source "arch/arm/mach-s3c/Kconfig"
@@ -638,7 +560,6 @@ config ARCH_ACORN
config PLAT_ORION
	bool
	select CLKSRC_MMIO
	select COMMON_CLK
	select GENERIC_IRQ_CHIP
	select IRQ_DOMAIN

@@ -1358,13 +1279,13 @@ config OABI_COMPAT
	  at all). If in doubt say N.

config ARCH_SELECT_MEMORY_MODEL
	bool
	def_bool y

config ARCH_FLATMEM_ENABLE
	bool
	def_bool !(ARCH_RPC || ARCH_SA1100)

config ARCH_SPARSEMEM_ENABLE
	bool
	def_bool !ARCH_FOOTBRIDGE
	select SPARSEMEM_STATIC if SPARSEMEM

config HIGHMEM
@@ -1772,7 +1693,8 @@ config CRASH_DUMP
	  For more details see Documentation/admin-guide/kdump/kdump.rst

config AUTO_ZRELADDR
	bool "Auto calculation of the decompressed kernel image address"
	bool "Auto calculation of the decompressed kernel image address" if !ARCH_MULTIPLATFORM
	default !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
	help
	  ZRELADDR is the physical address where the decompressed kernel
	  image will be placed. If AUTO_ZRELADDR is selected, the address
+3 −4
Original line number Diff line number Diff line
@@ -1904,7 +1904,7 @@ config DEBUG_UART_8250_PALMCHIP

config DEBUG_UNCOMPRESS
	bool "Enable decompressor debugging via DEBUG_LL output"
	depends on ARCH_MULTIPLATFORM || PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
	depends on !(ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100)
	depends on DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \
		     (!DEBUG_TEGRA_UART || !ZBOOT_ROM) && \
		     !DEBUG_BRCMSTB_UART && !DEBUG_SEMIHOSTING
@@ -1921,9 +1921,8 @@ config DEBUG_UNCOMPRESS

config UNCOMPRESS_INCLUDE
	string
	default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
					PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
	default "mach/uncompress.h"
	default "mach/uncompress.h" if ARCH_FOOTBRIDGE || ARCH_RPC || ARCH_SA1100
	default "debug/uncompress.h"

config EARLY_PRINTK
	bool "Early printk"
+2 −0
Original line number Diff line number Diff line
CONFIG_SYSVIPC=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_BLK_DEV_INITRD=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_ASSABET=y
CONFIG_CMDLINE="mem=32M console=ttySA0,38400n8 initrd=0xc0800000,3M root=/dev/ram"
+2 −0
Original line number Diff line number Diff line
CONFIG_LOG_BUF_SHIFT=14
CONFIG_EXPERT=y
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_BADGE4=y
CONFIG_UNUSED_BOARD_FILES=y
+2 −0
Original line number Diff line number Diff line
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_ARCH_MULTI_V4=y
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_SA1100=y
CONFIG_SA1100_CERF=y
CONFIG_SA1100_CERF_FLASH_16MB=y
Loading