OSDN Git Service

Merge tag 'dma-mapping-5.18' of git://git.infradead.org/users/hch/dma-mapping
[uclinux-h8/linux.git] / arch / arm / Kconfig
index 49652ef..2e8091e 100644 (file)
@@ -49,7 +49,7 @@ config ARM
        select DMA_DECLARE_COHERENT
        select DMA_GLOBAL_POOL if !MMU
        select DMA_OPS
-       select DMA_REMAP if MMU
+       select DMA_NONCOHERENT_MMAP if MMU
        select EDAC_SUPPORT
        select EDAC_ATOMIC_SCRUB
        select GENERIC_ALLOCATOR
@@ -60,6 +60,7 @@ config ARM
        select GENERIC_CPU_AUTOPROBE
        select GENERIC_EARLY_IOREMAP
        select GENERIC_IDLE_POLL_SETUP
+       select GENERIC_IRQ_MULTI_HANDLER
        select GENERIC_IRQ_PROBE
        select GENERIC_IRQ_SHOW
        select GENERIC_IRQ_SHOW_LEVEL
@@ -94,8 +95,8 @@ config ARM
        select HAVE_EXIT_THREAD
        select HAVE_FAST_GUP if ARM_LPAE
        select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL
-       select HAVE_FUNCTION_GRAPH_TRACER if !THUMB2_KERNEL && !CC_IS_CLANG
-       select HAVE_FUNCTION_TRACER if !XIP_KERNEL && !(THUMB2_KERNEL && CC_IS_CLANG)
+       select HAVE_FUNCTION_GRAPH_TRACER
+       select HAVE_FUNCTION_TRACER if !XIP_KERNEL
        select HAVE_GCC_PLUGINS
        select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)
        select HAVE_IRQ_TIME_ACCOUNTING
@@ -129,7 +130,8 @@ config ARM
        select PERF_USE_VMALLOC
        select RTC_LIB
        select SYS_SUPPORTS_APM_EMULATION
-       select THREAD_INFO_IN_TASK if CURRENT_POINTER_IN_TPIDRURO
+       select THREAD_INFO_IN_TASK
+       select HAVE_ARCH_VMAP_STACK if MMU && ARM_HAS_GROUP_RELOCS
        select TRACE_IRQFLAGS_SUPPORT if !CPU_V7M
        # Above selects are sorted alphabetically; please add new ones
        # according to that.  Thanks.
@@ -141,6 +143,17 @@ config ARM
          Europe.  There is an ARM Linux project with a web page at
          <http://www.arm.linux.org.uk/>.
 
+config ARM_HAS_GROUP_RELOCS
+       def_bool y
+       depends on !LD_IS_LLD || LLD_VERSION >= 140000
+       depends on !COMPILE_TEST
+       help
+         Whether or not to use R_ARM_ALU_PC_Gn or R_ARM_LDR_PC_Gn group
+         relocations, which have been around for a long time, but were not
+         supported in LLD until version 14. The combined range is -/+ 256 MiB,
+         which is usually sufficient, but not for allyesconfig, so we disable
+         this feature when doing compile testing.
+
 config ARM_HAS_SG_CHAIN
        bool
 
@@ -220,18 +233,12 @@ config ARCH_MAY_HAVE_PC_FDC
 config ARCH_SUPPORTS_UPROBES
        def_bool y
 
-config ARCH_HAS_DMA_SET_COHERENT_MASK
-       bool
-
 config GENERIC_ISA_DMA
        bool
 
 config FIQ
        bool
 
-config NEED_RET_TO_USER
-       bool
-
 config ARCH_MTD_XIP
        bool
 
@@ -269,7 +276,7 @@ config PHYS_OFFSET
        hex "Physical address of main memory" if MMU
        depends on !ARM_PATCH_PHYS_VIRT
        default DRAM_BASE if !MMU
-       default 0x00000000 if ARCH_FOOTBRIDGE || ARCH_IXP4XX
+       default 0x00000000 if ARCH_FOOTBRIDGE
        default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
        default 0x30000000 if ARCH_S3C24XX
        default 0xa0000000 if ARCH_IOP32X || ARCH_PXA
