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