OSDN Git Service

Merge tag 'xtensa-20220325' of https://github.com/jcmvbkbc/linux-xtensa
[uclinux-h8/linux.git] / arch / xtensa / Kconfig
index 95bdbaa..f46c7d2 100644 (file)
@@ -21,6 +21,9 @@ config XTENSA
        select DMA_REMAP if MMU
        select GENERIC_ATOMIC64
        select GENERIC_IRQ_SHOW
+       select GENERIC_LIB_CMPDI2
+       select GENERIC_LIB_MULDI3
+       select GENERIC_LIB_UCMPDI2
        select GENERIC_PCI_IOMAP
        select GENERIC_SCHED_CLOCK
        select HAVE_ARCH_AUDITSYSCALL
@@ -32,6 +35,7 @@ config XTENSA
        select HAVE_DMA_CONTIGUOUS
        select HAVE_EXIT_THREAD
        select HAVE_FUNCTION_TRACER
+       select HAVE_GCC_PLUGINS if GCC_VERSION >= 120000
        select HAVE_HW_BREAKPOINT if PERF_EVENTS
        select HAVE_IRQ_TIME_ACCOUNTING
        select HAVE_PCI
@@ -89,6 +93,9 @@ config CPU_BIG_ENDIAN
 config CPU_LITTLE_ENDIAN
        def_bool !CPU_BIG_ENDIAN
 
+config CC_HAVE_CALL0_ABI
+       def_bool $(success,test "$(shell,echo __XTENSA_CALL0_ABI__ | $(CC) -mabi=call0 -E -P - 2>/dev/null)" = 1)
+
 menu "Processor type and features"
 
 choice
@@ -221,6 +228,15 @@ config HOTPLUG_CPU
 
          Say N if you want to disable CPU hotplug.
 
+config SECONDARY_RESET_VECTOR
+       bool "Secondary cores use alternative reset vector"
+       default y
+       depends on HAVE_SMP
+       help
+         Secondary cores may be configured to use alternative reset vector,
+         or all cores may use primary reset vector.
+         Say Y here to supply handler for the alternative reset location.
+
 config FAST_SYSCALL_XTENSA
        bool "Enable fast atomic syscalls"
        default n
@@ -247,6 +263,38 @@ config FAST_SYSCALL_SPILL_REGISTERS
 
          If unsure, say N.
 
+choice
+       prompt "Kernel ABI"
+       default KERNEL_ABI_DEFAULT
+       help
+         Select ABI for the kernel code. This ABI is independent of the
+         supported userspace ABI and any combination of the
+         kernel/userspace ABI is possible and should work.
+
+         In case both kernel and userspace support only call0 ABI
+         all register windows support code will be omitted from the
+         build.
+
+         If unsure, choose the default ABI.
+
+config KERNEL_ABI_DEFAULT
+       bool "Default ABI"
+       help
+         Select this option to compile kernel code with the default ABI
+         selected for the toolchain.
+         Normally cores with windowed registers option use windowed ABI and
+         cores without it use call0 ABI.
+
+config KERNEL_ABI_CALL0
+       bool "Call0 ABI" if CC_HAVE_CALL0_ABI
+       help
+         Select this option to compile kernel code with call0 ABI even with
+         toolchain that defaults to windowed ABI.
+         When this option is not selected the default toolchain ABI will
+         be used for the kernel code.
+
+endchoice
+
 config USER_ABI_CALL0
        bool