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