Merge tag 'riscv-for-linus-5.19-mw0' of git://git.kernel.org/pub/scm/linux/kernel...
[sfrench/cifs-2.6.git] / arch / riscv / Kconfig
index c0853f1474a7088947daea5593e827b1434c8fee..905e550e0fd3b49f43bfd10c902047e347697955 100644 (file)
@@ -78,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
@@ -129,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
@@ -326,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
@@ -336,6 +358,19 @@ 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 extension
+          (Supervisor-mode: page-based memory types) and enable its usage.
+
+          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
@@ -385,6 +420,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
@@ -396,6 +451,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
 
 menu "Boot options"