1# 2# For a description of the syntax of this configuration file, 3# see Documentation/kbuild/kconfig-language.txt. 4# 5 6config 64BIT 7 bool 8 9config 32BIT 10 bool 11 12config RISCV 13 def_bool y 14 # even on 32-bit, physical (and DMA) addresses are > 32-bits 15 select PHYS_ADDR_T_64BIT 16 select OF 17 select OF_EARLY_FLATTREE 18 select OF_IRQ 19 select ARCH_WANT_FRAME_POINTERS 20 select CLONE_BACKWARDS 21 select COMMON_CLK 22 select DMA_DIRECT_OPS 23 select GENERIC_CLOCKEVENTS 24 select GENERIC_CPU_DEVICES 25 select GENERIC_IRQ_SHOW 26 select GENERIC_PCI_IOMAP 27 select GENERIC_SCHED_CLOCK 28 select GENERIC_STRNCPY_FROM_USER 29 select GENERIC_STRNLEN_USER 30 select GENERIC_SMP_IDLE_THREAD 31 select GENERIC_ATOMIC64 if !64BIT || !RISCV_ISA_A 32 select HAVE_MEMBLOCK_NODE_MAP 33 select HAVE_DMA_CONTIGUOUS 34 select HAVE_FUTEX_CMPXCHG if FUTEX 35 select HAVE_GENERIC_DMA_COHERENT 36 select HAVE_PERF_EVENTS 37 select IRQ_DOMAIN 38 select RISCV_ISA_A if SMP 39 select SPARSE_IRQ 40 select SYSCTL_EXCEPTION_TRACE 41 select HAVE_ARCH_TRACEHOOK 42 select MODULES_USE_ELF_RELA if MODULES 43 select THREAD_INFO_IN_TASK 44 select RISCV_TIMER 45 select GENERIC_IRQ_MULTI_HANDLER 46 select ARCH_HAS_PTE_SPECIAL 47 48config MMU 49 def_bool y 50 51config ZONE_DMA32 52 bool 53 default y if 64BIT 54 55config PAGE_OFFSET 56 hex 57 default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB 58 default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB 59 default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB 60 61config STACKTRACE_SUPPORT 62 def_bool y 63 64config TRACE_IRQFLAGS_SUPPORT 65 def_bool y 66 67config RWSEM_GENERIC_SPINLOCK 68 def_bool y 69 70config GENERIC_BUG 71 def_bool y 72 depends on BUG 73 select GENERIC_BUG_RELATIVE_POINTERS if 64BIT 74 75config GENERIC_BUG_RELATIVE_POINTERS 76 bool 77 78config GENERIC_CALIBRATE_DELAY 79 def_bool y 80 81config GENERIC_CSUM 82 def_bool y 83 84config GENERIC_HWEIGHT 85 def_bool y 86 87config PGTABLE_LEVELS 88 int 89 default 3 if 64BIT 90 default 2 91 92config HAVE_KPROBES 93 def_bool n 94 95menu "Platform type" 96 97choice 98 prompt "Base ISA" 99 default ARCH_RV64I 100 help 101 This selects the base ISA that this kernel will traget and must match 102 the target platform. 103 104config ARCH_RV32I 105 bool "RV32I" 106 select 32BIT 107 select GENERIC_LIB_ASHLDI3 108 select GENERIC_LIB_ASHRDI3 109 select GENERIC_LIB_LSHRDI3 110 select GENERIC_LIB_UCMPDI2 111 112config ARCH_RV64I 113 bool "RV64I" 114 select 64BIT 115 select ARCH_SUPPORTS_INT128 if GCC_VERSION >= 50000 116 select HAVE_FUNCTION_TRACER 117 select HAVE_FUNCTION_GRAPH_TRACER 118 select HAVE_FTRACE_MCOUNT_RECORD 119 select HAVE_DYNAMIC_FTRACE 120 select HAVE_DYNAMIC_FTRACE_WITH_REGS 121 select SWIOTLB 122 123endchoice 124 125# We must be able to map all physical memory into the kernel, but the compiler 126# is still a bit more efficient when generating code if it's setup in a manner 127# such that it can only map 2GiB of memory. 128choice 129 prompt "Kernel Code Model" 130 default CMODEL_MEDLOW if 32BIT 131 default CMODEL_MEDANY if 64BIT 132 133 config CMODEL_MEDLOW 134 bool "medium low code model" 135 config CMODEL_MEDANY 136 bool "medium any code model" 137endchoice 138 139config MODULE_SECTIONS 140 bool 141 select HAVE_MOD_ARCH_SPECIFIC 142 143choice 144 prompt "Maximum Physical Memory" 145 default MAXPHYSMEM_2GB if 32BIT 146 default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW 147 default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY 148 149 config MAXPHYSMEM_2GB 150 bool "2GiB" 151 config MAXPHYSMEM_128GB 152 depends on 64BIT && CMODEL_MEDANY 153 select MODULE_SECTIONS if MODULES 154 bool "128GiB" 155endchoice 156 157 158config SMP 159 bool "Symmetric Multi-Processing" 160 help 161 This enables support for systems with more than one CPU. If 162 you say N here, the kernel will run on single and 163 multiprocessor machines, but will use only one CPU of a 164 multiprocessor machine. If you say Y here, the kernel will run 165 on many, but not all, single processor machines. On a single 166 processor machine, the kernel will run faster if you say N 167 here. 168 169 If you don't know what to do here, say N. 170 171config NR_CPUS 172 int "Maximum number of CPUs (2-32)" 173 range 2 32 174 depends on SMP 175 default "8" 176 177choice 178 prompt "CPU Tuning" 179 default TUNE_GENERIC 180 181config TUNE_GENERIC 182 bool "generic" 183 184endchoice 185 186config RISCV_ISA_C 187 bool "Emit compressed instructions when building Linux" 188 default y 189 help 190 Adds "C" to the ISA subsets that the toolchain is allowed to emit 191 when building Linux, which results in compressed instructions in the 192 Linux binary. 193 194 If you don't know what to do here, say Y. 195 196config RISCV_ISA_A 197 def_bool y 198 199menu "supported PMU type" 200 depends on PERF_EVENTS 201 202config RISCV_BASE_PMU 203 bool "Base Performance Monitoring Unit" 204 def_bool y 205 help 206 A base PMU that serves as a reference implementation and has limited 207 feature of perf. It can run on any RISC-V machines so serves as the 208 fallback, but this option can also be disable to reduce kernel size. 209 210endmenu 211 212config FPU 213 bool "FPU support" 214 default y 215 help 216 Say N here if you want to disable all floating-point related procedure 217 in the kernel. 218 219 If you don't know what to do here, say Y. 220 221endmenu 222 223menu "Kernel features" 224 225source "kernel/Kconfig.hz" 226 227endmenu 228 229menu "Boot options" 230 231config CMDLINE 232 string "Built-in kernel command line" 233 help 234 For most platforms, the arguments for the kernel's command line 235 are provided at run-time, during boot. However, there are cases 236 where either no arguments are being provided or the provided 237 arguments are insufficient or even invalid. 238 239 When that occurs, it is possible to define a built-in command 240 line here and choose how the kernel should use it later on. 241 242choice 243 prompt "Built-in command line usage" if CMDLINE != "" 244 default CMDLINE_FALLBACK 245 help 246 Choose how the kernel will handle the provided built-in command 247 line. 248 249config CMDLINE_FALLBACK 250 bool "Use bootloader kernel arguments if available" 251 help 252 Use the built-in command line as fallback in case we get nothing 253 during boot. This is the default behaviour. 254 255config CMDLINE_EXTEND 256 bool "Extend bootloader kernel arguments" 257 help 258 The command-line arguments provided during boot will be 259 appended to the built-in command line. This is useful in 260 cases where the provided arguments are insufficient and 261 you don't want to or cannot modify them. 262 263 264config CMDLINE_FORCE 265 bool "Always use the default kernel command string" 266 help 267 Always use the built-in command line, even if we get one during 268 boot. This is useful in case you need to override the provided 269 command line on systems where you don't have or want control 270 over it. 271 272endchoice 273 274endmenu 275 276menu "Bus support" 277 278config PCI 279 bool "PCI support" 280 select PCI_MSI 281 help 282 This feature enables support for PCI bus system. If you say Y 283 here, the kernel will include drivers and infrastructure code 284 to support PCI bus devices. 285 286 If you don't know what to do here, say Y. 287 288config PCI_DOMAINS 289 def_bool PCI 290 291config PCI_DOMAINS_GENERIC 292 def_bool PCI 293 294source "drivers/pci/Kconfig" 295 296endmenu 297 298menu "Power management options" 299 300source kernel/power/Kconfig 301 302endmenu 303