xref: /openbmc/linux/arch/arm64/Kconfig (revision 206204a1)
1config ARM64
2	def_bool y
3	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
4	select ARCH_USE_CMPXCHG_LOCKREF
5	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
6	select ARCH_WANT_OPTIONAL_GPIOLIB
7	select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
8	select ARCH_WANT_FRAME_POINTERS
9	select ARM_AMBA
10	select ARM_ARCH_TIMER
11	select ARM_GIC
12	select BUILDTIME_EXTABLE_SORT
13	select CLONE_BACKWARDS
14	select COMMON_CLK
15	select CPU_PM if (SUSPEND || CPU_IDLE)
16	select DCACHE_WORD_ACCESS
17	select GENERIC_CLOCKEVENTS
18	select GENERIC_CLOCKEVENTS_BROADCAST if SMP
19	select GENERIC_CPU_AUTOPROBE
20	select GENERIC_EARLY_IOREMAP
21	select GENERIC_IOMAP
22	select GENERIC_IRQ_PROBE
23	select GENERIC_IRQ_SHOW
24	select GENERIC_SCHED_CLOCK
25	select GENERIC_SMP_IDLE_THREAD
26	select GENERIC_STRNCPY_FROM_USER
27	select GENERIC_STRNLEN_USER
28	select GENERIC_TIME_VSYSCALL
29	select HARDIRQS_SW_RESEND
30	select HAVE_ARCH_JUMP_LABEL
31	select HAVE_ARCH_KGDB
32	select HAVE_ARCH_TRACEHOOK
33	select HAVE_C_RECORDMCOUNT
34	select HAVE_DEBUG_BUGVERBOSE
35	select HAVE_DEBUG_KMEMLEAK
36	select HAVE_DMA_API_DEBUG
37	select HAVE_DMA_ATTRS
38	select HAVE_DMA_CONTIGUOUS
39	select HAVE_DYNAMIC_FTRACE
40	select HAVE_EFFICIENT_UNALIGNED_ACCESS
41	select HAVE_FTRACE_MCOUNT_RECORD
42	select HAVE_FUNCTION_TRACER
43	select HAVE_FUNCTION_GRAPH_TRACER
44	select HAVE_GENERIC_DMA_COHERENT
45	select HAVE_HW_BREAKPOINT if PERF_EVENTS
46	select HAVE_MEMBLOCK
47	select HAVE_PATA_PLATFORM
48	select HAVE_PERF_EVENTS
49	select HAVE_PERF_REGS
50	select HAVE_PERF_USER_STACK_DUMP
51	select HAVE_SYSCALL_TRACEPOINTS
52	select IRQ_DOMAIN
53	select MODULES_USE_ELF_RELA
54	select NO_BOOTMEM
55	select OF
56	select OF_EARLY_FLATTREE
57	select OF_RESERVED_MEM
58	select PERF_USE_VMALLOC
59	select POWER_RESET
60	select POWER_SUPPLY
61	select RTC_LIB
62	select SPARSE_IRQ
63	select SYSCTL_EXCEPTION_TRACE
64	help
65	  ARM 64-bit (AArch64) Linux support.
66
67config 64BIT
68	def_bool y
69
70config ARCH_PHYS_ADDR_T_64BIT
71	def_bool y
72
73config MMU
74	def_bool y
75
76config NO_IOPORT_MAP
77	def_bool y
78
79config STACKTRACE_SUPPORT
80	def_bool y
81
82config LOCKDEP_SUPPORT
83	def_bool y
84
85config TRACE_IRQFLAGS_SUPPORT
86	def_bool y
87
88config RWSEM_XCHGADD_ALGORITHM
89	def_bool y
90
91config GENERIC_HWEIGHT
92	def_bool y
93
94config GENERIC_CSUM
95        def_bool y
96
97config GENERIC_CALIBRATE_DELAY
98	def_bool y
99
100config ZONE_DMA
101	def_bool y
102
103config ARCH_DMA_ADDR_T_64BIT
104	def_bool y
105
106config NEED_DMA_MAP_STATE
107	def_bool y
108
109config NEED_SG_DMA_LENGTH
110	def_bool y
111
112config SWIOTLB
113	def_bool y
114
115config IOMMU_HELPER
116	def_bool SWIOTLB
117
118config KERNEL_MODE_NEON
119	def_bool y
120
121config FIX_EARLYCON_MEM
122	def_bool y
123
124source "init/Kconfig"
125
126source "kernel/Kconfig.freezer"
127
128menu "Platform selection"
129
130config ARCH_VEXPRESS
131	bool "ARMv8 software model (Versatile Express)"
132	select ARCH_REQUIRE_GPIOLIB
133	select COMMON_CLK_VERSATILE
134	select POWER_RESET_VEXPRESS
135	select VEXPRESS_CONFIG
136	help
137	  This enables support for the ARMv8 software model (Versatile
138	  Express).
139
140config ARCH_XGENE
141	bool "AppliedMicro X-Gene SOC Family"
142	help
143	  This enables support for AppliedMicro X-Gene SOC Family
144
145endmenu
146
147menu "Bus support"
148
149config ARM_AMBA
150	bool
151
152endmenu
153
154menu "Kernel Features"
155
156config ARM64_64K_PAGES
157	bool "Enable 64KB pages support"
158	help
159	  This feature enables 64KB pages support (4KB by default)
160	  allowing only two levels of page tables and faster TLB
161	  look-up. AArch32 emulation is not available when this feature
162	  is enabled.
163
164config CPU_BIG_ENDIAN
165       bool "Build big-endian kernel"
166       help
167         Say Y if you plan on running a kernel in big-endian mode.
168
169config SMP
170	bool "Symmetric Multi-Processing"
171	help
172	  This enables support for systems with more than one CPU.  If
173	  you say N here, the kernel will run on single and
174	  multiprocessor machines, but will use only one CPU of a
175	  multiprocessor machine. If you say Y here, the kernel will run
176	  on many, but not all, single processor machines. On a single
177	  processor machine, the kernel will run faster if you say N
178	  here.
179
180	  If you don't know what to do here, say N.
181
182config SCHED_MC
183	bool "Multi-core scheduler support"
184	depends on SMP
185	help
186	  Multi-core scheduler support improves the CPU scheduler's decision
187	  making when dealing with multi-core CPU chips at a cost of slightly
188	  increased overhead in some places. If unsure say N here.
189
190config SCHED_SMT
191	bool "SMT scheduler support"
192	depends on SMP
193	help
194	  Improves the CPU scheduler's decision making when dealing with
195	  MultiThreading at a cost of slightly increased overhead in some
196	  places. If unsure say N here.
197
198config NR_CPUS
199	int "Maximum number of CPUs (2-32)"
200	range 2 32
201	depends on SMP
202	# These have to remain sorted largest to smallest
203	default "8"
204
205config HOTPLUG_CPU
206	bool "Support for hot-pluggable CPUs"
207	depends on SMP
208	help
209	  Say Y here to experiment with turning CPUs off and on.  CPUs
210	  can be controlled through /sys/devices/system/cpu.
211
212source kernel/Kconfig.preempt
213
214config HZ
215	int
216	default 100
217
218config ARCH_HAS_HOLES_MEMORYMODEL
219	def_bool y if SPARSEMEM
220
221config ARCH_SPARSEMEM_ENABLE
222	def_bool y
223	select SPARSEMEM_VMEMMAP_ENABLE
224
225config ARCH_SPARSEMEM_DEFAULT
226	def_bool ARCH_SPARSEMEM_ENABLE
227
228config ARCH_SELECT_MEMORY_MODEL
229	def_bool ARCH_SPARSEMEM_ENABLE
230
231config HAVE_ARCH_PFN_VALID
232	def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
233
234config HW_PERF_EVENTS
235	bool "Enable hardware performance counter support for perf events"
236	depends on PERF_EVENTS
237	default y
238	help
239	  Enable hardware performance counter support for perf events. If
240	  disabled, perf events will use software events only.
241
242config SYS_SUPPORTS_HUGETLBFS
243	def_bool y
244
245config ARCH_WANT_GENERAL_HUGETLB
246	def_bool y
247
248config ARCH_WANT_HUGE_PMD_SHARE
249	def_bool y if !ARM64_64K_PAGES
250
251config HAVE_ARCH_TRANSPARENT_HUGEPAGE
252	def_bool y
253
254config ARCH_HAS_CACHE_LINE_SIZE
255	def_bool y
256
257source "mm/Kconfig"
258
259config XEN_DOM0
260	def_bool y
261	depends on XEN
262
263config XEN
264	bool "Xen guest support on ARM64 (EXPERIMENTAL)"
265	depends on ARM64 && OF
266	select SWIOTLB_XEN
267	help
268	  Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
269
270config FORCE_MAX_ZONEORDER
271	int
272	default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
273	default "11"
274
275endmenu
276
277menu "Boot options"
278
279config CMDLINE
280	string "Default kernel command string"
281	default ""
282	help
283	  Provide a set of default command-line options at build time by
284	  entering them here. As a minimum, you should specify the the
285	  root device (e.g. root=/dev/nfs).
286
287config CMDLINE_FORCE
288	bool "Always use the default kernel command string"
289	help
290	  Always use the default kernel command string, even if the boot
291	  loader passes other arguments to the kernel.
292	  This is useful if you cannot or don't want to change the
293	  command-line options your boot loader passes to the kernel.
294
295config EFI
296	bool "UEFI runtime support"
297	depends on OF && !CPU_BIG_ENDIAN
298	select LIBFDT
299	select UCS2_STRING
300	select EFI_PARAMS_FROM_FDT
301	default y
302	help
303	  This option provides support for runtime services provided
304	  by UEFI firmware (such as non-volatile variables, realtime
305          clock, and platform reset). A UEFI stub is also provided to
306	  allow the kernel to be booted as an EFI application. This
307	  is only useful on systems that have UEFI firmware.
308
309endmenu
310
311menu "Userspace binary formats"
312
313source "fs/Kconfig.binfmt"
314
315config COMPAT
316	bool "Kernel support for 32-bit EL0"
317	depends on !ARM64_64K_PAGES
318	select COMPAT_BINFMT_ELF
319	select HAVE_UID16
320	select OLD_SIGSUSPEND3
321	select COMPAT_OLD_SIGACTION
322	help
323	  This option enables support for a 32-bit EL0 running under a 64-bit
324	  kernel at EL1. AArch32-specific components such as system calls,
325	  the user helper functions, VFP support and the ptrace interface are
326	  handled appropriately by the kernel.
327
328	  If you want to execute 32-bit userspace applications, say Y.
329
330config SYSVIPC_COMPAT
331	def_bool y
332	depends on COMPAT && SYSVIPC
333
334endmenu
335
336menu "Power management options"
337
338source "kernel/power/Kconfig"
339
340config ARCH_SUSPEND_POSSIBLE
341	def_bool y
342
343config ARM64_CPU_SUSPEND
344	def_bool PM_SLEEP
345
346endmenu
347
348menu "CPU Power Management"
349
350source "drivers/cpuidle/Kconfig"
351
352source "drivers/cpufreq/Kconfig"
353
354endmenu
355
356source "net/Kconfig"
357
358source "drivers/Kconfig"
359
360source "drivers/firmware/Kconfig"
361
362source "fs/Kconfig"
363
364source "arch/arm64/kvm/Kconfig"
365
366source "arch/arm64/Kconfig.debug"
367
368source "security/Kconfig"
369
370source "crypto/Kconfig"
371if CRYPTO
372source "arch/arm64/crypto/Kconfig"
373endif
374
375source "lib/Kconfig"
376