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