• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 AUDIT_ARCH_COMPAT_GENERIC
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_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_AUDITSYSCALL
31	select HAVE_ARCH_KGDB
32	select HAVE_ARCH_JUMP_LABEL
33	select HAVE_ARCH_MMAP_RND_BITS
34	select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
35	select HAVE_ARCH_SECCOMP_FILTER
36	select HAVE_ARCH_TRACEHOOK
37	select HAVE_DEBUG_BUGVERBOSE
38	select HAVE_DEBUG_KMEMLEAK
39	select HAVE_DMA_API_DEBUG
40	select HAVE_DMA_ATTRS
41	select HAVE_DMA_CONTIGUOUS
42	select HAVE_EFFICIENT_UNALIGNED_ACCESS
43	select HAVE_GENERIC_DMA_COHERENT
44	select HAVE_GENERIC_HARDIRQS
45	select HAVE_HW_BREAKPOINT if PERF_EVENTS
46	select HAVE_MEMBLOCK
47	select HAVE_PATA_PLATFORM
48	select HAVE_PERF_EVENTS
49	select HAVE_PERF_REGS
50	select HAVE_PERF_USER_STACK_DUMP
51	select IRQ_DOMAIN
52	select MODULES_USE_ELF_RELA
53	select NO_BOOTMEM
54	select OF
55	select OF_EARLY_FLATTREE
56	select PERF_USE_VMALLOC
57	select POWER_RESET
58	select POWER_SUPPLY
59	select RTC_LIB
60	select SPARSE_IRQ
61	select SYSCTL_EXCEPTION_TRACE
62	help
63	  ARM 64-bit (AArch64) Linux support.
64
65config 64BIT
66	def_bool y
67
68config ARCH_PHYS_ADDR_T_64BIT
69	def_bool y
70
71config MMU
72	def_bool y
73
74config NO_IOPORT
75	def_bool y
76
77config ARCH_MMAP_RND_BITS_MIN
78       default 14 if ARM64_64K_PAGES
79       default 18
80
81# max bits determined by the following formula:
82#  VA_BITS - PAGE_SHIFT - 3
83#  VA_BITS is always 39
84config ARCH_MMAP_RND_BITS_MAX
85       default 20 if ARM64_64K_PAGES
86       default 24
87
88config ARCH_MMAP_RND_COMPAT_BITS_MIN
89       default 11
90
91config ARCH_MMAP_RND_COMPAT_BITS_MAX
92       default 16
93
94config ILLEGAL_POINTER_VALUE
95	hex
96	default 0xdead000000000000
97
98config STACKTRACE_SUPPORT
99	def_bool y
100
101config LOCKDEP_SUPPORT
102	def_bool y
103
104config TRACE_IRQFLAGS_SUPPORT
105	def_bool y
106
107config RWSEM_XCHGADD_ALGORITHM
108	def_bool y
109
110config GENERIC_HWEIGHT
111	def_bool y
112
113config GENERIC_CSUM
114        def_bool y
115
116config GENERIC_CALIBRATE_DELAY
117	def_bool y
118
119config ZONE_DMA
120	def_bool y
121
122config ARCH_DMA_ADDR_T_64BIT
123	def_bool y
124
125config NEED_DMA_MAP_STATE
126	def_bool y
127
128config NEED_SG_DMA_LENGTH
129	def_bool y
130
131config SWIOTLB
132	def_bool y
133
134config IOMMU_HELPER
135	def_bool SWIOTLB
136
137config FIX_EARLYCON_MEM
138	def_bool y
139
140source "init/Kconfig"
141
142source "kernel/Kconfig.freezer"
143
144menu "Platform selection"
145
146config ARCH_VEXPRESS
147	bool "ARMv8 software model (Versatile Express)"
148	select ARCH_REQUIRE_GPIOLIB
149	select COMMON_CLK_VERSATILE
150	select POWER_RESET_VEXPRESS
151	select VEXPRESS_CONFIG
152	help
153	  This enables support for the ARMv8 software model (Versatile
154	  Express).
155
156config ARCH_XGENE
157	bool "AppliedMicro X-Gene SOC Family"
158	help
159	  This enables support for AppliedMicro X-Gene SOC Family
160
161endmenu
162
163menu "Bus support"
164
165config ARM_AMBA
166	bool
167
168endmenu
169
170menu "Kernel Features"
171
172config ARM64_64K_PAGES
173	bool "Enable 64KB pages support"
174	help
175	  This feature enables 64KB pages support (4KB by default)
176	  allowing only two levels of page tables and faster TLB
177	  look-up. AArch32 emulation is not available when this feature
178	  is enabled.
179
180config SMP
181	bool "Symmetric Multi-Processing"
182	select USE_GENERIC_SMP_HELPERS
183	help
184	  This enables support for systems with more than one CPU.  If
185	  you say N here, the kernel will run on single and
186	  multiprocessor machines, but will use only one CPU of a
187	  multiprocessor machine. If you say Y here, the kernel will run
188	  on many, but not all, single processor machines. On a single
189	  processor machine, the kernel will run faster if you say N
190	  here.
191
192	  If you don't know what to do here, say N.
193
194config SCHED_MC
195	bool "Multi-core scheduler support"
196	depends on SMP
197	help
198	  Multi-core scheduler support improves the CPU scheduler's decision
199	  making when dealing with multi-core CPU chips at a cost of slightly
200	  increased overhead in some places. If unsure say N here.
201
202config SCHED_SMT
203	bool "SMT scheduler support"
204	depends on SMP
205	help
206	  Improves the CPU scheduler's decision making when dealing with
207	  MultiThreading at a cost of slightly increased overhead in some
208	  places. If unsure say N here.
209
210config NR_CPUS
211	int "Maximum number of CPUs (2-32)"
212	range 2 32
213	depends on SMP
214	# These have to remain sorted largest to smallest
215	default "8"
216
217config HOTPLUG_CPU
218	bool "Support for hot-pluggable CPUs"
219	depends on SMP
220	help
221	  Say Y here to experiment with turning CPUs off and on.  CPUs
222	  can be controlled through /sys/devices/system/cpu.
223
224config SWP_EMULATE
225	bool "Emulate SWP/SWPB instructions"
226	help
227	  ARMv6 architecture deprecates use of the SWP/SWPB instructions. ARMv8
228	  oblosetes the use of SWP/SWPB instructions. ARMv7 multiprocessing
229	  extensions introduce the ability to disable these instructions,
230	  triggering an undefined instruction exception when executed. Say Y
231	  here to enable software emulation of these instructions for userspace
232	  (not kernel) using LDREX/STREX. Also creates /proc/cpu/swp_emulation
233	  for statistics.
234
235	  In some older versions of glibc [<=2.8] SWP is used during futex
236	  trylock() operations with the assumption that the code will not
237	  be preempted. This invalid assumption may be more likely to fail
238	  with SWP emulation enabled, leading to deadlock of the user
239	  application.
240
241	  NOTE: when accessing uncached shared regions, LDREX/STREX rely
242	  on an external transaction monitoring block called a global
243	  monitor to maintain update atomicity. If your system does not
244	  implement a global monitor, this option can cause programs that
245	  perform SWP operations to uncached memory to deadlock.
246
247	  If unsure, say Y.
248
249source kernel/Kconfig.preempt
250
251config HZ
252	int
253	default 100
254
255config ARCH_HAS_HOLES_MEMORYMODEL
256	def_bool y if SPARSEMEM
257
258config ARCH_SPARSEMEM_ENABLE
259	def_bool y
260	select SPARSEMEM_VMEMMAP_ENABLE
261
262config ARCH_SPARSEMEM_DEFAULT
263	def_bool ARCH_SPARSEMEM_ENABLE
264
265config ARCH_SELECT_MEMORY_MODEL
266	def_bool ARCH_SPARSEMEM_ENABLE
267
268config HAVE_ARCH_PFN_VALID
269	def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
270
271config HW_PERF_EVENTS
272	bool "Enable hardware performance counter support for perf events"
273	depends on PERF_EVENTS
274	default y
275	help
276	  Enable hardware performance counter support for perf events. If
277	  disabled, perf events will use software events only.
278
279config SYS_SUPPORTS_HUGETLBFS
280	def_bool y
281
282config ARCH_WANT_GENERAL_HUGETLB
283	def_bool y
284
285config ARCH_WANT_HUGE_PMD_SHARE
286	def_bool y if !ARM64_64K_PAGES
287
288config HAVE_ARCH_TRANSPARENT_HUGEPAGE
289	def_bool y
290
291config ARMV7_COMPAT
292	bool "Kernel support for ARMv7 applications"
293	depends on COMPAT
294	select SWP_EMULATE
295	help
296	 This option enables features that allow that ran on an ARMv7 or older
297	 processor to continue functioning.
298
299	 If you want to execute ARMv7 applications, say Y
300
301config ARMV7_COMPAT_CPUINFO
302	bool "Report backwards compatible cpu features in /proc/cpuinfo"
303	depends on ARMV7_COMPAT
304	default y
305	help
306	 This option makes /proc/cpuinfo list CPU features that an ARMv7 or
307	 earlier kernel would report, but are not optional on an ARMv8 or later
308	 processor.
309
310	 If you want to execute ARMv7 applications, say Y
311
312source "mm/Kconfig"
313
314config SECCOMP
315	bool "Enable seccomp to safely compute untrusted bytecode"
316	---help---
317	  This kernel feature is useful for number crunching applications
318	  that may need to compute untrusted bytecode during their
319	  execution. By using pipes or other transports made available to
320	  the process as file descriptors supporting the read/write
321	  syscalls, it's possible to isolate those applications in
322	  their own address space using seccomp. Once seccomp is
323	  enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
324	  and the task is only allowed to execute a few safe syscalls
325	  defined by each seccomp mode.
326
327config FORCE_MAX_ZONEORDER
328	int
329	default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
330	default "11"
331
332endmenu
333
334menu "Boot options"
335
336config CMDLINE
337	string "Default kernel command string"
338	default ""
339	help
340	  Provide a set of default command-line options at build time by
341	  entering them here. As a minimum, you should specify the the
342	  root device (e.g. root=/dev/nfs).
343
344choice
345	prompt "Kernel command line type" if CMDLINE != ""
346	default CMDLINE_FROM_BOOTLOADER
347
348config CMDLINE_FROM_BOOTLOADER
349	bool "Use bootloader kernel arguments if available"
350	help
351	  Uses the command-line options passed by the boot loader. If
352	  the boot loader doesn't provide any, the default kernel command
353	  string provided in CMDLINE will be used.
354
355config CMDLINE_EXTEND
356	bool "Extend bootloader kernel arguments"
357	help
358	  The command-line arguments provided by the boot loader will be
359	  appended to the default kernel command string.
360
361config CMDLINE_FORCE
362	bool "Always use the default kernel command string"
363	help
364	  Always use the default kernel command string, even if the boot
365	  loader passes other arguments to the kernel.
366	  This is useful if you cannot or don't want to change the
367	  command-line options your boot loader passes to the kernel.
368endchoice
369
370config BUILD_ARM64_APPENDED_DTB_IMAGE
371	bool "Build a concatenated Image.gz/dtb by default"
372	depends on OF
373	help
374	  Enabling this option will cause a concatenated Image.gz and list of
375	  DTBs to be built by default (instead of a standalone Image.gz.)
376	  The image will built in arch/arm64/boot/Image.gz-dtb
377
378config BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES
379	string "Default dtb names"
380	depends on BUILD_ARM64_APPENDED_DTB_IMAGE
381	help
382	  Space separated list of names of dtbs to append when
383	  building a concatenated Image.gz-dtb.
384
385endmenu
386
387menu "Userspace binary formats"
388
389source "fs/Kconfig.binfmt"
390
391config COMPAT
392	bool "Kernel support for 32-bit EL0"
393	depends on !ARM64_64K_PAGES
394	select COMPAT_BINFMT_ELF
395	select HAVE_UID16
396	select OLD_SIGSUSPEND3
397	select COMPAT_OLD_SIGACTION
398	help
399	  This option enables support for a 32-bit EL0 running under a 64-bit
400	  kernel at EL1. AArch32-specific components such as system calls,
401	  the user helper functions, VFP support and the ptrace interface are
402	  handled appropriately by the kernel.
403
404	  If you want to execute 32-bit userspace applications, say Y.
405
406config SYSVIPC_COMPAT
407	def_bool y
408	depends on COMPAT && SYSVIPC
409
410endmenu
411
412menu "Power management options"
413
414source "kernel/power/Kconfig"
415
416source "drivers/cpufreq/Kconfig"
417config ARCH_SUSPEND_POSSIBLE
418	def_bool y
419
420config ARM64_CPU_SUSPEND
421	def_bool PM_SLEEP
422
423endmenu
424
425menu "CPU Power Management"
426
427source "drivers/cpuidle/Kconfig"
428
429endmenu
430
431source "net/Kconfig"
432
433source "drivers/Kconfig"
434
435source "fs/Kconfig"
436
437source "arch/arm64/Kconfig.debug"
438
439source "security/Kconfig"
440
441source "crypto/Kconfig"
442if CRYPTO
443source "arch/arm64/crypto/Kconfig"
444endif
445
446source "lib/Kconfig"
447