]> nv-tegra.nvidia Code Review - linux-3.10.git/blob - arch/arm64/Kconfig
arm64: add arm64 machine config
[linux-3.10.git] / arch / arm64 / Kconfig
1 config ARM64
2         def_bool y
3         select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
4         select ARCH_HAVE_CUSTOM_GPIO_H
5         select ARCH_USE_CMPXCHG_LOCKREF
6         select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
7         select ARCH_WANT_OPTIONAL_GPIOLIB
8         select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
9         select ARCH_WANT_FRAME_POINTERS
10         select ARM_AMBA
11         select ARM_ARCH_TIMER
12         select ARM_GIC
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_IOMAP
21         select GENERIC_IRQ_PROBE
22         select GENERIC_IRQ_SHOW
23         select GENERIC_SCHED_CLOCK
24         select GENERIC_SMP_IDLE_THREAD
25         select GENERIC_STRNCPY_FROM_USER
26         select GENERIC_STRNLEN_USER
27         select GENERIC_TIME_VSYSCALL
28         select HARDIRQS_SW_RESEND
29         select GENERIC_PCI_IOMAP
30         select HAVE_ARCH_JUMP_LABEL
31         select HAVE_ARCH_TRACEHOOK
32         select HAVE_DEBUG_BUGVERBOSE
33         select HAVE_DEBUG_KMEMLEAK
34         select HAVE_DMA_API_DEBUG
35         select HAVE_DMA_ATTRS
36         select HAVE_DMA_CONTIGUOUS if MMU
37         select HAVE_EFFICIENT_UNALIGNED_ACCESS
38         select HAVE_GENERIC_DMA_COHERENT
39         select HAVE_GENERIC_HARDIRQS
40         select HAVE_HW_BREAKPOINT if PERF_EVENTS
41         select HAVE_MEMBLOCK
42         select HAVE_PATA_PLATFORM
43         select HAVE_PERF_EVENTS
44         select HAVE_PERF_REGS
45         select HAVE_PERF_USER_STACK_DUMP
46         select IRQ_DOMAIN
47         select MODULES_USE_ELF_RELA
48         select NO_BOOTMEM
49         select OF
50         select OF_EARLY_FLATTREE
51         select PERF_USE_VMALLOC
52         select POWER_RESET
53         select POWER_SUPPLY
54         select RTC_LIB
55         select SPARSE_IRQ
56         select SYSCTL_EXCEPTION_TRACE
57         help
58           ARM 64-bit (AArch64) Linux support.
59
60 trysource ../kernel-t186/arch/arm64/Kconfig
61
62 config ARCH_TEGRA_18x_SOC
63         bool "Tegra 18x family SOC Kconfig placeholder"
64         select ARCH_TEGRA_18x_SOC_PRIVATE
65         help
66           Kconfig placeholder for NVIDIA Tegra18x family of SoCs
67
68 config NEED_MACH_MEMORY_H
69     bool
70     help
71       Select this when mach/memory.h is required to provide special
72       definitions for this platform.  The need for mach/memory.h should
73       be avoided when possible.
74
75 config ARM64_MACH_FRAMEWORK
76         def_bool y
77         depends on ARCH_TEGRA_12x_SOC || ARCH_TEGRA_21x_SOC
78         help
79           Enable support for the ARM64 machine framework. The machine framework
80           provides hooks for vendors to provide customized machine init
81           routines. WARNING: This feature will be deperacted for future chips.
82           DO NOT enable this feature for future chips.
83
84 config 64BIT
85         def_bool y
86
87 config ARCH_PHYS_ADDR_T_64BIT
88         def_bool y
89
90 config MMU
91         def_bool y
92
93 config NO_IOPORT
94         bool
95
96 config STACKTRACE_SUPPORT
97         def_bool y
98
99 config LOCKDEP_SUPPORT
100         def_bool y
101
102 config TRACE_IRQFLAGS_SUPPORT
103         def_bool y
104
105 config GENERIC_LOCKBREAK
106         def_bool y
107         depends on SMP && PREEMPT
108
109 config RWSEM_GENERIC_SPINLOCK
110         def_bool y
111
112 config ARM64_SIMPLE_SPINLOCK
113         def_bool n
114         help
115           The simple locks are designed to be simpler, faster, and more power
116           efficent than the normal locks when there are not many cores
117           contending for the lock. It does this by minimizing the time before
118           executing wfe in the contention case while minimizing the work in the
119           uncontended case.
120
121 config GENERIC_HWEIGHT
122         def_bool y
123
124 config GENERIC_CSUM
125         def_bool y
126
127 config GENERIC_CALIBRATE_DELAY
128         def_bool y
129
130 config ZONE_DMA32
131         def_bool y
132
133 config ARCH_DMA_ADDR_T_64BIT
134         def_bool y
135
136 config NEED_DMA_MAP_STATE
137         def_bool y
138
139 config ARM_HAS_SG_CHAIN
140         def_bool y
141
142 config NEED_SG_DMA_LENGTH
143         def_bool y
144
145 config SWIOTLB
146         def_bool y if !ARM_DMA_USE_IOMMU
147
148 config IOMMU_HELPER
149         def_bool SWIOTLB
150
151 config ARM_DMA_USE_IOMMU
152         select NEED_SG_DMA_LENGTH
153         select ARM_HAS_SG_CHAIN
154         bool
155
156 config MULTI_IRQ_HANDLER
157         bool
158         help
159           Allow each machine to specify it's own IRQ handler at run time.
160 config KERNEL_MODE_NEON
161         def_bool y
162
163 config KERNEL_MODE_NEON
164         def_bool y
165
166 source "init/Kconfig"
167
168 source "kernel/Kconfig.freezer"
169
170 menu "Platform selection"
171
172 config ARCH_VEXPRESS
173         bool "ARMv8 software model (Versatile Express)"
174         select ARCH_REQUIRE_GPIOLIB
175         select COMMON_CLK_VERSATILE
176         select POWER_RESET_VEXPRESS
177         select VEXPRESS_CONFIG
178         help
179           This enables support for the ARMv8 software model (Versatile
180           Express).
181
182 config ARCH_TEGRA
183         bool "NVIDIA Tegra"
184         select CLKDEV_LOOKUP
185         select CLKSRC_MMIO
186         select GENERIC_CLOCKEVENTS
187         select GENERIC_GPIO
188         select HAVE_CLK
189         select HAVE_SMP
190         select NEED_MACH_MEMORY_H
191         select PCI
192         help
193           This enables support for NVIDIA Tegra based systems (Tegra APX,
194           Tegra 6xx and Tegra 2 series).
195
196 source "arch/arm64/mach-tegra/Kconfig"
197
198 endmenu
199
200 menu "Bus support"
201
202 config ARM_AMBA
203         bool
204
205 config PCI
206         bool "PCI support" if MIGHT_HAVE_PCI
207         help
208           Find out whether you have a PCI motherboard. PCI is the name of a
209           bus system, i.e. the way the CPU talks to the other stuff inside
210           your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
211           VESA. If you have PCI, say Y, otherwise N.
212
213 source "drivers/pci/Kconfig"
214
215 source "drivers/pci/pcie/Kconfig"
216
217 endmenu
218
219 menu "Kernel Features"
220
221 config ARM64_64K_PAGES
222         bool "Enable 64KB pages support"
223         help
224           This feature enables 64KB pages support (4KB by default)
225           allowing only two levels of page tables and faster TLB
226           look-up. AArch32 emulation is not available when this feature
227           is enabled.
228
229 config CPU_BIG_ENDIAN
230        bool "Build big-endian kernel"
231        help
232          Say Y if you plan on running a kernel in big-endian mode.
233
234 config SMP
235         bool "Symmetric Multi-Processing"
236         help
237           This enables support for systems with more than one CPU.  If
238           you say N here, the kernel will run on single and
239           multiprocessor machines, but will use only one CPU of a
240           multiprocessor machine. If you say Y here, the kernel will run
241           on many, but not all, single processor machines. On a single
242           processor machine, the kernel will run faster if you say N
243           here.
244
245           If you don't know what to do here, say N.
246
247 config NR_CPUS
248         int "Maximum number of CPUs (2-32)"
249         range 2 32
250         depends on SMP
251         # These have to remain sorted largest to smallest
252         default "8"
253
254 config HOTPLUG_CPU
255         bool "Support for hot-pluggable CPUs"
256         depends on SMP && HOTPLUG
257         help
258           Say Y here to experiment with turning CPUs off and on.  CPUs
259           can be controlled through /sys/devices/system/cpu.
260
261           If you don't know what to do here, say N.
262
263 config HOTPLUG_CPU0
264         bool "Support for CPU0 hotplug"
265         depends on HOTPLUG_CPU
266         default n
267         help
268           CPU0 hotplug is not supported on all arm64 platforms. Select Y to
269           enable CPU0 hotplug. If you're unsure, leave CPU0 hotplug disabled.
270
271 config SWP_EMULATE
272         bool "Emulate SWP/SWPB instructions"
273         help
274           ARMv6 architecture deprecates use of the SWP/SWPB instructions. ARMv8
275           oblosetes the use of SWP/SWPB instructions. ARMv7 multiprocessing
276           extensions introduce the ability to disable these instructions,
277           triggering an undefined instruction exception when executed. Say Y
278           here to enable software emulation of these instructions for userspace
279           (not kernel) using LDREX/STREX. Also creates /proc/cpu/swp_emulation
280           for statistics.
281
282           In some older versions of glibc [<=2.8] SWP is used during futex
283           trylock() operations with the assumption that the code will not
284           be preempted. This invalid assumption may be more likely to fail
285           with SWP emulation enabled, leading to deadlock of the user
286           application.
287
288           NOTE: when accessing uncached shared regions, LDREX/STREX rely
289           on an external transaction monitoring block called a global
290           monitor to maintain update atomicity. If your system does not
291           implement a global monitor, this option can cause programs that
292           perform SWP operations to uncached memory to deadlock.
293
294           If unsure, say Y.
295
296 source kernel/Kconfig.preempt
297
298 config ARCH_NR_GPIO
299         int
300         default 1024 if ARCH_TEGRA
301         default 0
302         help
303
304           Maximum number of GPIOs in the system.
305           If unsure, leave the default value.
306
307 config HZ
308         int
309         default 100
310
311 config ARCH_HAS_HOLES_MEMORYMODEL
312         def_bool y if SPARSEMEM
313
314 config ARCH_SPARSEMEM_ENABLE
315         def_bool y
316         select SPARSEMEM_VMEMMAP_ENABLE
317
318 config ARCH_SPARSEMEM_DEFAULT
319         def_bool ARCH_SPARSEMEM_ENABLE
320
321 config ARCH_SELECT_MEMORY_MODEL
322         def_bool ARCH_SPARSEMEM_ENABLE
323
324 config HAVE_ARCH_PFN_VALID
325         def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM
326
327 config HW_PERF_EVENTS
328         bool "Enable hardware performance counter support for perf events"
329         depends on PERF_EVENTS
330         default y
331         help
332           Enable hardware performance counter support for perf events. If
333           disabled, perf events will use software events only.
334
335 config ARMV7_COMPAT
336         bool "Kernel support for ARMv7 applications"
337         depends on COMPAT
338         select SWP_EMULATE
339         help
340          This option enables features that allow that ran on an ARMv7 or older
341          processor to continue functioning.
342
343          If you want to execute ARMv7 applications, say Y
344
345 config ARMV7_COMPAT_CPUINFO
346         bool "Report backwards compatible cpu features in /proc/cpuinfo"
347         depends on ARMV7_COMPAT
348         default y
349         help
350          This option makes /proc/cpuinfo list CPU features that an ARMv7 or
351          earlier kernel would report, but are not optional on an ARMv8 or later
352          processor.
353
354          If you want to execute ARMv7 applications, say Y
355
356 config ARMV7_COMPAT_CP15_BARRIER
357         bool "Allow applications to use the CP15 barrier operations"
358         depends on ARMV7_COMPAT
359         default y
360         help
361          This option allows applications to use deprecated CP15 barrier
362          instructions. This is useful because this was the only way to create
363          a barrier on older ARM processors.
364
365          If you want to execute ARMv7 applications, say Y
366
367 source "mm/Kconfig"
368
369 endmenu
370
371 menu "Boot options"
372
373 config CMDLINE
374         string "Default kernel command string"
375         default ""
376         help
377           Provide a set of default command-line options at build time by
378           entering them here. As a minimum, you should specify the the
379           root device (e.g. root=/dev/nfs).
380
381 config CMDLINE_FORCE
382         bool "Always use the default kernel command string"
383         help
384           Always use the default kernel command string, even if the boot
385           loader passes other arguments to the kernel.
386           This is useful if you cannot or don't want to change the
387           command-line options your boot loader passes to the kernel.
388
389 endmenu
390
391 menu "Userspace binary formats"
392
393 source "fs/Kconfig.binfmt"
394
395 config COMPAT
396         bool "Kernel support for 32-bit EL0"
397         depends on !ARM64_64K_PAGES
398         select COMPAT_BINFMT_ELF
399         select HAVE_UID16
400         select OLD_SIGSUSPEND3
401         select COMPAT_OLD_SIGACTION
402         help
403           This option enables support for a 32-bit EL0 running under a 64-bit
404           kernel at EL1. AArch32-specific components such as system calls,
405           the user helper functions, VFP support and the ptrace interface are
406           handled appropriately by the kernel.
407
408           If you want to execute 32-bit userspace applications, say Y.
409
410 config SYSVIPC_COMPAT
411         def_bool y
412         depends on COMPAT && SYSVIPC
413
414 endmenu
415
416 menu "Power management options"
417
418 source "kernel/power/Kconfig"
419
420 config ARCH_SUSPEND_POSSIBLE
421         def_bool y
422
423 config ARM_CPU_SUSPEND
424         def_bool y
425
426 config ARM64_CPU_SUSPEND
427         bool "ARM64 CPU suspend"
428         help
429           This option enables cpu suspend using cpu_ops.
430
431 endmenu
432
433 menu "CPU Power Management"
434
435 source "drivers/cpufreq/Kconfig"
436
437 source "drivers/cpuidle/Kconfig"
438
439 source "drivers/cpuquiet/Kconfig"
440
441 endmenu
442
443 source "net/Kconfig"
444
445 source "drivers/Kconfig"
446
447 source "fs/Kconfig"
448
449 source "arch/arm64/Kconfig.debug"
450
451 source "security/Kconfig"
452
453 source "crypto/Kconfig"
454
455 source "lib/Kconfig"
456
457 source "drivers/firmware/tegra/Kconfig"