blob: 59cf0b911898c6b800d375eb4c45d8f356e3547d [file] [log] [blame]
Chris Metcalf867e3592010-05-28 23:09:12 -04001# For a description of the syntax of this configuration file,
Chris Metcalf5fb682b2011-02-28 15:58:39 -05002# see Documentation/kbuild/kconfig-language.txt.
Chris Metcalf867e3592010-05-28 23:09:12 -04003
Thomas Gleixner8df274062011-01-19 20:44:43 +01004config TILE
5 def_bool y
Zhigang Lu8d61dd72014-01-28 10:03:50 +08006 select HAVE_PERF_EVENTS
7 select USE_PMC if PERF_EVENTS
Chris Metcalf41bb38f2012-06-15 15:23:06 -04008 select HAVE_DMA_ATTRS
9 select HAVE_DMA_API_DEBUG
Thomas Gleixner8df274062011-01-19 20:44:43 +010010 select HAVE_KVM if !TILEGX
11 select GENERIC_FIND_FIRST_BIT
Catalin Marinas7ac57a82012-10-08 16:28:16 -070012 select SYSCTL_EXCEPTION_TRACE
Thomas Gleixner8df274062011-01-19 20:44:43 +010013 select CC_OPTIMIZE_FOR_SIZE
Catalin Marinasb69ec422012-10-08 16:28:11 -070014 select HAVE_DEBUG_KMEMLEAK
Thomas Gleixner8df274062011-01-19 20:44:43 +010015 select GENERIC_IRQ_PROBE
16 select GENERIC_PENDING_IRQ if SMP
Thomas Gleixner61a16742011-03-25 14:21:17 +000017 select GENERIC_IRQ_SHOW
Catalin Marinas9b2a60c2012-10-08 16:28:13 -070018 select HAVE_DEBUG_BUGVERBOSE
Stephen Rothwell4febd952013-03-07 15:48:16 +110019 select VIRT_TO_BUS
Chris Metcalff133ecc2011-05-26 12:40:09 -040020 select SYS_HYPERVISOR
Stephen Boyd446f24d2013-04-30 15:28:42 -070021 select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
Chris Metcalf8d695142012-03-27 13:47:57 -040022 select ARCH_HAVE_NMI_SAFE_CMPXCHG
Anna-Maria Gleixner4ec008d2012-05-18 16:45:54 +000023 select GENERIC_CLOCKEVENTS
David Howells786d35d2012-09-28 14:31:03 +093024 select MODULES_USE_ELF_RELA
Simon Marchi969f6fe2012-12-22 00:21:12 -050025 select HAVE_ARCH_TRACEHOOK
Simon Marchief567f22013-01-21 19:54:57 -050026 select HAVE_SYSCALL_TRACEPOINTS
Chris Metcalfadf6d9b2013-02-01 12:37:48 -050027 select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
Dave Hansend1a1dc02013-07-01 13:04:42 -070028 select HAVE_DEBUG_STACKOVERFLOW
Chris Metcalf49cf78e2013-08-12 15:00:51 -040029 select ARCH_WANT_FRAME_POINTERS
Chris Metcalf49e4e152015-03-23 14:23:58 -040030 select HAVE_CONTEXT_TRACKING
Borislav Petkovb01aec92015-05-21 19:59:31 +020031 select EDAC_SUPPORT
Thomas Gleixner8df274062011-01-19 20:44:43 +010032
33# FIXME: investigate whether we need/want these options.
34# select HAVE_IOREMAP_PROT
Chris Metcalf5fb682b2011-02-28 15:58:39 -050035# select HAVE_OPTPROBES
36# select HAVE_REGS_AND_STACK_ACCESS_API
37# select HAVE_HW_BREAKPOINT
38# select PERF_EVENTS
39# select HAVE_USER_RETURN_NOTIFIER
40# config NO_BOOTMEM
41# config ARCH_SUPPORTS_DEBUG_PAGEALLOC
42# config HUGETLB_PAGE_SIZE_VARIABLE
Thomas Gleixner8df274062011-01-19 20:44:43 +010043
Chris Metcalf867e3592010-05-28 23:09:12 -040044config MMU
45 def_bool y
46
47config GENERIC_CSUM
48 def_bool y
49
Chris Metcalf867e3592010-05-28 23:09:12 -040050config HAVE_ARCH_ALLOC_REMAP
51 def_bool y
52
53config HAVE_SETUP_PER_CPU_AREA
54 def_bool y
55
56config NEED_PER_CPU_PAGE_FIRST_CHUNK
Chris Metcalf5fb682b2011-02-28 15:58:39 -050057 def_bool y
Chris Metcalf867e3592010-05-28 23:09:12 -040058
59config SYS_SUPPORTS_HUGETLBFS
60 def_bool y
61
Chris Metcalf621b1952012-04-01 14:04:21 -040062# Support for additional huge page sizes besides HPAGE_SIZE.
63# The software support is currently only present in the TILE-Gx
64# hypervisor. TILEPro in any case does not support page sizes
65# larger than the default HPAGE_SIZE.
66config HUGETLB_SUPER_PAGES
67 depends on HUGETLB_PAGE && TILEGX
68 def_bool y
69
Chris Metcalf4a556f42013-08-07 15:33:32 -040070config GENERIC_TIME_VSYSCALL
71 def_bool y
72
Zhigang Lu8e3441e2014-01-27 15:11:07 +080073# Enable PMC if PERF_EVENTS, OPROFILE, or WATCHPOINTS are enabled.
74config USE_PMC
75 bool
76
Lucas De Marchi25985ed2011-03-30 22:57:33 -030077# FIXME: tilegx can implement a more efficient rwsem.
Chris Metcalf867e3592010-05-28 23:09:12 -040078config RWSEM_GENERIC_SPINLOCK
79 def_bool y
80
Chris Metcalf867e3592010-05-28 23:09:12 -040081# We only support gcc 4.4 and above, so this should work.
82config ARCH_SUPPORTS_OPTIMIZED_INLINING
83 def_bool y
84
85config ARCH_PHYS_ADDR_T_64BIT
86 def_bool y
87
FUJITA Tomonorid31eb512010-10-27 15:32:58 -070088config ARCH_DMA_ADDR_T_64BIT
89 def_bool y
90
Chris Metcalf3d1e8a82012-03-27 13:53:30 -040091config NEED_DMA_MAP_STATE
92 def_bool y
93
Chris Metcalf41bb38f2012-06-15 15:23:06 -040094config ARCH_HAS_DMA_SET_COHERENT_MASK
95 bool
96
Chris Metcalf867e3592010-05-28 23:09:12 -040097config LOCKDEP_SUPPORT
98 def_bool y
99
100config STACKTRACE_SUPPORT
101 def_bool y
102 select STACKTRACE
103
104# We use discontigmem for now; at some point we may want to switch
105# to sparsemem (Tilera bug 7996).
106config ARCH_DISCONTIGMEM_ENABLE
107 def_bool y
108
109config ARCH_DISCONTIGMEM_DEFAULT
110 def_bool y
111
112config TRACE_IRQFLAGS_SUPPORT
113 def_bool y
114
115config STRICT_DEVMEM
116 def_bool y
117
118# SMP is required for Tilera Linux.
119config SMP
120 def_bool y
121
Chris Metcalf867e3592010-05-28 23:09:12 -0400122config HVC_TILE
Joe Millenbach4f73bc42013-01-17 22:44:22 -0800123 depends on TTY
Chris Metcalf867e3592010-05-28 23:09:12 -0400124 select HVC_DRIVER
Chris Metcalfbda0f5b2013-08-06 14:11:21 -0400125 select HVC_IRQ if TILEGX
Chris Metcalf867e3592010-05-28 23:09:12 -0400126 def_bool y
127
Chris Metcalf867e3592010-05-28 23:09:12 -0400128config TILEGX
Tony Lua61fd5e2013-08-09 13:26:09 -0400129 bool "Building for TILE-Gx (64-bit) processor"
Thomas Gleixnerb26d8512014-05-07 15:44:16 +0000130 select SPARSE_IRQ
131 select GENERIC_IRQ_LEGACY_ALLOC_HWIRQ
Tony Lua61fd5e2013-08-09 13:26:09 -0400132 select HAVE_FUNCTION_TRACER
Tony Lua61fd5e2013-08-09 13:26:09 -0400133 select HAVE_FUNCTION_GRAPH_TRACER
134 select HAVE_DYNAMIC_FTRACE
135 select HAVE_FTRACE_MCOUNT_RECORD
Tony Lu3fa17c32013-08-09 15:08:57 -0400136 select HAVE_KPROBES
137 select HAVE_KRETPROBES
Chris Metcalf81571072013-08-28 19:53:17 -0400138 select HAVE_ARCH_KGDB
Chris Metcalf3e247652014-08-01 15:26:46 -0400139 select ARCH_SUPPORTS_ATOMIC_RMW
Chris Metcalf867e3592010-05-28 23:09:12 -0400140
Chris Metcalfacd1a192012-04-07 15:58:24 -0400141config TILEPRO
142 def_bool !TILEGX
143
Chris Metcalf867e3592010-05-28 23:09:12 -0400144config 64BIT
Chris Metcalfacd1a192012-04-07 15:58:24 -0400145 def_bool TILEGX
Chris Metcalf867e3592010-05-28 23:09:12 -0400146
147config ARCH_DEFCONFIG
148 string
Chris Metcalf3d1e8a82012-03-27 13:53:30 -0400149 default "arch/tile/configs/tilepro_defconfig" if !TILEGX
Chris Metcalf867e3592010-05-28 23:09:12 -0400150 default "arch/tile/configs/tilegx_defconfig" if TILEGX
151
Kirill A. Shutemov909d45e2015-04-14 15:46:08 -0700152config PGTABLE_LEVELS
153 int
154 default 3 if 64BIT
155 default 2
156
Chris Metcalf867e3592010-05-28 23:09:12 -0400157source "init/Kconfig"
158
Chris Metcalf99a844b2013-01-31 21:21:36 -0500159source "kernel/Kconfig.freezer"
160
Chris Metcalf867e3592010-05-28 23:09:12 -0400161menu "Tilera-specific configuration"
162
163config NR_CPUS
164 int "Maximum number of tiles (2-255)"
165 range 2 255
166 depends on SMP
167 default "64"
168 ---help---
169 Building with 64 is the recommended value, but a slightly
170 smaller kernel memory footprint results from using a smaller
171 value on chips with fewer tiles.
172
Chris Metcalfd5d14ed2012-03-29 13:58:43 -0400173if TILEGX
174
175choice
176 prompt "Kernel page size"
177 default PAGE_SIZE_64KB
178 help
179 This lets you select the page size of the kernel. For best
180 performance on memory-intensive applications, a page size of 64KB
181 is recommended. For workloads involving many small files, many
182 connections, etc., it may be better to select 16KB, which uses
183 memory more efficiently at some cost in TLB performance.
184
185 Note that this option is TILE-Gx specific; currently
186 TILEPro page size is set by rebuilding the hypervisor.
187
188config PAGE_SIZE_16KB
189 bool "16KB"
190
191config PAGE_SIZE_64KB
192 bool "64KB"
193
194endchoice
195
196endif
197
Chris Metcalf867e3592010-05-28 23:09:12 -0400198source "kernel/Kconfig.hz"
199
200config KEXEC
201 bool "kexec system call"
202 ---help---
203 kexec is a system call that implements the ability to shutdown your
204 current kernel, and to start another kernel. It is like a reboot
205 but it is independent of the system firmware. It is used
206 to implement the "mboot" Tilera booter.
207
208 The name comes from the similarity to the exec system call.
209
210config COMPAT
211 bool "Support 32-bit TILE-Gx binaries in addition to 64-bit"
212 depends on TILEGX
213 select COMPAT_BINFMT_ELF
214 default y
215 ---help---
216 If enabled, the kernel will support running TILE-Gx binaries
217 that were built with the -m32 option.
218
219config SYSVIPC_COMPAT
220 def_bool y
221 depends on COMPAT && SYSVIPC
222
Chris Metcalfd7c96612013-08-15 16:23:24 -0400223# We do not currently support disabling HIGHMEM on tilepro.
Chris Metcalf867e3592010-05-28 23:09:12 -0400224config HIGHMEM
225 bool # "Support for more than 512 MB of RAM"
226 default !TILEGX
227 ---help---
228 Linux can use the full amount of RAM in the system by
229 default. However, the address space of TILE processors is
230 only 4 Gigabytes large. That means that, if you have a large
231 amount of physical memory, not all of it can be "permanently
232 mapped" by the kernel. The physical memory that's not
233 permanently mapped is called "high memory".
234
235 If you are compiling a kernel which will never run on a
236 machine with more than 512 MB total physical RAM, answer
237 "false" here. This will result in the kernel mapping all of
238 physical memory into the top 1 GB of virtual memory space.
239
240 If unsure, say "true".
241
Chris Metcalfeef015c2012-05-09 12:26:30 -0400242config ZONE_DMA
243 def_bool y
244
Chris Metcalf41bb38f2012-06-15 15:23:06 -0400245config IOMMU_HELPER
246 bool
247
248config NEED_SG_DMA_LENGTH
249 bool
250
251config SWIOTLB
252 bool
253 default TILEGX
254 select IOMMU_HELPER
255 select NEED_SG_DMA_LENGTH
256 select ARCH_HAS_DMA_SET_COHERENT_MASK
257
Chris Metcalf867e3592010-05-28 23:09:12 -0400258# We do not currently support disabling NUMA.
259config NUMA
260 bool # "NUMA Memory Allocation and Scheduler Support"
261 depends on SMP && DISCONTIGMEM
262 default y
263 ---help---
264 NUMA memory allocation is required for TILE processors
265 unless booting with memory striping enabled in the
266 hypervisor, or with only a single memory controller.
267 It is recommended that this option always be enabled.
268
269config NODES_SHIFT
270 int "Log base 2 of the max number of memory controllers"
271 default 2
272 depends on NEED_MULTIPLE_NODES
273 ---help---
274 By default, 2, i.e. 2^2 == 4 DDR2 controllers.
275 In a system with more controllers, this value should be raised.
276
Chris Metcalf867e3592010-05-28 23:09:12 -0400277choice
278 depends on !TILEGX
David Rientjes6a108a12011-01-20 14:44:16 -0800279 prompt "Memory split" if EXPERT
Chris Metcalf867e3592010-05-28 23:09:12 -0400280 default VMSPLIT_3G
281 ---help---
282 Select the desired split between kernel and user memory.
283
284 If the address range available to the kernel is less than the
285 physical memory installed, the remaining memory will be available
286 as "high memory". Accessing high memory is a little more costly
287 than low memory, as it needs to be mapped into the kernel first.
288 Note that increasing the kernel address space limits the range
289 available to user programs, making the address space there
290 tighter. Selecting anything other than the default 3G/1G split
291 will also likely make your kernel incompatible with binary-only
292 kernel modules.
293
294 If you are not absolutely sure what you are doing, leave this
295 option alone!
296
Chris Metcalf55928402010-09-13 08:50:09 -0400297 config VMSPLIT_3_75G
Chris Metcalf867e3592010-05-28 23:09:12 -0400298 bool "3.75G/0.25G user/kernel split (no kernel networking)"
Chris Metcalf55928402010-09-13 08:50:09 -0400299 config VMSPLIT_3_5G
Chris Metcalf867e3592010-05-28 23:09:12 -0400300 bool "3.5G/0.5G user/kernel split"
301 config VMSPLIT_3G
302 bool "3G/1G user/kernel split"
Chris Metcalf09c17ea2011-02-28 16:01:09 -0500303 config VMSPLIT_2_75G
304 bool "2.75G/1.25G user/kernel split (for full 1G low memory)"
305 config VMSPLIT_2_5G
306 bool "2.5G/1.5G user/kernel split"
307 config VMSPLIT_2_25G
308 bool "2.25G/1.75G user/kernel split"
Chris Metcalf867e3592010-05-28 23:09:12 -0400309 config VMSPLIT_2G
310 bool "2G/2G user/kernel split"
311 config VMSPLIT_1G
312 bool "1G/3G user/kernel split"
313endchoice
314
315config PAGE_OFFSET
316 hex
Chris Metcalf884197f2012-03-27 13:56:04 -0400317 depends on !64BIT
Chris Metcalf55928402010-09-13 08:50:09 -0400318 default 0xF0000000 if VMSPLIT_3_75G
319 default 0xE0000000 if VMSPLIT_3_5G
Chris Metcalf09c17ea2011-02-28 16:01:09 -0500320 default 0xB0000000 if VMSPLIT_2_75G
321 default 0xA0000000 if VMSPLIT_2_5G
322 default 0x90000000 if VMSPLIT_2_25G
Chris Metcalf867e3592010-05-28 23:09:12 -0400323 default 0x80000000 if VMSPLIT_2G
324 default 0x40000000 if VMSPLIT_1G
325 default 0xC0000000
326
327source "mm/Kconfig"
328
Chris Metcalfbc1a2982013-08-07 11:36:54 -0400329source "kernel/Kconfig.preempt"
330
Chris Metcalf867e3592010-05-28 23:09:12 -0400331config CMDLINE_BOOL
332 bool "Built-in kernel command line"
333 default n
334 ---help---
335 Allow for specifying boot arguments to the kernel at
336 build time. On some systems (e.g. embedded ones), it is
337 necessary or convenient to provide some or all of the
338 kernel boot arguments with the kernel itself (that is,
339 to not rely on the boot loader to provide them.)
340
341 To compile command line arguments into the kernel,
342 set this option to 'Y', then fill in the
343 the boot arguments in CONFIG_CMDLINE.
344
345 Systems with fully functional boot loaders (e.g. mboot, or
346 if booting over PCI) should leave this option set to 'N'.
347
348config CMDLINE
349 string "Built-in kernel command string"
350 depends on CMDLINE_BOOL
351 default ""
352 ---help---
353 Enter arguments here that should be compiled into the kernel
354 image and used at boot time. If the boot loader provides a
355 command line at boot time, it is appended to this string to
356 form the full kernel command line, when the system boots.
357
358 However, you can use the CONFIG_CMDLINE_OVERRIDE option to
359 change this behavior.
360
361 In most cases, the command line (whether built-in or provided
362 by the boot loader) should specify the device for the root
363 file system.
364
365config CMDLINE_OVERRIDE
366 bool "Built-in command line overrides boot loader arguments"
367 default n
368 depends on CMDLINE_BOOL
369 ---help---
370 Set this option to 'Y' to have the kernel ignore the boot loader
371 command line, and use ONLY the built-in command line.
372
373 This is used to work around broken boot loaders. This should
374 be set to 'N' under normal conditions.
375
376config VMALLOC_RESERVE
377 hex
Chris Metcalfad2a4bb2013-09-16 13:02:57 -0400378 default 0x2000000
Chris Metcalf867e3592010-05-28 23:09:12 -0400379
Chris Metcalf9f9c0382010-06-25 17:00:56 -0400380config HARDWALL
381 bool "Hardwall support to allow access to user dynamic network"
382 default y
383
Chris Metcalfa78c9422010-10-14 16:23:03 -0400384config KERNEL_PL
385 int "Processor protection level for kernel"
386 range 1 2
Chris Metcalfc5399142013-05-02 15:29:04 -0400387 default 2 if TILEGX
388 default 1 if !TILEGX
Chris Metcalfa78c9422010-10-14 16:23:03 -0400389 ---help---
Chris Metcalfc5399142013-05-02 15:29:04 -0400390 Since MDE 4.2, the Tilera hypervisor runs the kernel
391 at PL2 by default. If running under an older hypervisor,
392 or as a KVM guest, you must run at PL1. (The current
393 hypervisor may also be recompiled with "make HV_PL=2" to
394 allow it to run a kernel at PL1, but clients running at PL1
395 are not expected to be supported indefinitely.)
396
397 If you're not sure, don't change the default.
Chris Metcalfa78c9422010-10-14 16:23:03 -0400398
Chris Metcalf37b82b52012-04-04 16:39:58 -0400399source "arch/tile/gxio/Kconfig"
400
Chris Metcalf867e3592010-05-28 23:09:12 -0400401endmenu # Tilera-specific configuration
402
403menu "Bus options"
404
Chris Metcalff02cbbe2010-11-02 12:05:10 -0400405config PCI
406 bool "PCI support"
407 default y
408 select PCI_DOMAINS
Michael S. Tsirkin84550122011-11-29 20:42:56 +0200409 select GENERIC_PCI_IOMAP
Chris Metcalf12962262012-04-07 17:10:17 -0400410 select TILE_GXIO_TRIO if TILEGX
Chris Metcalf12962262012-04-07 17:10:17 -0400411 select PCI_MSI if TILEGX
Chris Metcalff02cbbe2010-11-02 12:05:10 -0400412 ---help---
413 Enable PCI root complex support, so PCIe endpoint devices can
414 be attached to the Tile chip. Many, but not all, PCI devices
415 are supported under Tilera's root complex driver.
416
417config PCI_DOMAINS
418 bool
419
Chris Metcalf867e3592010-05-28 23:09:12 -0400420config NO_IOMEM
421 def_bool !PCI
422
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700423config NO_IOPORT_MAP
Chris Metcalf867e3592010-05-28 23:09:12 -0400424 def_bool !PCI
425
Chris Metcalfcf89c422013-08-02 16:45:22 -0400426config TILE_PCI_IO
427 bool "PCI I/O space support"
428 default n
429 depends on PCI
430 depends on TILEGX
431 ---help---
432 Enable PCI I/O space support on TILEGx. Since the PCI I/O space
433 is used by few modern PCIe endpoint devices, its support is disabled
434 by default to save the TRIO PIO Region resource for other purposes.
435
Chris Metcalf867e3592010-05-28 23:09:12 -0400436source "drivers/pci/Kconfig"
437
Chris Metcalff62f73f2013-08-05 13:20:44 -0400438source "drivers/pci/pcie/Kconfig"
439
Chris Metcalf47fc28b2012-05-09 13:58:14 -0400440config TILE_USB
441 tristate "Tilera USB host adapter support"
442 default y
443 depends on USB
444 depends on TILEGX
445 select TILE_GXIO_USB_HOST
446 ---help---
447 Provides USB host adapter support for the built-in EHCI and OHCI
448 interfaces on TILE-Gx chips.
449
Chris Metcalf867e3592010-05-28 23:09:12 -0400450source "drivers/pci/hotplug/Kconfig"
451
452endmenu
453
454menu "Executable file formats"
455
Chris Metcalf867e3592010-05-28 23:09:12 -0400456source "fs/Kconfig.binfmt"
457
458endmenu
459
460source "net/Kconfig"
461
462source "drivers/Kconfig"
463
464source "fs/Kconfig"
465
466source "arch/tile/Kconfig.debug"
467
468source "security/Kconfig"
469
470source "crypto/Kconfig"
471
472source "lib/Kconfig"
Chris Metcalfa78c9422010-10-14 16:23:03 -0400473
474source "arch/tile/kvm/Kconfig"