summaryrefslogtreecommitdiffstats
path: root/arch/arm/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/Kconfig')
-rw-r--r--arch/arm/Kconfig347
1 files changed, 202 insertions, 145 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9589a6a511..1377679ac9 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1,9 +1,15 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
config ARM
bool
select HAS_KALLSYMS
select HAS_CACHE
select HAVE_CONFIGURABLE_TEXT_BASE if !RELOCATABLE
select HAVE_IMAGE_COMPRESSION
+ select HAVE_ARCH_KASAN
+ select ARCH_HAS_SJLJ
+ select ARM_OPTIMZED_STRING_FUNCTIONS if KASAN
+ select HAVE_EFI_STUB
default y
config ARM_LINUX
@@ -11,13 +17,9 @@ config ARM_LINUX
default y
depends on CMD_BOOTZ || CMD_BOOTU || BOOTM
-config HAVE_MACH_ARM_HEAD
- bool
-
config ARM_USE_COMPRESSED_DTB
- bool
- select UNCOMPRESS
- select LZO_DECOMPRESS
+ bool
+ select USE_COMPRESSED_DTB
config TEXT_BASE
hex
@@ -25,48 +27,56 @@ config TEXT_BASE
menu "System Type"
+config ARCH_STM32
+ bool
+ help
+ Selected by both STM32 MCUs and MPUs to restrict driver
+ visibility.
+
+config ARCH_OMAP
+ bool
+ select HAS_DEBUG_LL
+ select GPIOLIB
+
choice
prompt "ARM system type"
+config ARCH_MULTIARCH
+ bool "Allow multiple archs to be selected"
+
config ARCH_AT91
bool "Atmel AT91"
+ depends on 32BIT
select GPIOLIB
select CLKDEV_LOOKUP
+ select HAVE_PBL_MULTI_IMAGES
select HAS_DEBUG_LL
select HAVE_CLK
select COMMON_CLK_AT91 if COMMON_CLK_OF_PROVIDER
-
-config ARCH_BCM283X
- bool "Broadcom BCM283x based boards"
- select GPIOLIB
- select CLKDEV_LOOKUP
- select COMMON_CLK
- select CLOCKSOURCE_BCM283X
- select ARM_AMBA
- select HAS_DEBUG_LL
- select RELOCATABLE
- select OFTREE
- select OFDEVICE
- select HAVE_PBL_MULTI_IMAGES
-
config ARCH_CLPS711X
bool "Cirrus Logic EP711x/EP721x/EP731x"
- select CLKDEV_LOOKUP
+ depends on 32BIT
select CLOCKSOURCE_CLPS711X
select COMMON_CLK
+ select COMMON_CLK_OF_PROVIDER
select CPU_32v4T
select GPIOLIB
+ select HAS_DEBUG_LL
+ select HAVE_PBL_MULTI_IMAGES
select MFD_SYSCON
+ select RELOCATABLE
config ARCH_DAVINCI
bool "TI Davinci"
+ depends on 32BIT
select CPU_ARM926T
select HAS_DEBUG_LL
select GPIOLIB
config ARCH_DIGIC
bool "Canon DIGIC-based cameras"
+ depends on 32BIT
select CPU_ARM946E
select HAS_DEBUG_LL
select CLOCKSOURCE_DIGIC
@@ -76,45 +86,17 @@ config ARCH_DIGIC
config ARCH_EP93XX
bool "Cirrus Logic EP93xx"
+ depends on 32BIT
select CPU_ARM920T
select GENERIC_GPIO
-config ARCH_HIGHBANK
- bool "Calxeda Highbank"
- select HAS_DEBUG_LL
- select ARCH_HAS_L2X0
- select CPU_V7
- select ARM_AMBA
- select AMBA_SP804
- select CLKDEV_LOOKUP
- select COMMON_CLK
- select GPIOLIB
-
-config ARCH_IMX
- bool "Freescale iMX-based"
- select GPIOLIB
- select COMMON_CLK
- select CLKDEV_LOOKUP
- select WATCHDOG_IMX_RESET_SOURCE
- select HAS_DEBUG_LL
-
-config ARCH_LAYERSCAPE
- bool "NXP Layerscape based"
- select GPIOLIB
- select HAS_DEBUG_LL
- select HAVE_PBL_MULTI_IMAGES
- select COMMON_CLK
- select CLKDEV_LOOKUP
- select COMMON_CLK_OF_PROVIDER
-
config ARCH_MVEBU
bool "Marvell EBU platforms"
+ depends on 32BIT
select COMMON_CLK
select COMMON_CLK_OF_PROVIDER
- select CLKDEV_LOOKUP
select GPIOLIB
select HAS_DEBUG_LL
- select HAVE_MACH_ARM_HEAD
select HAVE_PBL_MULTI_IMAGES
select HW_HAS_PCI
select MVEBU_MBUS
@@ -124,80 +106,169 @@ config ARCH_MVEBU
config ARCH_MXS
bool "Freescale i.MX23/28 (mxs) based"
+ depends on 32BIT
select GPIOLIB
select GENERIC_GPIO
select COMMON_CLK
- select CLKDEV_LOOKUP
select HAS_DEBUG_LL
select HAVE_PBL_MULTI_IMAGES
config ARCH_NOMADIK
bool "STMicroelectronics Nomadik"
+ depends on 32BIT
select CPU_ARM926T
select CLOCKSOURCE_NOMADIK
- select HAVE_CLK
+ select HAVE_LEGACY_CLK
help
Support for the Nomadik platform by ST-Ericsson
-config ARCH_OMAP
+config ARCH_OMAP_SINGLE
bool "TI OMAP"
- select HAS_DEBUG_LL
- select GPIOLIB
+ depends on 32BIT
+ select ARCH_OMAP
config ARCH_PXA
bool "Intel/Marvell PXA based"
+ depends on 32BIT
select GENERIC_GPIO
-config ARCH_ROCKCHIP
- bool "Rockchip RX3xxx"
- select CPU_V7
+config ARCH_SOCFPGA
+ bool "Altera SOCFPGA"
+ depends on 32BIT
+ select HAS_DEBUG_LL
select ARM_SMP_TWD
+ select CPU_V7
+ select COMMON_CLK
+
+config ARCH_TEGRA
+ bool "NVIDIA Tegra"
+ depends on 32BIT
+ select CPU_V7
+ select HAS_DEBUG_LL
+ select HW_HAS_PCI
select COMMON_CLK
- select CLKDEV_LOOKUP
select COMMON_CLK_OF_PROVIDER
select GPIOLIB
+ select GPIO_TEGRA
+ select HAVE_PBL_MULTI_IMAGES
+ select OFDEVICE
+ select OFTREE
+ select RELOCATABLE
+ select RESET_CONTROLLER
select PINCTRL
- select PINCTRL_ROCKCHIP
+
+config ARCH_UEMD
+ bool "RC Module UEMD Platform"
+ depends on 32BIT
+ select CPU_ARM1176
+ select COMMON_CLK
+ select COMMON_CLK_OF_PROVIDER
+ select OFDEVICE
select OFTREE
+ select CLOCKSOURCE_UEMD
+ select HAS_DEBUG_LL
+
+config ARCH_ZYNQ
+ bool "Xilinx Zynq-based boards"
+ depends on 32BIT
+ select HAS_DEBUG_LL
+ select PBL_IMAGE
+ select GPIOLIB
+
+endchoice
+
+config ARCH_ARM64_VIRT
+ bool "ARM64 QEMU Virt board"
+ depends on 64BIT
+ select CPU_V8
select HAVE_PBL_MULTI_IMAGES
+ select OFDEVICE
+ select OFTREE
+ select RELOCATABLE
+ select ARM_AMBA
+ select BOARD_ARM_VIRT
+ select HW_HAS_PCI
select HAS_DEBUG_LL
- select ARCH_HAS_L2X0
-config ARCH_SOCFPGA
- bool "Altera SOCFPGA"
+config ARCH_BCM283X
+ bool "Broadcom BCM283x based boards"
+ select GPIOLIB
+ select COMMON_CLK
+ select COMMON_CLK_OF_PROVIDER
+ select CLOCKSOURCE_BCM283X
+ select ARM_AMBA
select HAS_DEBUG_LL
- select ARM_SMP_TWD
- select CPU_V7
+ select RELOCATABLE
+ select OFTREE
+ select OFDEVICE
+ select HAVE_PBL_MULTI_IMAGES
+
+config ARCH_IMX
+ bool "Freescale iMX-based"
+ depends on ARCH_MULTIARCH
+ select GPIOLIB
select COMMON_CLK
- select CLKDEV_LOOKUP
+ select WATCHDOG_IMX_RESET_SOURCE
+ select HAS_DEBUG_LL
+ select HAVE_PBL_MULTI_IMAGES
+ select RELOCATABLE
-config ARCH_S3C24xx
- bool "Samsung S3C2410, S3C2440"
- select ARCH_SAMSUNG
- select CPU_ARM920T
- select GENERIC_GPIO
+config ARCH_K3
+ bool "Texas Instruments Inc. K3 multicore SoC architecture"
+ depends on 64BIT
+ select CPU_V8
+ select GPIOLIB
+ select COMMON_CLK
+ select HAVE_PBL_MULTI_IMAGES
+ select HAS_DEBUG_LL
+ select COMMON_CLK_OF_PROVIDER
+ select PM_GENERIC_DOMAINS
-config ARCH_S5PCxx
- bool "Samsung S5PC110, S5PV210"
- select ARCH_SAMSUNG
- select CPU_V7
- select GENERIC_GPIO
+config ARCH_LAYERSCAPE
+ bool "NXP Layerscape based"
+ depends on ARCH_MULTIARCH
+ select GPIOLIB
+ select HAS_DEBUG_LL
+ select HAVE_PBL_MULTI_IMAGES
+ select COMMON_CLK
+ select COMMON_CLK_OF_PROVIDER
+ select HW_HAS_PCI
+ select OFTREE
+ select OFDEVICE
+ select ARM_USE_COMPRESSED_DTB
+ select OF_DMA_COHERENCY
-config ARCH_S3C64xx
- bool "Samsung S3C64xx"
- select ARCH_SAMSUNG
- select CPU_V6
- select GENERIC_GPIO
+config ARCH_OMAP_MULTI
+ bool "TI OMAP"
+ depends on 32BIT
+ depends on ARCH_MULTIARCH
+ select OMAP_MULTI_BOARDS
+ select ARCH_OMAP
+ select HAS_DEBUG_LL
+ select GPIOLIB
+
+config ARCH_ROCKCHIP
+ bool "Rockchip RX3xxx"
+ depends on ARCH_MULTIARCH
+ select COMMON_CLK
+ select COMMON_CLK_OF_PROVIDER
+ select GPIOLIB
+ select PINCTRL
+ select PINCTRL_ROCKCHIP
+ select OFTREE
+ select HAVE_PBL_MULTI_IMAGES
+ select HAS_DEBUG_LL
+ imply GPIO_ROCKCHIP
config ARCH_STM32MP
bool "STMicroelectronics STM32MP"
+ depends on 32BIT
+ select ARCH_STM32
select CPU_V7
select HAVE_PBL_MULTI_IMAGES
- select CLKDEV_LOOKUP
select COMMON_CLK
select COMMON_CLK_OF_PROVIDER
select HAS_DEBUG_LL
- select HAVE_CLK
select GPIOLIB
select ARCH_HAS_RESET_CONTROLLER
select ARM_AMBA
@@ -206,72 +277,44 @@ config ARCH_STM32MP
config ARCH_VERSATILE
bool "ARM Versatile boards (ARM926EJ-S)"
+ depends on 32BIT
select GPIOLIB
- select HAVE_CLK
+ select ARM_AMBA
+ select AMBA_SP804
select HAS_DEBUG_LL
+ select COMMON_CLK
+ select COMMON_CLK_OF_PROVIDER
+ select HAVE_PBL_MULTI_IMAGES
config ARCH_VEXPRESS
- bool "ARM Vexpres boards"
+ bool "ARM Vexpress & virt boards"
+ depends on 32BIT
select HAS_DEBUG_LL
select CPU_V7
select ARM_AMBA
select AMBA_SP804
- select CLKDEV_LOOKUP
- select COMMON_CLK
-
-config ARCH_TEGRA
- bool "NVIDIA Tegra"
- select CPU_V7
- select HAS_DEBUG_LL
- select HW_HAS_PCI
select COMMON_CLK
select COMMON_CLK_OF_PROVIDER
- select CLKDEV_LOOKUP
- select GPIOLIB
- select GPIO_TEGRA
- select HAVE_PBL_MULTI_IMAGES
- select OFDEVICE
select OFTREE
- select RELOCATABLE
- select RESET_CONTROLLER
- select PINCTRL
-
-config ARCH_UEMD
- bool "RC Module UEMD Platform"
- select CPU_ARM1176
- select COMMON_CLK
- select COMMON_CLK_OF_PROVIDER
- select CLKDEV_LOOKUP
select OFDEVICE
- select OFTREE
- select CLOCKSOURCE_UEMD
- select HAS_DEBUG_LL
-
-config ARCH_ZYNQ
- bool "Xilinx Zynq-based boards"
- select HAS_DEBUG_LL
+ select RELOCATABLE
+ select HAVE_PBL_MULTI_IMAGES
config ARCH_ZYNQMP
bool "Xilinx ZynqMP-based boards"
+ depends on 64BIT
select CPU_V8
select HAS_DEBUG_LL
select HAVE_PBL_MULTI_IMAGES
select ARM_SMCCC
select COMMON_CLK
select COMMON_CLK_OF_PROVIDER
- select CLKDEV_LOOKUP
+ select GPIOLIB
select OFDEVICE
select OFTREE
select RELOCATABLE
- select SYS_SUPPORTS_64BIT_KERNEL
select HAS_MACB
-config ARCH_QEMU
- bool "ARM QEMU boards"
- select HAS_DEBUG_LL
-
-endchoice
-
source "arch/arm/cpu/Kconfig"
source "arch/arm/mach-at91/Kconfig"
source "arch/arm/mach-bcm283x/Kconfig"
@@ -279,16 +322,15 @@ source "arch/arm/mach-clps711x/Kconfig"
source "arch/arm/mach-davinci/Kconfig"
source "arch/arm/mach-digic/Kconfig"
source "arch/arm/mach-ep93xx/Kconfig"
-source "arch/arm/mach-highbank/Kconfig"
source "arch/arm/mach-imx/Kconfig"
source "arch/arm/mach-layerscape/Kconfig"
source "arch/arm/mach-mxs/Kconfig"
source "arch/arm/mach-mvebu/Kconfig"
source "arch/arm/mach-nomadik/Kconfig"
+source "arch/arm/mach-k3/Kconfig"
source "arch/arm/mach-omap/Kconfig"
source "arch/arm/mach-pxa/Kconfig"
source "arch/arm/mach-rockchip/Kconfig"
-source "arch/arm/mach-samsung/Kconfig"
source "arch/arm/mach-socfpga/Kconfig"
source "arch/arm/mach-stm32mp/Kconfig"
source "arch/arm/mach-versatile/Kconfig"
@@ -296,11 +338,16 @@ source "arch/arm/mach-vexpress/Kconfig"
source "arch/arm/mach-tegra/Kconfig"
source "arch/arm/mach-uemd/Kconfig"
source "arch/arm/mach-zynq/Kconfig"
-source "arch/arm/mach-qemu/Kconfig"
source "arch/arm/mach-zynqmp/Kconfig"
+config BOARD_ARM_VIRT
+ bool
+ select BOARD_ARM_GENERIC_DT
+ select BOARD_QEMU_VIRT
+ select OF_OVERLAY
+
config BOARD_ARM_GENERIC_DT
- select LIBFDT
+ select BOARD_GENERIC_DT
select ARM_AMBA
depends on HAVE_PBL_MULTI_IMAGES
depends on OFDEVICE
@@ -362,28 +409,18 @@ config ARM_BOARD_PREPEND_ATAG
endmenu
-choice
- prompt "Barebox code model"
- help
- You should only select this option if you have a workload that
- actually benefits from 64-bit processing or if your machine has
- large memory. You will only be presented a single option in this
- menu if your system does not support both 32-bit and 64-bit modes.
-
-config 32BIT
- bool "32-bit barebox"
- depends on CPU_SUPPORTS_32BIT_KERNEL && SYS_SUPPORTS_32BIT_KERNEL
- help
- Select this option if you want to build a 32-bit barebox.
-
config 64BIT
- bool "64-bit barebox"
- depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
+ bool "64bit barebox" if "$(ARCH)" != "arm64"
+ default "$(ARCH)" = "arm64"
select ARCH_DMA_ADDR_T_64BIT
help
Select this option if you want to build a 64-bit barebox.
-endchoice
+config 32BIT
+ bool
+ default !64BIT
+ help
+ Select this option if you want to build a 32-bit barebox.
menu "ARM specific settings"
@@ -433,6 +470,7 @@ config ARM_SMCCC
This option enables barebox to invoke ARM secure monitor calls.
config ARM_SECURE_MONITOR
+ depends on CPU_32v7 || CPU_64v8
select ARM_SMCCC
bool
help
@@ -452,6 +490,7 @@ config ARM_PSCI
config ARM_PSCI_CLIENT
bool "Enable barebox PSCI client support"
+ depends on CPU_32v7 || CPU_64v8
select ARM_SMCCC
select ARM_PSCI_OF
help
@@ -471,4 +510,22 @@ config ARM_PSCI_DEBUG
putc function.
Only use for debugging.
+config ARM_MODULE_PLTS
+ bool "Use PLTs to allow loading modules placed far from barebox image"
+ depends on MODULES
+ select QSORT
+ help
+ Allocate PLTs when loading modules so that jumps and calls whose
+ targets are too far away for their relative offsets to be encoded
+ in the instructions themselves can be bounced via veneers in the
+ module's PLT. The modules will use slightly more memory, but after
+ rounding up to page size, the actual memory footprint is usually
+ the same.
+
+ Say y if your memory configuration puts the heap to far away from the
+ barebox image, causing relocation out of range errors
+
+config ARM_ATF
+ bool
+
endmenu