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