arm64: topology: Implement basic CPU topology support
[pandora-kernel.git] / arch / arm64 / Kconfig
1 config 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_KGDB
30         select HAVE_ARCH_TRACEHOOK
31         select HAVE_DEBUG_BUGVERBOSE
32         select HAVE_DEBUG_KMEMLEAK
33         select HAVE_DMA_API_DEBUG
34         select HAVE_DMA_ATTRS
35         select HAVE_DMA_CONTIGUOUS
36         select HAVE_EFFICIENT_UNALIGNED_ACCESS
37         select HAVE_GENERIC_DMA_COHERENT
38         select HAVE_HW_BREAKPOINT if PERF_EVENTS
39         select HAVE_MEMBLOCK
40         select HAVE_PATA_PLATFORM
41         select HAVE_PERF_EVENTS
42         select IRQ_DOMAIN
43         select MODULES_USE_ELF_RELA
44         select NO_BOOTMEM
45         select OF
46         select OF_EARLY_FLATTREE
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_GENERIC_SPINLOCK
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 KERNEL_MODE_NEON
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 CPU_BIG_ENDIAN
151        bool "Build big-endian kernel"
152        help
153          Say Y if you plan on running a kernel in big-endian mode.
154
155 config SMP
156         bool "Symmetric Multi-Processing"
157         help
158           This enables support for systems with more than one CPU.  If
159           you say N here, the kernel will run on single and
160           multiprocessor machines, but will use only one CPU of a
161           multiprocessor machine. If you say Y here, the kernel will run
162           on many, but not all, single processor machines. On a single
163           processor machine, the kernel will run faster if you say N
164           here.
165
166           If you don't know what to do here, say N.
167
168 config SCHED_MC
169         bool "Multi-core scheduler support"
170         depends on SMP
171         help
172           Multi-core scheduler support improves the CPU scheduler's decision
173           making when dealing with multi-core CPU chips at a cost of slightly
174           increased overhead in some places. If unsure say N here.
175
176 config SCHED_SMT
177         bool "SMT scheduler support"
178         depends on SMP
179         help
180           Improves the CPU scheduler's decision making when dealing with
181           MultiThreading at a cost of slightly increased overhead in some
182           places. If unsure say N here.
183
184 config NR_CPUS
185         int "Maximum number of CPUs (2-32)"
186         range 2 32
187         depends on SMP
188         # These have to remain sorted largest to smallest
189         default "8"
190
191 config HOTPLUG_CPU
192         bool "Support for hot-pluggable CPUs"
193         depends on SMP
194         help
195           Say Y here to experiment with turning CPUs off and on.  CPUs
196           can be controlled through /sys/devices/system/cpu.
197
198 source kernel/Kconfig.preempt
199
200 config HZ
201         int
202         default 100
203
204 config ARCH_HAS_HOLES_MEMORYMODEL
205         def_bool y if SPARSEMEM
206
207 config ARCH_SPARSEMEM_ENABLE
208         def_bool y
209         select SPARSEMEM_VMEMMAP_ENABLE
210
211 config ARCH_SPARSEMEM_DEFAULT
212         def_bool ARCH_SPARSEMEM_ENABLE
213
214 config ARCH_SELECT_MEMORY_MODEL
215         def_bool ARCH_SPARSEMEM_ENABLE
216
217 config HAVE_ARCH_PFN_VALID
218         def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
219
220 config HW_PERF_EVENTS
221         bool "Enable hardware performance counter support for perf events"
222         depends on PERF_EVENTS
223         default y
224         help
225           Enable hardware performance counter support for perf events. If
226           disabled, perf events will use software events only.
227
228 config SYS_SUPPORTS_HUGETLBFS
229         def_bool y
230
231 config ARCH_WANT_GENERAL_HUGETLB
232         def_bool y
233
234 config ARCH_WANT_HUGE_PMD_SHARE
235         def_bool y if !ARM64_64K_PAGES
236
237 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
238         def_bool y
239
240 source "mm/Kconfig"
241
242 config XEN_DOM0
243         def_bool y
244         depends on XEN
245
246 config XEN
247         bool "Xen guest support on ARM64 (EXPERIMENTAL)"
248         depends on ARM64 && OF
249         select SWIOTLB_XEN
250         help
251           Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
252
253 config FORCE_MAX_ZONEORDER
254         int
255         default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
256         default "11"
257
258 endmenu
259
260 menu "Boot options"
261
262 config CMDLINE
263         string "Default kernel command string"
264         default ""
265         help
266           Provide a set of default command-line options at build time by
267           entering them here. As a minimum, you should specify the the
268           root device (e.g. root=/dev/nfs).
269
270 config CMDLINE_FORCE
271         bool "Always use the default kernel command string"
272         help
273           Always use the default kernel command string, even if the boot
274           loader passes other arguments to the kernel.
275           This is useful if you cannot or don't want to change the
276           command-line options your boot loader passes to the kernel.
277
278 endmenu
279
280 menu "Userspace binary formats"
281
282 source "fs/Kconfig.binfmt"
283
284 config COMPAT
285         bool "Kernel support for 32-bit EL0"
286         depends on !ARM64_64K_PAGES
287         select COMPAT_BINFMT_ELF
288         select HAVE_UID16
289         select OLD_SIGSUSPEND3
290         select COMPAT_OLD_SIGACTION
291         help
292           This option enables support for a 32-bit EL0 running under a 64-bit
293           kernel at EL1. AArch32-specific components such as system calls,
294           the user helper functions, VFP support and the ptrace interface are
295           handled appropriately by the kernel.
296
297           If you want to execute 32-bit userspace applications, say Y.
298
299 config SYSVIPC_COMPAT
300         def_bool y
301         depends on COMPAT && SYSVIPC
302
303 endmenu
304
305 menu "Power management options"
306
307 source "kernel/power/Kconfig"
308
309 config ARCH_SUSPEND_POSSIBLE
310         def_bool y
311
312 config ARM64_CPU_SUSPEND
313         def_bool PM_SLEEP
314
315 endmenu
316
317 menu "CPU Power Management"
318
319 source "drivers/cpuidle/Kconfig"
320
321 endmenu
322
323 menu "Power management options"
324
325 source "kernel/power/Kconfig"
326
327 source "drivers/cpufreq/Kconfig"
328
329 endmenu
330
331 source "net/Kconfig"
332
333 source "drivers/Kconfig"
334
335 source "fs/Kconfig"
336
337 source "arch/arm64/kvm/Kconfig"
338
339 source "arch/arm64/Kconfig.debug"
340
341 source "security/Kconfig"
342
343 source "crypto/Kconfig"
344
345 source "lib/Kconfig"