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_STRNCPY_FROM_USER 28 select GENERIC_STRNLEN_USER 29 select GENERIC_SMP_IDLE_THREAD 30 select GENERIC_ATOMIC64 if !64BIT || !RISCV_ISA_A 31 select HAVE_MEMBLOCK 32 select HAVE_MEMBLOCK_NODE_MAP 33 select HAVE_DMA_CONTIGUOUS 34 select HAVE_GENERIC_DMA_COHERENT 35 select HAVE_PERF_EVENTS 36 select IRQ_DOMAIN 37 select NO_BOOTMEM 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 111config ARCH_RV64I 112 bool "RV64I" 113 select 64BIT 114 select HAVE_FUNCTION_TRACER 115 select HAVE_FUNCTION_GRAPH_TRACER 116 select HAVE_FTRACE_MCOUNT_RECORD 117 select HAVE_DYNAMIC_FTRACE 118 select HAVE_DYNAMIC_FTRACE_WITH_REGS 119 select SWIOTLB 120 121endchoice 122 123# We must be able to map all physical memory into the kernel, but the compiler 124# is still a bit more efficient when generating code if it's setup in a manner 125# such that it can only map 2GiB of memory. 126choice 127 prompt "Kernel Code Model" 128 default CMODEL_MEDLOW if 32BIT 129 default CMODEL_MEDANY if 64BIT 130 131 config CMODEL_MEDLOW 132 bool "medium low code model" 133 config CMODEL_MEDANY 134 bool "medium any code model" 135endchoice 136 137config MODULE_SECTIONS 138 bool 139 select HAVE_MOD_ARCH_SPECIFIC 140 141choice 142 prompt "Maximum Physical Memory" 143 default MAXPHYSMEM_2GB if 32BIT 144 default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW 145 default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY 146 147 config MAXPHYSMEM_2GB 148 bool "2GiB" 149 config MAXPHYSMEM_128GB 150 depends on 64BIT && CMODEL_MEDANY 151 select MODULE_SECTIONS if MODULES 152 bool "128GiB" 153endchoice 154 155 156config SMP 157 bool "Symmetric Multi-Processing" 158 help 159 This enables support for systems with more than one CPU. If 160 you say N here, the kernel will run on single and 161 multiprocessor machines, but will use only one CPU of a 162 multiprocessor machine. If you say Y here, the kernel will run 163 on many, but not all, single processor machines. On a single 164 processor machine, the kernel will run faster if you say N 165 here. 166 167 If you don't know what to do here, say N. 168 169config NR_CPUS 170 int "Maximum number of CPUs (2-32)" 171 range 2 32 172 depends on SMP 173 default "8" 174 175choice 176 prompt "CPU Tuning" 177 default TUNE_GENERIC 178 179config TUNE_GENERIC 180 bool "generic" 181 182endchoice 183 184config RISCV_ISA_C 185 bool "Emit compressed instructions when building Linux" 186 default y 187 help 188 Adds "C" to the ISA subsets that the toolchain is allowed to emit 189 when building Linux, which results in compressed instructions in the 190 Linux binary. 191 192 If you don't know what to do here, say Y. 193 194config RISCV_ISA_A 195 def_bool y 196 197menu "supported PMU type" 198 depends on PERF_EVENTS 199 200config RISCV_BASE_PMU 201 bool "Base Performance Monitoring Unit" 202 def_bool y 203 help 204 A base PMU that serves as a reference implementation and has limited 205 feature of perf. It can run on any RISC-V machines so serves as the 206 fallback, but this option can also be disable to reduce kernel size. 207 208endmenu 209 210endmenu 211 212menu "Kernel type" 213 214source "mm/Kconfig" 215 216source "kernel/Kconfig.preempt" 217 218source "kernel/Kconfig.hz" 219 220endmenu 221 222menu "Bus support" 223 224config PCI 225 bool "PCI support" 226 select PCI_MSI 227 help 228 This feature enables support for PCI bus system. If you say Y 229 here, the kernel will include drivers and infrastructure code 230 to support PCI bus devices. 231 232 If you don't know what to do here, say Y. 233 234config PCI_DOMAINS 235 def_bool PCI 236 237config PCI_DOMAINS_GENERIC 238 def_bool PCI 239 240source "drivers/pci/Kconfig" 241 242endmenu 243 244source "init/Kconfig" 245 246source "kernel/Kconfig.freezer" 247 248menu "Executable file formats" 249 250source "fs/Kconfig.binfmt" 251 252endmenu 253 254menu "Power management options" 255 256source kernel/power/Kconfig 257 258endmenu 259 260source "net/Kconfig" 261 262source "drivers/Kconfig" 263 264source "fs/Kconfig" 265 266menu "Kernel hacking" 267 268config CMDLINE_BOOL 269 bool "Built-in kernel command line" 270 help 271 For most platforms, it is firmware or second stage bootloader 272 that by default specifies the kernel command line options. 273 However, it might be necessary or advantageous to either override 274 the default kernel command line or add a few extra options to it. 275 For such cases, this option allows hardcoding command line options 276 directly into the kernel. 277 278 For that, choose 'Y' here and fill in the extra boot parameters 279 in CONFIG_CMDLINE. 280 281 The built-in options will be concatenated to the default command 282 line if CMDLINE_FORCE is set to 'N'. Otherwise, the default 283 command line will be ignored and replaced by the built-in string. 284 285config CMDLINE 286 string "Built-in kernel command string" 287 depends on CMDLINE_BOOL 288 default "" 289 help 290 Supply command-line options at build time by entering them here. 291 292config CMDLINE_FORCE 293 bool "Built-in command line overrides bootloader arguments" 294 depends on CMDLINE_BOOL 295 help 296 Set this option to 'Y' to have the kernel ignore the bootloader 297 or firmware command line. Instead, the built-in command line 298 will be used exclusively. 299 300 If you don't know what to do here, say N. 301 302config EARLY_PRINTK 303 def_bool y 304 305source "lib/Kconfig.debug" 306 307config CMDLINE_BOOL 308 bool 309endmenu 310 311source "security/Kconfig" 312 313source "crypto/Kconfig" 314 315source "lib/Kconfig" 316