2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
9 select OF_EARLY_FLATTREE
11 select ARCH_WANT_FRAME_POINTERS
12 select CLONE_BACKWARDS
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
24 select HAVE_MEMBLOCK_NODE_MAP
25 select HAVE_DMA_API_DEBUG
26 select HAVE_DMA_CONTIGUOUS
27 select HAVE_GENERIC_DMA_COHERENT
30 select RISCV_ISA_A if SMP
32 select SYSCTL_EXCEPTION_TRACE
33 select HAVE_ARCH_TRACEHOOK
34 select MODULES_USE_ELF_RELA if MODULES
35 select THREAD_INFO_IN_TASK
37 select GENERIC_IRQ_MULTI_HANDLER
42 # even on 32-bit, physical (and DMA) addresses are > 32-bits
43 config ARCH_PHYS_ADDR_T_64BIT
50 config ARCH_DMA_ADDR_T_64BIT
55 default 0xC0000000 if 32BIT && MAXPHYSMEM_2GB
56 default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
57 default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
59 config STACKTRACE_SUPPORT
62 config TRACE_IRQFLAGS_SUPPORT
65 config RWSEM_GENERIC_SPINLOCK
71 select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
73 config GENERIC_BUG_RELATIVE_POINTERS
76 config GENERIC_CALIBRATE_DELAY
82 config GENERIC_HWEIGHT
99 This selects the base ISA that this kernel will traget and must match
104 select CPU_SUPPORTS_32BIT_KERNEL
106 select GENERIC_ASHLDI3
107 select GENERIC_ASHRDI3
108 select GENERIC_LSHRDI3
112 select CPU_SUPPORTS_64BIT_KERNEL
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
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.
126 prompt "Kernel Code Model"
127 default CMODEL_MEDLOW if 32BIT
128 default CMODEL_MEDANY if 64BIT
131 bool "medium low code model"
133 bool "medium any code model"
136 config MODULE_SECTIONS
138 select HAVE_MOD_ARCH_SPECIFIC
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
146 config MAXPHYSMEM_2GB
148 config MAXPHYSMEM_128GB
149 depends on 64BIT && CMODEL_MEDANY
150 select MODULE_SECTIONS if MODULES
156 bool "Symmetric Multi-Processing"
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
166 If you don't know what to do here, say N.
169 int "Maximum number of CPUs (2-32)"
174 config CPU_SUPPORTS_32BIT_KERNEL
176 config CPU_SUPPORTS_64BIT_KERNEL
189 bool "Emit compressed instructions when building Linux"
192 Adds "C" to the ISA subsets that the toolchain is allowed to emit
193 when building Linux, which results in compressed instructions in the
196 If you don't know what to do here, say Y.
206 prompt "Kernel code model"
211 depends on CPU_SUPPORTS_32BIT_KERNEL
213 Select this option to build a 32-bit kernel.
217 depends on CPU_SUPPORTS_64BIT_KERNEL
219 Select this option to build a 64-bit kernel.
225 source "kernel/Kconfig.preempt"
227 source "kernel/Kconfig.hz"
237 This feature enables support for PCI bus system. If you say Y
238 here, the kernel will include drivers and infrastructure code
239 to support PCI bus devices.
241 If you don't know what to do here, say Y.
246 config PCI_DOMAINS_GENERIC
249 source "drivers/pci/Kconfig"
253 source "init/Kconfig"
255 source "kernel/Kconfig.freezer"
257 menu "Executable file formats"
259 source "fs/Kconfig.binfmt"
263 menu "Power management options"
265 source kernel/power/Kconfig
271 source "drivers/Kconfig"
275 menu "Kernel hacking"
278 bool "Built-in kernel command line"
280 For most platforms, it is firmware or second stage bootloader
281 that by default specifies the kernel command line options.
282 However, it might be necessary or advantageous to either override
283 the default kernel command line or add a few extra options to it.
284 For such cases, this option allows hardcoding command line options
285 directly into the kernel.
287 For that, choose 'Y' here and fill in the extra boot parameters
290 The built-in options will be concatenated to the default command
291 line if CMDLINE_FORCE is set to 'N'. Otherwise, the default
292 command line will be ignored and replaced by the built-in string.
295 string "Built-in kernel command string"
296 depends on CMDLINE_BOOL
299 Supply command-line options at build time by entering them here.
302 bool "Built-in command line overrides bootloader arguments"
303 depends on CMDLINE_BOOL
305 Set this option to 'Y' to have the kernel ignore the bootloader
306 or firmware command line. Instead, the built-in command line
307 will be used exclusively.
309 If you don't know what to do here, say N.
314 source "lib/Kconfig.debug"
320 source "security/Kconfig"
322 source "crypto/Kconfig"