@@ -297,6 +304,17 @@ config MMU
          Select if you want MMU-based virtualised addressing space
          support by paged memory management. If unsure, say 'Y'.
 
+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
 
@@ -311,12 +329,11 @@ config ARCH_MMAP_RND_BITS_MAX
 #
 choice
        prompt "ARM system type"
-       default ARM_SINGLE_ARMV7M if !MMU
-       default ARCH_MULTIPLATFORM if MMU
+       depends on MMU
+       default ARCH_MULTIPLATFORM
 
 config ARCH_MULTIPLATFORM
        bool "Allow multiple platforms to be selected"
-       depends on MMU
        select ARCH_FLATMEM_ENABLE
        select ARCH_SPARSEMEM_ENABLE
        select ARCH_SELECT_MEMORY_MODEL
@@ -325,31 +342,17 @@ config ARCH_MULTIPLATFORM
        select AUTO_ZRELADDR
        select TIMER_OF
        select COMMON_CLK
-       select GENERIC_IRQ_MULTI_HANDLER
        select HAVE_PCI
        select PCI_DOMAINS_GENERIC if PCI
        select SPARSE_IRQ
        select USE_OF
 
-config ARM_SINGLE_ARMV7M
-       bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
-       depends on !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_EP93XX
        bool "EP93xx-based"
        select ARCH_SPARSEMEM_ENABLE
        select ARM_AMBA
        imply ARM_PATCH_PHYS_VIRT
        select ARM_VIC
-       select GENERIC_IRQ_MULTI_HANDLER
        select AUTO_ZRELADDR
        select CLKSRC_MMIO
        select CPU_ARM920T
@@ -362,7 +365,6 @@ config ARCH_FOOTBRIDGE
        bool "FootBridge"
        select CPU_SA110
        select FOOTBRIDGE
-       select NEED_MACH_IO_H if !MMU
        select NEED_MACH_MEMORY_H
        help
          Support for systems based on the DC21285 companion chip
@@ -370,11 +372,9 @@ config ARCH_FOOTBRIDGE
 
 config ARCH_IOP32X
        bool "IOP32x-based"
-       depends on MMU
        select CPU_XSCALE
        select GPIO_IOP
        select GPIOLIB
-       select NEED_RET_TO_USER
        select FORCE_PCI
        select PLAT_IOP
        help
@@ -383,19 +383,15 @@ config ARCH_IOP32X
 
 config ARCH_IXP4XX
        bool "IXP4xx-based"
-       depends on MMU
-       select ARCH_HAS_DMA_SET_COHERENT_MASK
        select ARCH_SUPPORTS_BIG_ENDIAN
+       select ARM_PATCH_PHYS_VIRT
        select CPU_XSCALE
-       select DMABOUNCE if PCI
-       select GENERIC_IRQ_MULTI_HANDLER
        select GPIO_IXP4XX
        select GPIOLIB
        select HAVE_PCI
        select IXP4XX_IRQ
        select IXP4XX_TIMER
-       # With the new PCI driver this is not needed
-       select NEED_MACH_IO_H if IXP4XX_PCI_LEGACY
+       select SPARSE_IRQ
        select USB_EHCI_BIG_ENDIAN_DESC
        select USB_EHCI_BIG_ENDIAN_MMIO
        help
@@ -404,7 +400,6 @@ config ARCH_IXP4XX
 config ARCH_DOVE
        bool "Marvell Dove"
        select CPU_PJ4
-       select GENERIC_IRQ_MULTI_HANDLER
        select GPIOLIB
        select HAVE_PCI
        select MVEBU_MBUS
@@ -418,7 +413,6 @@ config ARCH_DOVE
 
 config ARCH_PXA
        bool "PXA2xx/PXA3xx-based"
-       depends on MMU
        select ARCH_MTD_XIP
        select ARM_CPU_SUSPEND if PM
        select AUTO_ZRELADDR
