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