riscv: Kconfig: Style cleanups
[sfrench/cifs-2.6.git] / arch / riscv / Kconfig
index 4507847d7c9c5a3b2883611c71b014459f5c3b26..b17fd4666b0c68d31190887b5615802e3cb16c31 100644 (file)
@@ -38,7 +38,9 @@ config RISCV
        select ARCH_SUPPORTS_ATOMIC_RMW
        select ARCH_SUPPORTS_DEBUG_PAGEALLOC if MMU
        select ARCH_SUPPORTS_HUGETLBFS if MMU
+       select ARCH_SUPPORTS_PAGE_TABLE_CHECK
        select ARCH_USE_MEMTEST
+       select ARCH_USE_QUEUED_RWLOCKS
        select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
        select ARCH_WANT_FRAME_POINTERS
        select ARCH_WANT_GENERAL_HUGETLB
@@ -76,6 +78,7 @@ config RISCV
        select HAVE_ARCH_KGDB if !XIP_KERNEL
        select HAVE_ARCH_KGDB_QXFER_PKT
        select HAVE_ARCH_MMAP_RND_BITS if MMU
+       select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
        select HAVE_ARCH_SECCOMP_FILTER
        select HAVE_ARCH_TRACEHOOK
        select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT && MMU
@@ -127,12 +130,18 @@ config ARCH_MMAP_RND_BITS_MIN
        default 18 if 64BIT
        default 8
 
+config ARCH_MMAP_RND_COMPAT_BITS_MIN
+       default 8
+
 # max bits determined by the following formula:
 #  VA_BITS - PAGE_SHIFT - 3
 config ARCH_MMAP_RND_BITS_MAX
        default 24 if 64BIT # SV39 based
        default 17
 
+config ARCH_MMAP_RND_COMPAT_BITS_MAX
+       default 17
+
 # set if we run in machine mode, cleared if we run in supervisor mode
 config RISCV_M_MODE
        bool
@@ -324,6 +333,21 @@ config NODES_SHIFT
          Specify the maximum number of NUMA Nodes available on the target
          system.  Increases memory reserved to accommodate various tables.
 
+config RISCV_ALTERNATIVE
+       bool
+       depends on !XIP_KERNEL
+       help
+         This Kconfig allows the kernel to automatically patch the
+         errata required by the execution platform at run time. The
+         code patching is performed once in the boot stages. It means
+         that the overhead from this mechanism is just taken once.
+
+config RISCV_ALTERNATIVE_EARLY
+       bool
+       depends on RISCV_ALTERNATIVE
+       help
+         Allows early patching of the kernel for special errata
+
 config RISCV_ISA_C
        bool "Emit compressed instructions when building Linux"
        default y
@@ -334,6 +358,24 @@ config RISCV_ISA_C
 
          If you don't know what to do here, say Y.
 
+config RISCV_ISA_SVPBMT
+       bool "SVPBMT extension support"
+       depends on 64BIT && MMU
+       select RISCV_ALTERNATIVE
+       default y
+       help
+          Adds support to dynamically detect the presence of the SVPBMT
+          ISA-extension (Supervisor-mode: page-based memory types) and
+          enable its usage.
+
+          The memory type for a page contains a combination of attributes
+          that indicate the cacheability, idempotency, and ordering
+          properties for access to that page.
+
+          The SVPBMT extension is only available on 64Bit cpus.
+
+          If you don't know what to do here, say Y.
+
 config FPU
        bool "FPU support"
        default y
@@ -359,7 +401,7 @@ config RISCV_SBI_V01
 config RISCV_BOOT_SPINWAIT
        bool "Spinwait booting method"
        depends on SMP
-       default y
+       default y if RISCV_SBI_V01 || RISCV_M_MODE
        help
          This enables support for booting Linux via spinwait method. In the
          spinwait method, all cores randomly jump to Linux. One of the cores
@@ -370,6 +412,12 @@ config RISCV_BOOT_SPINWAIT
          rely on ordered booting via SBI HSM extension which gets chosen
          dynamically at runtime if the firmware supports it.
 
+         Since spinwait is incompatible with sparse hart IDs, it requires
+         NR_CPUS be large enough to contain the physical hart ID of the first
+         hart to enter Linux.
+
+         If unsure what to do here, say N.
+
 config KEXEC
        bool "Kexec system call"
        select KEXEC_CORE
@@ -383,6 +431,26 @@ config KEXEC
 
          The name comes from the similarity to the exec system call.
 
+config KEXEC_FILE
+       bool "kexec file based systmem call"
+       select KEXEC_CORE
+       select KEXEC_ELF
+       select HAVE_IMA_KEXEC if IMA
+       depends on 64BIT
+       help
+         This is new version of kexec system call. This system call is
+         file based and takes file descriptors as system call argument
+         for kernel and initramfs as opposed to list of segments as
+         accepted by previous system call.
+
+         If you don't know what to do here, say Y.
+
+config ARCH_HAS_KEXEC_PURGATORY
+       def_bool KEXEC_FILE
+       select BUILD_BIN2C
+       depends on CRYPTO=y
+       depends on CRYPTO_SHA256=y
+
 config CRASH_DUMP
        bool "Build kdump crash kernel"
        help
@@ -394,6 +462,18 @@ config CRASH_DUMP
 
          For more details see Documentation/admin-guide/kdump/kdump.rst
 
+config COMPAT
+       bool "Kernel support for 32-bit U-mode"
+       default 64BIT
+       depends on 64BIT && MMU
+       help
+         This option enables support for a 32-bit U-mode running under a 64-bit
+         kernel at S-mode. riscv32-specific components such as system calls,
+         the user helper functions (vdso), signal rt_frame functions and the
+         ptrace interface are handled appropriately by the kernel.
+
+         If you want to execute 32-bit userspace applications, say Y.
+
 endmenu # "Kernel features"
 
 menu "Boot options"
@@ -467,7 +547,7 @@ config CC_HAVE_STACKPROTECTOR_TLS
 
 config STACKPROTECTOR_PER_TASK
        def_bool y
-       depends on !GCC_PLUGIN_RANDSTRUCT
+       depends on !RANDSTRUCT
        depends on STACKPROTECTOR && CC_HAVE_STACKPROTECTOR_TLS
 
 config PHYS_RAM_BASE_FIXED