These changes are a raw update to a vanilla kernel 4.1.10, with the
[kvmfornfv.git] / kernel / arch / arm64 / Kconfig
1 config ARM64
2         def_bool y
3         select ACPI_GENERIC_GSI if ACPI
4         select ACPI_REDUCED_HARDWARE_ONLY if ACPI
5         select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
6         select ARCH_HAS_ELF_RANDOMIZE
7         select ARCH_HAS_GCOV_PROFILE_ALL
8         select ARCH_HAS_SG_CHAIN
9         select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
10         select ARCH_USE_CMPXCHG_LOCKREF
11         select ARCH_SUPPORTS_ATOMIC_RMW
12         select ARCH_WANT_OPTIONAL_GPIOLIB
13         select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
14         select ARCH_WANT_FRAME_POINTERS
15         select ARM_AMBA
16         select ARM_ARCH_TIMER
17         select ARM_GIC
18         select AUDIT_ARCH_COMPAT_GENERIC
19         select ARM_GIC_V2M if PCI_MSI
20         select ARM_GIC_V3
21         select ARM_GIC_V3_ITS if PCI_MSI
22         select BUILDTIME_EXTABLE_SORT
23         select CLONE_BACKWARDS
24         select COMMON_CLK
25         select CPU_PM if (SUSPEND || CPU_IDLE)
26         select DCACHE_WORD_ACCESS
27         select GENERIC_ALLOCATOR
28         select GENERIC_CLOCKEVENTS
29         select GENERIC_CLOCKEVENTS_BROADCAST if SMP
30         select GENERIC_CPU_AUTOPROBE
31         select GENERIC_EARLY_IOREMAP
32         select GENERIC_IRQ_PROBE
33         select GENERIC_IRQ_SHOW
34         select GENERIC_IRQ_SHOW_LEVEL
35         select GENERIC_PCI_IOMAP
36         select GENERIC_SCHED_CLOCK
37         select GENERIC_SMP_IDLE_THREAD
38         select GENERIC_STRNCPY_FROM_USER
39         select GENERIC_STRNLEN_USER
40         select GENERIC_TIME_VSYSCALL
41         select HANDLE_DOMAIN_IRQ
42         select HARDIRQS_SW_RESEND
43         select HAVE_ALIGNED_STRUCT_PAGE if SLUB
44         select HAVE_ARCH_AUDITSYSCALL
45         select HAVE_ARCH_BITREVERSE
46         select HAVE_ARCH_JUMP_LABEL
47         select HAVE_ARCH_KGDB
48         select HAVE_ARCH_SECCOMP_FILTER
49         select HAVE_ARCH_TRACEHOOK
50         select HAVE_BPF_JIT
51         select HAVE_C_RECORDMCOUNT
52         select HAVE_CC_STACKPROTECTOR
53         select HAVE_CMPXCHG_DOUBLE
54         select HAVE_DEBUG_BUGVERBOSE
55         select HAVE_DEBUG_KMEMLEAK
56         select HAVE_DMA_API_DEBUG
57         select HAVE_DMA_ATTRS
58         select HAVE_DMA_CONTIGUOUS
59         select HAVE_DYNAMIC_FTRACE
60         select HAVE_EFFICIENT_UNALIGNED_ACCESS
61         select HAVE_FTRACE_MCOUNT_RECORD
62         select HAVE_FUNCTION_TRACER
63         select HAVE_FUNCTION_GRAPH_TRACER
64         select HAVE_GENERIC_DMA_COHERENT
65         select HAVE_HW_BREAKPOINT if PERF_EVENTS
66         select HAVE_MEMBLOCK
67         select HAVE_PATA_PLATFORM
68         select HAVE_PERF_EVENTS
69         select HAVE_PERF_REGS
70         select HAVE_PERF_USER_STACK_DUMP
71         select HAVE_RCU_TABLE_FREE
72         select HAVE_PREEMPT_LAZY
73         select HAVE_SYSCALL_TRACEPOINTS
74         select IRQ_DOMAIN
75         select IRQ_FORCED_THREADING
76         select MODULES_USE_ELF_RELA
77         select NO_BOOTMEM
78         select OF
79         select OF_EARLY_FLATTREE
80         select OF_RESERVED_MEM
81         select PERF_USE_VMALLOC
82         select POWER_RESET
83         select POWER_SUPPLY
84         select RTC_LIB
85         select SPARSE_IRQ
86         select SYSCTL_EXCEPTION_TRACE
87         select HAVE_CONTEXT_TRACKING
88         help
89           ARM 64-bit (AArch64) Linux support.
90
91 config 64BIT
92         def_bool y
93
94 config ARCH_PHYS_ADDR_T_64BIT
95         def_bool y
96
97 config MMU
98         def_bool y
99
100 config NO_IOPORT_MAP
101         def_bool y if !PCI
102
103 config STACKTRACE_SUPPORT
104         def_bool y
105
106 config ILLEGAL_POINTER_VALUE
107         hex
108         default 0xdead000000000000
109
110 config LOCKDEP_SUPPORT
111         def_bool y
112
113 config TRACE_IRQFLAGS_SUPPORT
114         def_bool y
115
116 config RWSEM_XCHGADD_ALGORITHM
117         def_bool y
118
119 config GENERIC_HWEIGHT
120         def_bool y
121
122 config GENERIC_CSUM
123         def_bool y
124
125 config GENERIC_CALIBRATE_DELAY
126         def_bool y
127
128 config ZONE_DMA
129         def_bool y
130
131 config HAVE_GENERIC_RCU_GUP
132         def_bool y
133
134 config ARCH_DMA_ADDR_T_64BIT
135         def_bool y
136
137 config NEED_DMA_MAP_STATE
138         def_bool y
139
140 config NEED_SG_DMA_LENGTH
141         def_bool y
142
143 config SWIOTLB
144         def_bool y
145
146 config IOMMU_HELPER
147         def_bool SWIOTLB
148
149 config KERNEL_MODE_NEON
150         def_bool y
151
152 config FIX_EARLYCON_MEM
153         def_bool y
154
155 config PGTABLE_LEVELS
156         int
157         default 2 if ARM64_64K_PAGES && ARM64_VA_BITS_42
158         default 3 if ARM64_64K_PAGES && ARM64_VA_BITS_48
159         default 3 if ARM64_4K_PAGES && ARM64_VA_BITS_39
160         default 4 if ARM64_4K_PAGES && ARM64_VA_BITS_48
161
162 source "init/Kconfig"
163
164 source "kernel/Kconfig.freezer"
165
166 menu "Platform selection"
167
168 config ARCH_EXYNOS
169         bool
170         help
171           This enables support for Samsung Exynos SoC family
172
173 config ARCH_EXYNOS7
174         bool "ARMv8 based Samsung Exynos7"
175         select ARCH_EXYNOS
176         select COMMON_CLK_SAMSUNG
177         select HAVE_S3C2410_WATCHDOG if WATCHDOG
178         select HAVE_S3C_RTC if RTC_CLASS
179         select PINCTRL
180         select PINCTRL_EXYNOS
181
182         help
183           This enables support for Samsung Exynos7 SoC family
184
185 config ARCH_FSL_LS2085A
186         bool "Freescale LS2085A SOC"
187         help
188           This enables support for Freescale LS2085A SOC.
189
190 config ARCH_MEDIATEK
191         bool "Mediatek MT65xx & MT81xx ARMv8 SoC"
192         select ARM_GIC
193         select PINCTRL
194         help
195           Support for Mediatek MT65xx & MT81xx ARMv8 SoCs
196
197 config ARCH_QCOM
198         bool "Qualcomm Platforms"
199         select PINCTRL
200         help
201           This enables support for the ARMv8 based Qualcomm chipsets.
202
203 config ARCH_SEATTLE
204         bool "AMD Seattle SoC Family"
205         help
206           This enables support for AMD Seattle SOC Family
207
208 config ARCH_TEGRA
209         bool "NVIDIA Tegra SoC Family"
210         select ARCH_HAS_RESET_CONTROLLER
211         select ARCH_REQUIRE_GPIOLIB
212         select CLKDEV_LOOKUP
213         select CLKSRC_MMIO
214         select CLKSRC_OF
215         select GENERIC_CLOCKEVENTS
216         select HAVE_CLK
217         select PINCTRL
218         select RESET_CONTROLLER
219         help
220           This enables support for the NVIDIA Tegra SoC family.
221
222 config ARCH_TEGRA_132_SOC
223         bool "NVIDIA Tegra132 SoC"
224         depends on ARCH_TEGRA
225         select PINCTRL_TEGRA124
226         select USB_ULPI if USB_PHY
227         select USB_ULPI_VIEWPORT if USB_PHY
228         help
229           Enable support for NVIDIA Tegra132 SoC, based on the Denver
230           ARMv8 CPU.  The Tegra132 SoC is similar to the Tegra124 SoC,
231           but contains an NVIDIA Denver CPU complex in place of
232           Tegra124's "4+1" Cortex-A15 CPU complex.
233
234 config ARCH_SPRD
235         bool "Spreadtrum SoC platform"
236         help
237           Support for Spreadtrum ARM based SoCs
238
239 config ARCH_THUNDER
240         bool "Cavium Inc. Thunder SoC Family"
241         help
242           This enables support for Cavium's Thunder Family of SoCs.
243
244 config ARCH_VEXPRESS
245         bool "ARMv8 software model (Versatile Express)"
246         select ARCH_REQUIRE_GPIOLIB
247         select COMMON_CLK_VERSATILE
248         select POWER_RESET_VEXPRESS
249         select VEXPRESS_CONFIG
250         help
251           This enables support for the ARMv8 software model (Versatile
252           Express).
253
254 config ARCH_XGENE
255         bool "AppliedMicro X-Gene SOC Family"
256         help
257           This enables support for AppliedMicro X-Gene SOC Family
258
259 config ARCH_ZYNQMP
260         bool "Xilinx ZynqMP Family"
261         help
262           This enables support for Xilinx ZynqMP Family
263
264 endmenu
265
266 menu "Bus support"
267
268 config PCI
269         bool "PCI support"
270         help
271           This feature enables support for PCI bus system. If you say Y
272           here, the kernel will include drivers and infrastructure code
273           to support PCI bus devices.
274
275 config PCI_DOMAINS
276         def_bool PCI
277
278 config PCI_DOMAINS_GENERIC
279         def_bool PCI
280
281 config PCI_SYSCALL
282         def_bool PCI
283
284 source "drivers/pci/Kconfig"
285 source "drivers/pci/pcie/Kconfig"
286 source "drivers/pci/hotplug/Kconfig"
287
288 endmenu
289
290 menu "Kernel Features"
291
292 menu "ARM errata workarounds via the alternatives framework"
293
294 config ARM64_ERRATUM_826319
295         bool "Cortex-A53: 826319: System might deadlock if a write cannot complete until read data is accepted"
296         default y
297         help
298           This option adds an alternative code sequence to work around ARM
299           erratum 826319 on Cortex-A53 parts up to r0p2 with an AMBA 4 ACE or
300           AXI master interface and an L2 cache.
301
302           If a Cortex-A53 uses an AMBA AXI4 ACE interface to other processors
303           and is unable to accept a certain write via this interface, it will
304           not progress on read data presented on the read data channel and the
305           system can deadlock.
306
307           The workaround promotes data cache clean instructions to
308           data cache clean-and-invalidate.
309           Please note that this does not necessarily enable the workaround,
310           as it depends on the alternative framework, which will only patch
311           the kernel if an affected CPU is detected.
312
313           If unsure, say Y.
314
315 config ARM64_ERRATUM_827319
316         bool "Cortex-A53: 827319: Data cache clean instructions might cause overlapping transactions to the interconnect"
317         default y
318         help
319           This option adds an alternative code sequence to work around ARM
320           erratum 827319 on Cortex-A53 parts up to r0p2 with an AMBA 5 CHI
321           master interface and an L2 cache.
322
323           Under certain conditions this erratum can cause a clean line eviction
324           to occur at the same time as another transaction to the same address
325           on the AMBA 5 CHI interface, which can cause data corruption if the
326           interconnect reorders the two transactions.
327
328           The workaround promotes data cache clean instructions to
329           data cache clean-and-invalidate.
330           Please note that this does not necessarily enable the workaround,
331           as it depends on the alternative framework, which will only patch
332           the kernel if an affected CPU is detected.
333
334           If unsure, say Y.
335
336 config ARM64_ERRATUM_824069
337         bool "Cortex-A53: 824069: Cache line might not be marked as clean after a CleanShared snoop"
338         default y
339         help
340           This option adds an alternative code sequence to work around ARM
341           erratum 824069 on Cortex-A53 parts up to r0p2 when it is connected
342           to a coherent interconnect.
343
344           If a Cortex-A53 processor is executing a store or prefetch for
345           write instruction at the same time as a processor in another
346           cluster is executing a cache maintenance operation to the same
347           address, then this erratum might cause a clean cache line to be
348           incorrectly marked as dirty.
349
350           The workaround promotes data cache clean instructions to
351           data cache clean-and-invalidate.
352           Please note that this option does not necessarily enable the
353           workaround, as it depends on the alternative framework, which will
354           only patch the kernel if an affected CPU is detected.
355
356           If unsure, say Y.
357
358 config ARM64_ERRATUM_819472
359         bool "Cortex-A53: 819472: Store exclusive instructions might cause data corruption"
360         default y
361         help
362           This option adds an alternative code sequence to work around ARM
363           erratum 819472 on Cortex-A53 parts up to r0p1 with an L2 cache
364           present when it is connected to a coherent interconnect.
365
366           If the processor is executing a load and store exclusive sequence at
367           the same time as a processor in another cluster is executing a cache
368           maintenance operation to the same address, then this erratum might
369           cause data corruption.
370
371           The workaround promotes data cache clean instructions to
372           data cache clean-and-invalidate.
373           Please note that this does not necessarily enable the workaround,
374           as it depends on the alternative framework, which will only patch
375           the kernel if an affected CPU is detected.
376
377           If unsure, say Y.
378
379 config ARM64_ERRATUM_832075
380         bool "Cortex-A57: 832075: possible deadlock on mixing exclusive memory accesses with device loads"
381         default y
382         help
383           This option adds an alternative code sequence to work around ARM
384           erratum 832075 on Cortex-A57 parts up to r1p2.
385
386           Affected Cortex-A57 parts might deadlock when exclusive load/store
387           instructions to Write-Back memory are mixed with Device loads.
388
389           The workaround is to promote device loads to use Load-Acquire
390           semantics.
391           Please note that this does not necessarily enable the workaround,
392           as it depends on the alternative framework, which will only patch
393           the kernel if an affected CPU is detected.
394
395           If unsure, say Y.
396
397 config ARM64_ERRATUM_845719
398         bool "Cortex-A53: 845719: a load might read incorrect data"
399         depends on COMPAT
400         default y
401         help
402           This option adds an alternative code sequence to work around ARM
403           erratum 845719 on Cortex-A53 parts up to r0p4.
404
405           When running a compat (AArch32) userspace on an affected Cortex-A53
406           part, a load at EL0 from a virtual address that matches the bottom 32
407           bits of the virtual address used by a recent load at (AArch64) EL1
408           might return incorrect data.
409
410           The workaround is to write the contextidr_el1 register on exception
411           return to a 32-bit task.
412           Please note that this does not necessarily enable the workaround,
413           as it depends on the alternative framework, which will only patch
414           the kernel if an affected CPU is detected.
415
416           If unsure, say Y.
417
418 config ARM64_ERRATUM_843419
419         bool "Cortex-A53: 843419: A load or store might access an incorrect address"
420         depends on MODULES
421         default y
422         help
423           This option builds kernel modules using the large memory model in
424           order to avoid the use of the ADRP instruction, which can cause
425           a subsequent memory access to use an incorrect address on Cortex-A53
426           parts up to r0p4.
427
428           Note that the kernel itself must be linked with a version of ld
429           which fixes potentially affected ADRP instructions through the
430           use of veneers.
431
432           If unsure, say Y.
433
434 endmenu
435
436
437 choice
438         prompt "Page size"
439         default ARM64_4K_PAGES
440         help
441           Page size (translation granule) configuration.
442
443 config ARM64_4K_PAGES
444         bool "4KB"
445         help
446           This feature enables 4KB pages support.
447
448 config ARM64_64K_PAGES
449         bool "64KB"
450         help
451           This feature enables 64KB pages support (4KB by default)
452           allowing only two levels of page tables and faster TLB
453           look-up. AArch32 emulation is not available when this feature
454           is enabled.
455
456 endchoice
457
458 choice
459         prompt "Virtual address space size"
460         default ARM64_VA_BITS_39 if ARM64_4K_PAGES
461         default ARM64_VA_BITS_42 if ARM64_64K_PAGES
462         help
463           Allows choosing one of multiple possible virtual address
464           space sizes. The level of translation table is determined by
465           a combination of page size and virtual address space size.
466
467 config ARM64_VA_BITS_39
468         bool "39-bit"
469         depends on ARM64_4K_PAGES
470
471 config ARM64_VA_BITS_42
472         bool "42-bit"
473         depends on ARM64_64K_PAGES
474
475 config ARM64_VA_BITS_48
476         bool "48-bit"
477
478 endchoice
479
480 config ARM64_VA_BITS
481         int
482         default 39 if ARM64_VA_BITS_39
483         default 42 if ARM64_VA_BITS_42
484         default 48 if ARM64_VA_BITS_48
485
486 config CPU_BIG_ENDIAN
487        bool "Build big-endian kernel"
488        help
489          Say Y if you plan on running a kernel in big-endian mode.
490
491 config SMP
492         bool "Symmetric Multi-Processing"
493         help
494           This enables support for systems with more than one CPU.  If
495           you say N here, the kernel will run on single and
496           multiprocessor machines, but will use only one CPU of a
497           multiprocessor machine. If you say Y here, the kernel will run
498           on many, but not all, single processor machines. On a single
499           processor machine, the kernel will run faster if you say N
500           here.
501
502           If you don't know what to do here, say N.
503
504 config SCHED_MC
505         bool "Multi-core scheduler support"
506         depends on SMP
507         help
508           Multi-core scheduler support improves the CPU scheduler's decision
509           making when dealing with multi-core CPU chips at a cost of slightly
510           increased overhead in some places. If unsure say N here.
511
512 config SCHED_SMT
513         bool "SMT scheduler support"
514         depends on SMP
515         help
516           Improves the CPU scheduler's decision making when dealing with
517           MultiThreading at a cost of slightly increased overhead in some
518           places. If unsure say N here.
519
520 config NR_CPUS
521         int "Maximum number of CPUs (2-4096)"
522         range 2 4096
523         depends on SMP
524         # These have to remain sorted largest to smallest
525         default "64"
526
527 config HOTPLUG_CPU
528         bool "Support for hot-pluggable CPUs"
529         depends on SMP
530         help
531           Say Y here to experiment with turning CPUs off and on.  CPUs
532           can be controlled through /sys/devices/system/cpu.
533
534 source kernel/Kconfig.preempt
535
536 config UP_LATE_INIT
537        def_bool y
538        depends on !SMP
539
540 config HZ
541         int
542         default 100
543
544 config ARCH_HAS_HOLES_MEMORYMODEL
545         def_bool y if SPARSEMEM
546
547 config ARCH_SPARSEMEM_ENABLE
548         def_bool y
549         select SPARSEMEM_VMEMMAP_ENABLE
550
551 config ARCH_SPARSEMEM_DEFAULT
552         def_bool ARCH_SPARSEMEM_ENABLE
553
554 config ARCH_SELECT_MEMORY_MODEL
555         def_bool ARCH_SPARSEMEM_ENABLE
556
557 config HAVE_ARCH_PFN_VALID
558         def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
559
560 config HW_PERF_EVENTS
561         bool "Enable hardware performance counter support for perf events"
562         depends on PERF_EVENTS
563         default y
564         help
565           Enable hardware performance counter support for perf events. If
566           disabled, perf events will use software events only.
567
568 config SYS_SUPPORTS_HUGETLBFS
569         def_bool y
570
571 config ARCH_WANT_GENERAL_HUGETLB
572         def_bool y
573
574 config ARCH_WANT_HUGE_PMD_SHARE
575         def_bool y if !ARM64_64K_PAGES
576
577 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
578         def_bool y
579
580 config ARCH_HAS_CACHE_LINE_SIZE
581         def_bool y
582
583 source "mm/Kconfig"
584
585 config SECCOMP
586         bool "Enable seccomp to safely compute untrusted bytecode"
587         ---help---
588           This kernel feature is useful for number crunching applications
589           that may need to compute untrusted bytecode during their
590           execution. By using pipes or other transports made available to
591           the process as file descriptors supporting the read/write
592           syscalls, it's possible to isolate those applications in
593           their own address space using seccomp. Once seccomp is
594           enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
595           and the task is only allowed to execute a few safe syscalls
596           defined by each seccomp mode.
597
598 config XEN_DOM0
599         def_bool y
600         depends on XEN
601
602 config XEN
603         bool "Xen guest support on ARM64"
604         depends on ARM64 && OF && !PREEMPT_RT_FULL
605         select SWIOTLB_XEN
606         help
607           Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
608
609 config FORCE_MAX_ZONEORDER
610         int
611         default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
612         default "11"
613
614 menuconfig ARMV8_DEPRECATED
615         bool "Emulate deprecated/obsolete ARMv8 instructions"
616         depends on COMPAT
617         help
618           Legacy software support may require certain instructions
619           that have been deprecated or obsoleted in the architecture.
620
621           Enable this config to enable selective emulation of these
622           features.
623
624           If unsure, say Y
625
626 if ARMV8_DEPRECATED
627
628 config SWP_EMULATION
629         bool "Emulate SWP/SWPB instructions"
630         help
631           ARMv8 obsoletes the use of A32 SWP/SWPB instructions such that
632           they are always undefined. Say Y here to enable software
633           emulation of these instructions for userspace using LDXR/STXR.
634
635           In some older versions of glibc [<=2.8] SWP is used during futex
636           trylock() operations with the assumption that the code will not
637           be preempted. This invalid assumption may be more likely to fail
638           with SWP emulation enabled, leading to deadlock of the user
639           application.
640
641           NOTE: when accessing uncached shared regions, LDXR/STXR rely
642           on an external transaction monitoring block called a global
643           monitor to maintain update atomicity. If your system does not
644           implement a global monitor, this option can cause programs that
645           perform SWP operations to uncached memory to deadlock.
646
647           If unsure, say Y
648
649 config CP15_BARRIER_EMULATION
650         bool "Emulate CP15 Barrier instructions"
651         help
652           The CP15 barrier instructions - CP15ISB, CP15DSB, and
653           CP15DMB - are deprecated in ARMv8 (and ARMv7). It is
654           strongly recommended to use the ISB, DSB, and DMB
655           instructions instead.
656
657           Say Y here to enable software emulation of these
658           instructions for AArch32 userspace code. When this option is
659           enabled, CP15 barrier usage is traced which can help
660           identify software that needs updating.
661
662           If unsure, say Y
663
664 config SETEND_EMULATION
665         bool "Emulate SETEND instruction"
666         help
667           The SETEND instruction alters the data-endianness of the
668           AArch32 EL0, and is deprecated in ARMv8.
669
670           Say Y here to enable software emulation of the instruction
671           for AArch32 userspace code.
672
673           Note: All the cpus on the system must have mixed endian support at EL0
674           for this feature to be enabled. If a new CPU - which doesn't support mixed
675           endian - is hotplugged in after this feature has been enabled, there could
676           be unexpected results in the applications.
677
678           If unsure, say Y
679 endif
680
681 endmenu
682
683 menu "Boot options"
684
685 config CMDLINE
686         string "Default kernel command string"
687         default ""
688         help
689           Provide a set of default command-line options at build time by
690           entering them here. As a minimum, you should specify the the
691           root device (e.g. root=/dev/nfs).
692
693 config CMDLINE_FORCE
694         bool "Always use the default kernel command string"
695         help
696           Always use the default kernel command string, even if the boot
697           loader passes other arguments to the kernel.
698           This is useful if you cannot or don't want to change the
699           command-line options your boot loader passes to the kernel.
700
701 config EFI_STUB
702         bool
703
704 config EFI
705         bool "UEFI runtime support"
706         depends on OF && !CPU_BIG_ENDIAN
707         select LIBFDT
708         select UCS2_STRING
709         select EFI_PARAMS_FROM_FDT
710         select EFI_RUNTIME_WRAPPERS
711         select EFI_STUB
712         select EFI_ARMSTUB
713         default y
714         help
715           This option provides support for runtime services provided
716           by UEFI firmware (such as non-volatile variables, realtime
717           clock, and platform reset). A UEFI stub is also provided to
718           allow the kernel to be booted as an EFI application. This
719           is only useful on systems that have UEFI firmware.
720
721 config DMI
722         bool "Enable support for SMBIOS (DMI) tables"
723         depends on EFI
724         default y
725         help
726           This enables SMBIOS/DMI feature for systems.
727
728           This option is only useful on systems that have UEFI firmware.
729           However, even with this option, the resultant kernel should
730           continue to boot on existing non-UEFI platforms.
731
732 endmenu
733
734 menu "Userspace binary formats"
735
736 source "fs/Kconfig.binfmt"
737
738 config COMPAT
739         bool "Kernel support for 32-bit EL0"
740         depends on !ARM64_64K_PAGES || EXPERT
741         select COMPAT_BINFMT_ELF
742         select HAVE_UID16
743         select OLD_SIGSUSPEND3
744         select COMPAT_OLD_SIGACTION
745         help
746           This option enables support for a 32-bit EL0 running under a 64-bit
747           kernel at EL1. AArch32-specific components such as system calls,
748           the user helper functions, VFP support and the ptrace interface are
749           handled appropriately by the kernel.
750
751           If you also enabled CONFIG_ARM64_64K_PAGES, please be aware that you
752           will only be able to execute AArch32 binaries that were compiled with
753           64k aligned segments.
754
755           If you want to execute 32-bit userspace applications, say Y.
756
757 config SYSVIPC_COMPAT
758         def_bool y
759         depends on COMPAT && SYSVIPC
760
761 endmenu
762
763 menu "Power management options"
764
765 source "kernel/power/Kconfig"
766
767 config ARCH_SUSPEND_POSSIBLE
768         def_bool y
769
770 endmenu
771
772 menu "CPU Power Management"
773
774 source "drivers/cpuidle/Kconfig"
775
776 source "drivers/cpufreq/Kconfig"
777
778 endmenu
779
780 source "net/Kconfig"
781
782 source "drivers/Kconfig"
783
784 source "drivers/firmware/Kconfig"
785
786 source "drivers/acpi/Kconfig"
787
788 source "fs/Kconfig"
789
790 source "arch/arm64/kvm/Kconfig"
791
792 source "arch/arm64/Kconfig.debug"
793
794 source "security/Kconfig"
795
796 source "crypto/Kconfig"
797 if CRYPTO
798 source "arch/arm64/crypto/Kconfig"
799 endif
800
801 source "lib/Kconfig"