1# 2# For a description of the syntax of this configuration file, 3# see Documentation/kbuild/kconfig-language.txt. 4# 5 6config RISCV 7 def_bool y 8 select OF 9 select OF_EARLY_FLATTREE 10 select OF_IRQ 11 select ARCH_WANT_FRAME_POINTERS 12 select CLONE_BACKWARDS 13 select COMMON_CLK 14 select GENERIC_CLOCKEVENTS 15 select GENERIC_CPU_DEVICES 16 select GENERIC_IRQ_SHOW 17 select GENERIC_PCI_IOMAP 18 select GENERIC_STRNCPY_FROM_USER 19 select GENERIC_STRNLEN_USER 20 select GENERIC_SMP_IDLE_THREAD 21 select GENERIC_ATOMIC64 if !64BIT || !RISCV_ISA_A 22 select HAVE_MEMBLOCK 23 select HAVE_MEMBLOCK_NODE_MAP 24 select HAVE_DMA_API_DEBUG 25 select HAVE_DMA_CONTIGUOUS 26 select HAVE_GENERIC_DMA_COHERENT 27 select IRQ_DOMAIN 28 select NO_BOOTMEM 29 select RISCV_ISA_A if SMP 30 select SPARSE_IRQ 31 select SYSCTL_EXCEPTION_TRACE 32 select HAVE_ARCH_TRACEHOOK 33 select MODULES_USE_ELF_RELA if MODULES 34 select THREAD_INFO_IN_TASK 35 select RISCV_TIMER 36 37config MMU 38 def_bool y 39 40# even on 32-bit, physical (and DMA) addresses are > 32-bits 41config ARCH_PHYS_ADDR_T_64BIT 42 def_bool y 43 44config ZONE_DMA32 45 bool 46 default y 47 48config ARCH_DMA_ADDR_T_64BIT 49 def_bool y 50 51config PAGE_OFFSET 52 hex 53 default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB 54 default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB 55 default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB 56 57config STACKTRACE_SUPPORT 58 def_bool y 59 60config TRACE_IRQFLAGS_SUPPORT 61 def_bool y 62 63config RWSEM_GENERIC_SPINLOCK 64 def_bool y 65 66config GENERIC_BUG 67 def_bool y 68 depends on BUG 69 select GENERIC_BUG_RELATIVE_POINTERS if 64BIT 70 71config GENERIC_BUG_RELATIVE_POINTERS 72 bool 73 74config GENERIC_CALIBRATE_DELAY 75 def_bool y 76 77config GENERIC_CSUM 78 def_bool y 79 80config GENERIC_HWEIGHT 81 def_bool y 82 83config PGTABLE_LEVELS 84 int 85 default 3 if 64BIT 86 default 2 87 88config HAVE_KPROBES 89 def_bool n 90 91config DMA_DIRECT_OPS 92 def_bool y 93 94menu "Platform type" 95 96choice 97 prompt "Base ISA" 98 default ARCH_RV64I 99 help 100 This selects the base ISA that this kernel will traget and must match 101 the target platform. 102 103config ARCH_RV32I 104 bool "RV32I" 105 select CPU_SUPPORTS_32BIT_KERNEL 106 select 32BIT 107 select GENERIC_ASHLDI3 108 select GENERIC_ASHRDI3 109 select GENERIC_LSHRDI3 110 111config ARCH_RV64I 112 bool "RV64I" 113 select CPU_SUPPORTS_64BIT_KERNEL 114 select 64BIT 115 select HAVE_FUNCTION_TRACER 116 select HAVE_FUNCTION_GRAPH_TRACER 117 118endchoice 119 120# We must be able to map all physical memory into the kernel, but the compiler 121# is still a bit more efficient when generating code if it's setup in a manner 122# such that it can only map 2GiB of memory. 123choice 124 prompt "Kernel Code Model" 125 default CMODEL_MEDLOW if 32BIT 126 default CMODEL_MEDANY if 64BIT 127 128 config CMODEL_MEDLOW 129 bool "medium low code model" 130 config CMODEL_MEDANY 131 bool "medium any code model" 132endchoice 133 134choice 135 prompt "Maximum Physical Memory" 136 default MAXPHYSMEM_2GB if 32BIT 137 default MAXPHYSMEM_2GB if 64BIT && CMODEL_MEDLOW 138 default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY 139 140 config MAXPHYSMEM_2GB 141 bool "2GiB" 142 config MAXPHYSMEM_128GB 143 depends on 64BIT && CMODEL_MEDANY 144 bool "128GiB" 145endchoice 146 147 148config SMP 149 bool "Symmetric Multi-Processing" 150 help 151 This enables support for systems with more than one CPU. If 152 you say N here, the kernel will run on single and 153 multiprocessor machines, but will use only one CPU of a 154 multiprocessor machine. If you say Y here, the kernel will run 155 on many, but not all, single processor machines. On a single 156 processor machine, the kernel will run faster if you say N 157 here. 158 159 If you don't know what to do here, say N. 160 161config NR_CPUS 162 int "Maximum number of CPUs (2-32)" 163 range 2 32 164 depends on SMP 165 default "8" 166 167config CPU_SUPPORTS_32BIT_KERNEL 168 bool 169config CPU_SUPPORTS_64BIT_KERNEL 170 bool 171 172choice 173 prompt "CPU Tuning" 174 default TUNE_GENERIC 175 176config TUNE_GENERIC 177 bool "generic" 178 179endchoice 180 181config RISCV_ISA_C 182 bool "Emit compressed instructions when building Linux" 183 default y 184 help 185 Adds "C" to the ISA subsets that the toolchain is allowed to emit 186 when building Linux, which results in compressed instructions in the 187 Linux binary. 188 189 If you don't know what to do here, say Y. 190 191config RISCV_ISA_A 192 def_bool y 193 194endmenu 195 196menu "Kernel type" 197 198choice 199 prompt "Kernel code model" 200 default 64BIT 201 202config 32BIT 203 bool "32-bit kernel" 204 depends on CPU_SUPPORTS_32BIT_KERNEL 205 help 206 Select this option to build a 32-bit kernel. 207 208config 64BIT 209 bool "64-bit kernel" 210 depends on CPU_SUPPORTS_64BIT_KERNEL 211 help 212 Select this option to build a 64-bit kernel. 213 214endchoice 215 216source "mm/Kconfig" 217 218source "kernel/Kconfig.preempt" 219 220source "kernel/Kconfig.hz" 221 222endmenu 223 224menu "Bus support" 225 226config PCI 227 bool "PCI support" 228 select PCI_MSI 229 help 230 This feature enables support for PCI bus system. If you say Y 231 here, the kernel will include drivers and infrastructure code 232 to support PCI bus devices. 233 234 If you don't know what to do here, say Y. 235 236config PCI_DOMAINS 237 def_bool PCI 238 239config PCI_DOMAINS_GENERIC 240 def_bool PCI 241 242source "drivers/pci/Kconfig" 243 244endmenu 245 246source "init/Kconfig" 247 248source "kernel/Kconfig.freezer" 249 250menu "Executable file formats" 251 252source "fs/Kconfig.binfmt" 253 254endmenu 255 256menu "Power management options" 257 258source kernel/power/Kconfig 259 260endmenu 261 262source "net/Kconfig" 263 264source "drivers/Kconfig" 265 266source "fs/Kconfig" 267 268menu "Kernel hacking" 269 270config CMDLINE_BOOL 271 bool "Built-in kernel command line" 272 help 273 For most platforms, it is firmware or second stage bootloader 274 that by default specifies the kernel command line options. 275 However, it might be necessary or advantageous to either override 276 the default kernel command line or add a few extra options to it. 277 For such cases, this option allows hardcoding command line options 278 directly into the kernel. 279 280 For that, choose 'Y' here and fill in the extra boot parameters 281 in CONFIG_CMDLINE. 282 283 The built-in options will be concatenated to the default command 284 line if CMDLINE_OVERRIDE is set to 'N'. Otherwise, the default 285 command line will be ignored and replaced by the built-in string. 286 287config CMDLINE 288 string "Built-in kernel command string" 289 depends on CMDLINE_BOOL 290 default "" 291 help 292 Supply command-line options at build time by entering them here. 293 294config CMDLINE_OVERRIDE 295 bool "Built-in command line overrides bootloader arguments" 296 depends on CMDLINE_BOOL 297 help 298 Set this option to 'Y' to have the kernel ignore the bootloader 299 or firmware command line. Instead, the built-in command line 300 will be used exclusively. 301 302 If you don't know what to do here, say N. 303 304config EARLY_PRINTK 305 def_bool y 306 307source "lib/Kconfig.debug" 308 309config CMDLINE_BOOL 310 bool 311endmenu 312 313source "security/Kconfig" 314 315source "crypto/Kconfig" 316 317source "lib/Kconfig" 318