@@ -427,7 +421,6 @@ config ARCH_PXA
        select CLKSRC_MMIO
        select TIMER_OF
        select CPU_XSCALE if !CPU_XSC3
-       select GENERIC_IRQ_MULTI_HANDLER
        select GPIO_PXA
        select GPIOLIB
        select IRQ_DOMAIN
@@ -438,7 +431,6 @@ config ARCH_PXA
 
 config ARCH_RPC
        bool "RiscPC"
-       depends on MMU
        depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
        select ARCH_ACORN
        select ARCH_MAY_HAVE_PC_FDC
@@ -466,7 +458,6 @@ config ARCH_SA1100
        select COMMON_CLK
        select CPU_FREQ
        select CPU_SA1100
-       select GENERIC_IRQ_MULTI_HANDLER
        select GPIOLIB
        select IRQ_DOMAIN
        select ISA
@@ -481,7 +472,6 @@ config ARCH_S3C24XX
        select CLKSRC_SAMSUNG_PWM
        select GPIO_SAMSUNG
        select GPIOLIB
-       select GENERIC_IRQ_MULTI_HANDLER
        select NEED_MACH_IO_H
        select S3C2410_WATCHDOG
        select SAMSUNG_ATAGS
@@ -495,11 +485,9 @@ config ARCH_S3C24XX
 
 config ARCH_OMAP1
        bool "TI OMAP1"
-       depends on MMU
        select ARCH_OMAP
        select CLKSRC_MMIO
        select GENERIC_IRQ_CHIP
-       select GENERIC_IRQ_MULTI_HANDLER
        select GPIOLIB
        select HAVE_LEGACY_CLK
        select IRQ_DOMAIN
@@ -575,6 +563,18 @@ config ARCH_VIRT
        select HAVE_ARM_ARCH_TIMER
        select ARCH_SUPPORTS_BIG_ENDIAN
 
+config ARCH_AIROHA
+       bool "Airoha SoC Support"
+       depends on ARCH_MULTI_V7
+       select ARM_AMBA
+       select ARM_GIC
+       select ARM_GIC_V3
+       select ARM_PSCI
+       select HAVE_ARM_ARCH_TIMER
+       select COMMON_CLK
+       help
+         Support for Airoha EN7523 SoCs
+
 #
 # This is sorted alphabetically by mach-* pathname.  However, plat-*
 # Kconfigs may be included either alphabetically (according to the
@@ -1166,7 +1166,12 @@ config SMP_ON_UP
 
 config CURRENT_POINTER_IN_TPIDRURO
        def_bool y
-       depends on SMP && CPU_32v6K && !CPU_V6
+       depends on CPU_32v6K && !CPU_V6
+
+config IRQSTACKS
+       def_bool y
+       select HAVE_IRQ_EXIT_ON_IRQ_STACK
+       select HAVE_SOFTIRQ_ON_OWN_STACK
 
 config ARM_CPU_TOPOLOGY
        bool "Support cpu topology definition"
@@ -1607,10 +1612,14 @@ config XEN
        help
          Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
 
+config CC_HAVE_STACKPROTECTOR_TLS
+       def_bool $(cc-option,-mtp=cp15 -mstack-protector-guard=tls -mstack-protector-guard-offset=0)
+
 config STACKPROTECTOR_PER_TASK
        bool "Use a unique stack canary value for each task"
-       depends on GCC_PLUGINS && STACKPROTECTOR && THREAD_INFO_IN_TASK && !XIP_DEFLATED_DATA
-       select GCC_PLUGIN_ARM_SSP_PER_TASK
+       depends on STACKPROTECTOR && CURRENT_POINTER_IN_TPIDRURO && !XIP_DEFLATED_DATA
+       depends on GCC_PLUGINS || CC_HAVE_STACKPROTECTOR_TLS
+       select GCC_PLUGIN_ARM_SSP_PER_TASK if !CC_HAVE_STACKPROTECTOR_TLS
        default y
        help
          Due to the fact that GCC uses an ordinary symbol reference from