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