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