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