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