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