tile: improve stack backtrace
[deliverable/linux.git] / arch / tile / Kconfig
CommitLineData
867e359b 1# For a description of the syntax of this configuration file,
5fb682b0 2# see Documentation/kbuild/kconfig-language.txt.
867e359b 3
8df27406 4config TILE
867e359b 5 def_bool y
8d61dd7d
ZL
6 select HAVE_PERF_EVENTS
7 select USE_PMC if PERF_EVENTS
41bb38fc
CM
8 select HAVE_DMA_ATTRS
9 select HAVE_DMA_API_DEBUG
8df27406
TG
10 select HAVE_KVM if !TILEGX
11 select GENERIC_FIND_FIRST_BIT
7ac57a89 12 select SYSCTL_EXCEPTION_TRACE
8df27406 13 select CC_OPTIMIZE_FOR_SIZE
b69ec42b 14 select HAVE_DEBUG_KMEMLEAK
8df27406
TG
15 select GENERIC_IRQ_PROBE
16 select GENERIC_PENDING_IRQ if SMP
61a16741 17 select GENERIC_IRQ_SHOW
9b2a60c4 18 select HAVE_DEBUG_BUGVERBOSE
4febd95a 19 select VIRT_TO_BUS
f133ecca 20 select SYS_HYPERVISOR
446f24d1 21 select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
8d695143 22 select ARCH_HAVE_NMI_SAFE_CMPXCHG
4ec008d6 23 select GENERIC_CLOCKEVENTS
786d35d4 24 select MODULES_USE_ELF_RELA
969f6fe6 25 select HAVE_ARCH_TRACEHOOK
ef567f25 26 select HAVE_SYSCALL_TRACEPOINTS
47ad7b9b 27 select USER_STACKTRACE_SUPPORT
adf6d9b3 28 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
d1a1dc0b 29 select HAVE_DEBUG_STACKOVERFLOW
49cf78ef 30 select ARCH_WANT_FRAME_POINTERS
49e4e156 31 select HAVE_CONTEXT_TRACKING
5bf6c07a
CM
32 select GENERIC_STRNCPY_FROM_USER
33 select GENERIC_STRNLEN_USER
867e359b 34
8df27406
TG
35# FIXME: investigate whether we need/want these options.
36# select HAVE_IOREMAP_PROT
5fb682b0
CM
37# select HAVE_OPTPROBES
38# select HAVE_REGS_AND_STACK_ACCESS_API
39# select HAVE_HW_BREAKPOINT
40# select PERF_EVENTS
41# select HAVE_USER_RETURN_NOTIFIER
42# config NO_BOOTMEM
43# config ARCH_SUPPORTS_DEBUG_PAGEALLOC
44# config HUGETLB_PAGE_SIZE_VARIABLE
867e359b 45
8df27406 46config MMU
867e359b
CM
47 def_bool y
48
8df27406 49config GENERIC_CSUM
867e359b 50 def_bool y
867e359b 51
867e359b
CM
52config HAVE_ARCH_ALLOC_REMAP
53 def_bool y
54
55config HAVE_SETUP_PER_CPU_AREA
56 def_bool y
57
58config NEED_PER_CPU_PAGE_FIRST_CHUNK
5fb682b0 59 def_bool y
867e359b
CM
60
61config SYS_SUPPORTS_HUGETLBFS
62 def_bool y
63
621b1955
CM
64# Support for additional huge page sizes besides HPAGE_SIZE.
65# The software support is currently only present in the TILE-Gx
66# hypervisor. TILEPro in any case does not support page sizes
67# larger than the default HPAGE_SIZE.
68config HUGETLB_SUPER_PAGES
69 depends on HUGETLB_PAGE && TILEGX
70 def_bool y
71
4a556f4f
CM
72config GENERIC_TIME_VSYSCALL
73 def_bool y
74
8e3441eb
ZL
75# Enable PMC if PERF_EVENTS, OPROFILE, or WATCHPOINTS are enabled.
76config USE_PMC
77 bool
78
25985edc 79# FIXME: tilegx can implement a more efficient rwsem.
867e359b
CM
80config RWSEM_GENERIC_SPINLOCK
81 def_bool y
82
867e359b
CM
83# We only support gcc 4.4 and above, so this should work.
84config ARCH_SUPPORTS_OPTIMIZED_INLINING
85 def_bool y
86
87config ARCH_PHYS_ADDR_T_64BIT
88 def_bool y
89
d31eb519
FT
90config ARCH_DMA_ADDR_T_64BIT
91 def_bool y
92
3d1e8a81
CM
93config NEED_DMA_MAP_STATE
94 def_bool y
95
41bb38fc
CM
96config ARCH_HAS_DMA_SET_COHERENT_MASK
97 bool
98
867e359b
CM
99config LOCKDEP_SUPPORT
100 def_bool y
101
102config STACKTRACE_SUPPORT
103 def_bool y
104 select STACKTRACE
105
106# We use discontigmem for now; at some point we may want to switch
107# to sparsemem (Tilera bug 7996).
108config ARCH_DISCONTIGMEM_ENABLE
109 def_bool y
110
111config ARCH_DISCONTIGMEM_DEFAULT
112 def_bool y
113
114config TRACE_IRQFLAGS_SUPPORT
115 def_bool y
116
117config STRICT_DEVMEM
118 def_bool y
119
120# SMP is required for Tilera Linux.
121config SMP
122 def_bool y
123
867e359b 124config HVC_TILE
4f73bc4d 125 depends on TTY
867e359b 126 select HVC_DRIVER
bda0f5ba 127 select HVC_IRQ if TILEGX
867e359b
CM
128 def_bool y
129
867e359b 130config TILEGX
a61fd5e3 131 bool "Building for TILE-Gx (64-bit) processor"
b26d851f
TG
132 select SPARSE_IRQ
133 select GENERIC_IRQ_LEGACY_ALLOC_HWIRQ
a61fd5e3 134 select HAVE_FUNCTION_TRACER
a61fd5e3
TL
135 select HAVE_FUNCTION_GRAPH_TRACER
136 select HAVE_DYNAMIC_FTRACE
137 select HAVE_FTRACE_MCOUNT_RECORD
3fa17c39
TL
138 select HAVE_KPROBES
139 select HAVE_KRETPROBES
8157107b 140 select HAVE_ARCH_KGDB
3e24765d 141 select ARCH_SUPPORTS_ATOMIC_RMW
867e359b 142
acd1a19e
CM
143config TILEPRO
144 def_bool !TILEGX
145
867e359b 146config 64BIT
acd1a19e 147 def_bool TILEGX
867e359b
CM
148
149config ARCH_DEFCONFIG
150 string
3d1e8a81 151 default "arch/tile/configs/tilepro_defconfig" if !TILEGX
867e359b
CM
152 default "arch/tile/configs/tilegx_defconfig" if TILEGX
153
909d45e6
KS
154config PGTABLE_LEVELS
155 int
156 default 3 if 64BIT
157 default 2
158
867e359b
CM
159source "init/Kconfig"
160
99a844b7
CM
161source "kernel/Kconfig.freezer"
162
867e359b
CM
163menu "Tilera-specific configuration"
164
165config NR_CPUS
166 int "Maximum number of tiles (2-255)"
167 range 2 255
168 depends on SMP
169 default "64"
170 ---help---
171 Building with 64 is the recommended value, but a slightly
172 smaller kernel memory footprint results from using a smaller
173 value on chips with fewer tiles.
174
d5d14ed6
CM
175if TILEGX
176
177choice
178 prompt "Kernel page size"
179 default PAGE_SIZE_64KB
180 help
181 This lets you select the page size of the kernel. For best
182 performance on memory-intensive applications, a page size of 64KB
183 is recommended. For workloads involving many small files, many
184 connections, etc., it may be better to select 16KB, which uses
185 memory more efficiently at some cost in TLB performance.
186
187 Note that this option is TILE-Gx specific; currently
188 TILEPro page size is set by rebuilding the hypervisor.
189
190config PAGE_SIZE_16KB
191 bool "16KB"
192
193config PAGE_SIZE_64KB
194 bool "64KB"
195
196endchoice
197
198endif
199
867e359b
CM
200source "kernel/Kconfig.hz"
201
202config KEXEC
203 bool "kexec system call"
204 ---help---
205 kexec is a system call that implements the ability to shutdown your
206 current kernel, and to start another kernel. It is like a reboot
207 but it is independent of the system firmware. It is used
208 to implement the "mboot" Tilera booter.
209
210 The name comes from the similarity to the exec system call.
211
212config COMPAT
213 bool "Support 32-bit TILE-Gx binaries in addition to 64-bit"
214 depends on TILEGX
215 select COMPAT_BINFMT_ELF
216 default y
217 ---help---
218 If enabled, the kernel will support running TILE-Gx binaries
219 that were built with the -m32 option.
220
221config SYSVIPC_COMPAT
222 def_bool y
223 depends on COMPAT && SYSVIPC
224
d7c96611 225# We do not currently support disabling HIGHMEM on tilepro.
867e359b
CM
226config HIGHMEM
227 bool # "Support for more than 512 MB of RAM"
228 default !TILEGX
229 ---help---
230 Linux can use the full amount of RAM in the system by
231 default. However, the address space of TILE processors is
232 only 4 Gigabytes large. That means that, if you have a large
233 amount of physical memory, not all of it can be "permanently
234 mapped" by the kernel. The physical memory that's not
235 permanently mapped is called "high memory".
236
237 If you are compiling a kernel which will never run on a
238 machine with more than 512 MB total physical RAM, answer
239 "false" here. This will result in the kernel mapping all of
240 physical memory into the top 1 GB of virtual memory space.
241
242 If unsure, say "true".
243
eef015c8
CM
244config ZONE_DMA
245 def_bool y
246
41bb38fc
CM
247config IOMMU_HELPER
248 bool
249
250config NEED_SG_DMA_LENGTH
251 bool
252
253config SWIOTLB
254 bool
255 default TILEGX
256 select IOMMU_HELPER
257 select NEED_SG_DMA_LENGTH
258 select ARCH_HAS_DMA_SET_COHERENT_MASK
259
867e359b
CM
260# We do not currently support disabling NUMA.
261config NUMA
262 bool # "NUMA Memory Allocation and Scheduler Support"
263 depends on SMP && DISCONTIGMEM
264 default y
265 ---help---
266 NUMA memory allocation is required for TILE processors
267 unless booting with memory striping enabled in the
268 hypervisor, or with only a single memory controller.
269 It is recommended that this option always be enabled.
270
271config NODES_SHIFT
272 int "Log base 2 of the max number of memory controllers"
273 default 2
274 depends on NEED_MULTIPLE_NODES
275 ---help---
276 By default, 2, i.e. 2^2 == 4 DDR2 controllers.
277 In a system with more controllers, this value should be raised.
278
867e359b
CM
279choice
280 depends on !TILEGX
6a108a14 281 prompt "Memory split" if EXPERT
867e359b
CM
282 default VMSPLIT_3G
283 ---help---
284 Select the desired split between kernel and user memory.
285
286 If the address range available to the kernel is less than the
287 physical memory installed, the remaining memory will be available
288 as "high memory". Accessing high memory is a little more costly
289 than low memory, as it needs to be mapped into the kernel first.
290 Note that increasing the kernel address space limits the range
291 available to user programs, making the address space there
292 tighter. Selecting anything other than the default 3G/1G split
293 will also likely make your kernel incompatible with binary-only
294 kernel modules.
295
296 If you are not absolutely sure what you are doing, leave this
297 option alone!
298
5592840b 299 config VMSPLIT_3_75G
867e359b 300 bool "3.75G/0.25G user/kernel split (no kernel networking)"
5592840b 301 config VMSPLIT_3_5G
867e359b
CM
302 bool "3.5G/0.5G user/kernel split"
303 config VMSPLIT_3G
304 bool "3G/1G user/kernel split"
09c17eab
CM
305 config VMSPLIT_2_75G
306 bool "2.75G/1.25G user/kernel split (for full 1G low memory)"
307 config VMSPLIT_2_5G
308 bool "2.5G/1.5G user/kernel split"
309 config VMSPLIT_2_25G
310 bool "2.25G/1.75G user/kernel split"
867e359b
CM
311 config VMSPLIT_2G
312 bool "2G/2G user/kernel split"
313 config VMSPLIT_1G
314 bool "1G/3G user/kernel split"
315endchoice
316
317config PAGE_OFFSET
318 hex
884197f7 319 depends on !64BIT
5592840b
CM
320 default 0xF0000000 if VMSPLIT_3_75G
321 default 0xE0000000 if VMSPLIT_3_5G
09c17eab
CM
322 default 0xB0000000 if VMSPLIT_2_75G
323 default 0xA0000000 if VMSPLIT_2_5G
324 default 0x90000000 if VMSPLIT_2_25G
867e359b
CM
325 default 0x80000000 if VMSPLIT_2G
326 default 0x40000000 if VMSPLIT_1G
327 default 0xC0000000
328
329source "mm/Kconfig"
330
bc1a298f
CM
331source "kernel/Kconfig.preempt"
332
867e359b
CM
333config CMDLINE_BOOL
334 bool "Built-in kernel command line"
335 default n
336 ---help---
337 Allow for specifying boot arguments to the kernel at
338 build time. On some systems (e.g. embedded ones), it is
339 necessary or convenient to provide some or all of the
340 kernel boot arguments with the kernel itself (that is,
341 to not rely on the boot loader to provide them.)
342
343 To compile command line arguments into the kernel,
344 set this option to 'Y', then fill in the
345 the boot arguments in CONFIG_CMDLINE.
346
347 Systems with fully functional boot loaders (e.g. mboot, or
348 if booting over PCI) should leave this option set to 'N'.
349
350config CMDLINE
351 string "Built-in kernel command string"
352 depends on CMDLINE_BOOL
353 default ""
354 ---help---
355 Enter arguments here that should be compiled into the kernel
356 image and used at boot time. If the boot loader provides a
357 command line at boot time, it is appended to this string to
358 form the full kernel command line, when the system boots.
359
360 However, you can use the CONFIG_CMDLINE_OVERRIDE option to
361 change this behavior.
362
363 In most cases, the command line (whether built-in or provided
364 by the boot loader) should specify the device for the root
365 file system.
366
367config CMDLINE_OVERRIDE
368 bool "Built-in command line overrides boot loader arguments"
369 default n
370 depends on CMDLINE_BOOL
371 ---help---
372 Set this option to 'Y' to have the kernel ignore the boot loader
373 command line, and use ONLY the built-in command line.
374
375 This is used to work around broken boot loaders. This should
376 be set to 'N' under normal conditions.
377
378config VMALLOC_RESERVE
379 hex
ad2a4bb3 380 default 0x2000000
867e359b 381
9f9c0382
CM
382config HARDWALL
383 bool "Hardwall support to allow access to user dynamic network"
384 default y
385
a78c942d
CM
386config KERNEL_PL
387 int "Processor protection level for kernel"
388 range 1 2
c539914d
CM
389 default 2 if TILEGX
390 default 1 if !TILEGX
a78c942d 391 ---help---
c539914d
CM
392 Since MDE 4.2, the Tilera hypervisor runs the kernel
393 at PL2 by default. If running under an older hypervisor,
394 or as a KVM guest, you must run at PL1. (The current
395 hypervisor may also be recompiled with "make HV_PL=2" to
396 allow it to run a kernel at PL1, but clients running at PL1
397 are not expected to be supported indefinitely.)
398
399 If you're not sure, don't change the default.
a78c942d 400
37b82b5d
CM
401source "arch/tile/gxio/Kconfig"
402
867e359b
CM
403endmenu # Tilera-specific configuration
404
405menu "Bus options"
406
f02cbbe6
CM
407config PCI
408 bool "PCI support"
409 default y
410 select PCI_DOMAINS
84550121 411 select GENERIC_PCI_IOMAP
12962267 412 select TILE_GXIO_TRIO if TILEGX
12962267 413 select PCI_MSI if TILEGX
f02cbbe6
CM
414 ---help---
415 Enable PCI root complex support, so PCIe endpoint devices can
416 be attached to the Tile chip. Many, but not all, PCI devices
417 are supported under Tilera's root complex driver.
418
419config PCI_DOMAINS
420 bool
421
867e359b
CM
422config NO_IOMEM
423 def_bool !PCI
424
ce816fa8 425config NO_IOPORT_MAP
867e359b
CM
426 def_bool !PCI
427
cf89c426
CM
428config TILE_PCI_IO
429 bool "PCI I/O space support"
430 default n
431 depends on PCI
432 depends on TILEGX
433 ---help---
434 Enable PCI I/O space support on TILEGx. Since the PCI I/O space
435 is used by few modern PCIe endpoint devices, its support is disabled
436 by default to save the TRIO PIO Region resource for other purposes.
437
867e359b
CM
438source "drivers/pci/Kconfig"
439
f62f73f6
CM
440source "drivers/pci/pcie/Kconfig"
441
47fc28bf
CM
442config TILE_USB
443 tristate "Tilera USB host adapter support"
444 default y
445 depends on USB
446 depends on TILEGX
447 select TILE_GXIO_USB_HOST
448 ---help---
449 Provides USB host adapter support for the built-in EHCI and OHCI
450 interfaces on TILE-Gx chips.
451
867e359b
CM
452source "drivers/pci/hotplug/Kconfig"
453
454endmenu
455
456menu "Executable file formats"
457
867e359b
CM
458source "fs/Kconfig.binfmt"
459
460endmenu
461
462source "net/Kconfig"
463
464source "drivers/Kconfig"
465
466source "fs/Kconfig"
467
468source "arch/tile/Kconfig.debug"
469
470source "security/Kconfig"
471
472source "crypto/Kconfig"
473
474source "lib/Kconfig"
a78c942d
CM
475
476source "arch/tile/kvm/Kconfig"
This page took 0.230027 seconds and 5 git commands to generate.