RISC-V: align ISA extension Kconfig help text with each other
[platform/kernel/linux-starfive.git] / arch / riscv / Kconfig
index c5e42cc..ba94d08 100644 (file)
@@ -33,6 +33,7 @@ config RISCV
        select ARCH_HAS_STRICT_MODULE_RWX if MMU && !XIP_KERNEL
        select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
        select ARCH_HAS_UBSAN_SANITIZE_ALL
+       select ARCH_HAS_VDSO_DATA
        select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
        select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
        select ARCH_STACKWALK
@@ -44,7 +45,7 @@ config RISCV
        select ARCH_USE_QUEUED_RWLOCKS
        select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
        select ARCH_WANT_FRAME_POINTERS
-       select ARCH_WANT_GENERAL_HUGETLB
+       select ARCH_WANT_GENERAL_HUGETLB if !RISCV_ISA_SVNAPOT
        select ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP
        select ARCH_WANT_HUGE_PMD_SHARE if 64BIT
        select ARCH_WANT_LD_ORPHAN_WARN if !XIP_KERNEL
@@ -60,6 +61,7 @@ config RISCV
        select GENERIC_ATOMIC64 if !64BIT
        select GENERIC_CLOCKEVENTS_BROADCAST if SMP
        select GENERIC_EARLY_IOREMAP
+       select GENERIC_ENTRY
        select GENERIC_GETTIMEOFDAY if HAVE_GENERIC_VDSO
        select GENERIC_IDLE_POLL_SETUP
        select GENERIC_IOREMAP if MMU
@@ -126,6 +128,7 @@ config RISCV
        select OF_IRQ
        select PCI_DOMAINS_GENERIC if PCI
        select PCI_MSI if PCI
+       select RISCV_ALTERNATIVE if !XIP_KERNEL
        select RISCV_INTC
        select RISCV_TIMER if RISCV_SBI
        select SIFIVE_PLIC
@@ -177,8 +180,8 @@ config MMU
 
 config PAGE_OFFSET
        hex
-       default 0xC0000000 if 32BIT
-       default 0x80000000 if 64BIT && !MMU
+       default 0xC0000000 if 32BIT && MMU
+       default 0x80000000 if !MMU
        default 0xff60000000000000 if 64BIT
 
 config KASAN_SHADOW_OFFSET
@@ -245,7 +248,7 @@ config AS_HAS_INSN
        def_bool $(as-instr,.insn r 51$(comma) 0$(comma) 0$(comma) t0$(comma) t0$(comma) zero)
 
 source "arch/riscv/Kconfig.socs"
-source "arch/riscv/Kconfig.erratas"
+source "arch/riscv/Kconfig.errata"
 
 menu "Platform type"
 
@@ -279,7 +282,6 @@ config ARCH_RV32I
        select GENERIC_LIB_ASHRDI3
        select GENERIC_LIB_LSHRDI3
        select GENERIC_LIB_UCMPDI2
-       select MMU
 
 config ARCH_RV64I
        bool "RV64I"
@@ -320,6 +322,14 @@ config SMP
 
          If you don't know what to do here, say N.
 
+config SCHED_MC
+       bool "Multi-core scheduler support"
+       depends on SMP
+       help
+         Multi-core scheduler support improves the CPU scheduler's decision
+         making when dealing with multi-core CPU chips at a cost of slightly
+         increased overhead in some places. If unsure say N here.
+
 config NR_CPUS
        int "Maximum number of CPUs (2-512)"
        depends on SMP
@@ -378,9 +388,9 @@ config RISCV_ALTERNATIVE
        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.
+         erratum or cpufeature required by the execution platform at run
+         time. The code patching overhead is minimal, as it's only done
+         once at boot and once on each module load.
 
 config RISCV_ALTERNATIVE_EARLY
        bool
@@ -398,14 +408,32 @@ config RISCV_ISA_C
 
          If you don't know what to do here, say Y.
 
+config RISCV_ISA_SVNAPOT
+       bool "Svnapot extension support for supervisor mode NAPOT pages"
+       depends on 64BIT && MMU
+       depends on RISCV_ALTERNATIVE
+       default y
+       help
+         Allow kernel to detect the Svnapot ISA-extension dynamically at boot
+         time and enable its usage.
+
+         The Svnapot extension is used to mark contiguous PTEs as a range
+         of contiguous virtual-to-physical translations for a naturally
+         aligned power-of-2 (NAPOT) granularity larger than the base 4KB page
+         size. When HUGETLBFS is also selected this option unconditionally
+         allocates some memory for each NAPOT page size supported by the kernel.
+         When optimizing for low memory consumption and for platforms without
+         the Svnapot extension, it may be better to say N here.
+
+         If you don't know what to do here, say Y.
+
 config RISCV_ISA_SVPBMT
-       bool "SVPBMT extension support"
+       bool "Svpbmt extension support for supervisor mode page-based memory types"
        depends on 64BIT && MMU
-       depends on !XIP_KERNEL
+       depends on RISCV_ALTERNATIVE
        default y
-       select RISCV_ALTERNATIVE
        help
-          Adds support to dynamically detect the presence of the SVPBMT
+          Adds support to dynamically detect the presence of the Svpbmt
           ISA-extension (Supervisor-mode: page-based memory types) and
           enable its usage.
 
@@ -413,7 +441,7 @@ config RISCV_ISA_SVPBMT
           that indicate the cacheability, idempotency, and ordering
           properties for access to that page.
 
-          The SVPBMT extension is only available on 64Bit cpus.
+          The Svpbmt extension is only available on 64-bit cpus.
 
           If you don't know what to do here, say Y.
 
@@ -428,8 +456,8 @@ config TOOLCHAIN_HAS_ZBB
 config RISCV_ISA_ZBB
        bool "Zbb extension support for bit manipulation instructions"
        depends on TOOLCHAIN_HAS_ZBB
-       depends on !XIP_KERNEL && MMU
-       select RISCV_ALTERNATIVE
+       depends on MMU
+       depends on RISCV_ALTERNATIVE
        default y
        help
           Adds support to dynamically detect the presence of the ZBB
@@ -443,9 +471,9 @@ config RISCV_ISA_ZBB
 
 config RISCV_ISA_ZICBOM
        bool "Zicbom extension support for non-coherent DMA operation"
-       depends on !XIP_KERNEL && MMU
+       depends on MMU
+       depends on RISCV_ALTERNATIVE
        default y
-       select RISCV_ALTERNATIVE
        select RISCV_DMA_NONCOHERENT
        help
           Adds support to dynamically detect the presence of the ZICBOM
@@ -457,6 +485,19 @@ config RISCV_ISA_ZICBOM
 
           If you don't know what to do here, say Y.
 
+config RISCV_ISA_ZICBOZ
+       bool "Zicboz extension support for faster zeroing of memory"
+       depends on MMU
+       depends on RISCV_ALTERNATIVE
+       default y
+       help
+          Enable the use of the Zicboz extension (cbo.zero instruction)
+          when available.
+
+          The Zicboz extension is used for faster zeroing of memory.
+
+          If you don't know what to do here, say Y.
+
 config TOOLCHAIN_HAS_ZIHINTPAUSE
        bool
        default y