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