arch/tile: handle CLONE_SETTLS in copy_thread(), not user space
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / arch / tile / Kconfig
blobe11b5fcb70ebe07d0bf7fd677a9c61943728d169
1 # For a description of the syntax of this configuration file,
2 # see Documentation/kbuild/config-language.txt.
4 config MMU
5         def_bool y
7 config GENERIC_CSUM
8         def_bool y
10 config GENERIC_HARDIRQS
11         def_bool y
13 config GENERIC_HARDIRQS_NO__DO_IRQ
14         def_bool y
16 config GENERIC_IRQ_PROBE
17         def_bool y
19 config GENERIC_PENDING_IRQ
20         def_bool y
21         depends on GENERIC_HARDIRQS && SMP
23 config SEMAPHORE_SLEEPERS
24         def_bool y
26 config HAVE_ARCH_ALLOC_REMAP
27         def_bool y
29 config HAVE_SETUP_PER_CPU_AREA
30         def_bool y
32 config NEED_PER_CPU_PAGE_FIRST_CHUNK
33         def_bool y
35 config SYS_SUPPORTS_HUGETLBFS
36         def_bool y
38 config GENERIC_TIME
39         def_bool y
41 config GENERIC_CLOCKEVENTS
42         def_bool y
44 # FIXME: tilegx can implement a more efficent rwsem.
45 config RWSEM_GENERIC_SPINLOCK
46         def_bool y
48 # We have a very flat architecture from a migration point of view,
49 # so save boot time by presetting this (particularly useful on tile-sim).
50 config DEFAULT_MIGRATION_COST
51         int
52         default "10000000"
54 # We only support gcc 4.4 and above, so this should work.
55 config ARCH_SUPPORTS_OPTIMIZED_INLINING
56         def_bool y
58 config ARCH_PHYS_ADDR_T_64BIT
59         def_bool y
61 config ARCH_DMA_ADDR_T_64BIT
62         def_bool y
64 config LOCKDEP_SUPPORT
65         def_bool y
67 config STACKTRACE_SUPPORT
68         def_bool y
69         select STACKTRACE
71 # We use discontigmem for now; at some point we may want to switch
72 # to sparsemem (Tilera bug 7996).
73 config ARCH_DISCONTIGMEM_ENABLE
74         def_bool y
76 config ARCH_DISCONTIGMEM_DEFAULT
77         def_bool y
79 config TRACE_IRQFLAGS_SUPPORT
80         def_bool y
82 config STRICT_DEVMEM
83         def_bool y
85 # SMP is required for Tilera Linux.
86 config SMP
87         def_bool y
89 # Allow checking for compile-time determined overflow errors in
90 # copy_from_user().  There are still unprovable places in the
91 # generic code as of 2.6.34, so this option is not really compatible
92 # with -Werror, which is more useful in general.
93 config DEBUG_COPY_FROM_USER
94         def_bool n
96 config HVC_TILE
97         select HVC_DRIVER
98         def_bool y
100 config TILE
101         def_bool y
102         select HAVE_KVM if !TILEGX
103         select GENERIC_FIND_FIRST_BIT
104         select GENERIC_FIND_NEXT_BIT
105         select USE_GENERIC_SMP_HELPERS
106         select CC_OPTIMIZE_FOR_SIZE
108 # FIXME: investigate whether we need/want these options.
109 #       select HAVE_IOREMAP_PROT
110 #       select HAVE_OPTPROBES
111 #       select HAVE_REGS_AND_STACK_ACCESS_API
112 #       select HAVE_HW_BREAKPOINT
113 #       select PERF_EVENTS
114 #       select HAVE_USER_RETURN_NOTIFIER
115 #       config NO_BOOTMEM
116 #       config ARCH_SUPPORTS_DEBUG_PAGEALLOC
117 #       config HUGETLB_PAGE_SIZE_VARIABLE
120 # Please note: TILE-Gx support is not yet finalized; this is
121 # the preliminary support.  TILE-Gx drivers are only provided
122 # with the alpha or beta test versions for Tilera customers.
123 config TILEGX
124         depends on EXPERIMENTAL
125         bool "Building with TILE-Gx (64-bit) compiler and toolchain"
127 config 64BIT
128         depends on TILEGX
129         def_bool y
131 config ARCH_DEFCONFIG
132         string
133         default "arch/tile/configs/tile_defconfig" if !TILEGX
134         default "arch/tile/configs/tilegx_defconfig" if TILEGX
136 source "init/Kconfig"
138 menu "Tilera-specific configuration"
140 config NR_CPUS
141         int "Maximum number of tiles (2-255)"
142         range 2 255
143         depends on SMP
144         default "64"
145         ---help---
146           Building with 64 is the recommended value, but a slightly
147           smaller kernel memory footprint results from using a smaller
148           value on chips with fewer tiles.
150 source "kernel/time/Kconfig"
152 source "kernel/Kconfig.hz"
154 config KEXEC
155         bool "kexec system call"
156         ---help---
157           kexec is a system call that implements the ability to shutdown your
158           current kernel, and to start another kernel.  It is like a reboot
159           but it is independent of the system firmware.   It is used
160           to implement the "mboot" Tilera booter.
162           The name comes from the similarity to the exec system call.
164 config COMPAT
165         bool "Support 32-bit TILE-Gx binaries in addition to 64-bit"
166         depends on TILEGX
167         select COMPAT_BINFMT_ELF
168         default y
169         ---help---
170           If enabled, the kernel will support running TILE-Gx binaries
171           that were built with the -m32 option.
173 config SYSVIPC_COMPAT
174         def_bool y
175         depends on COMPAT && SYSVIPC
177 # We do not currently support disabling HIGHMEM on tile64 and tilepro.
178 config HIGHMEM
179         bool # "Support for more than 512 MB of RAM"
180         default !TILEGX
181         ---help---
182           Linux can use the full amount of RAM in the system by
183           default.  However, the address space of TILE processors is
184           only 4 Gigabytes large. That means that, if you have a large
185           amount of physical memory, not all of it can be "permanently
186           mapped" by the kernel. The physical memory that's not
187           permanently mapped is called "high memory".
189           If you are compiling a kernel which will never run on a
190           machine with more than 512 MB total physical RAM, answer
191           "false" here. This will result in the kernel mapping all of
192           physical memory into the top 1 GB of virtual memory space.
194           If unsure, say "true".
196 # We do not currently support disabling NUMA.
197 config NUMA
198         bool # "NUMA Memory Allocation and Scheduler Support"
199         depends on SMP && DISCONTIGMEM
200         default y
201         ---help---
202           NUMA memory allocation is required for TILE processors
203           unless booting with memory striping enabled in the
204           hypervisor, or with only a single memory controller.
205           It is recommended that this option always be enabled.
207 config NODES_SHIFT
208         int "Log base 2 of the max number of memory controllers"
209         default 2
210         depends on NEED_MULTIPLE_NODES
211         ---help---
212           By default, 2, i.e. 2^2 == 4 DDR2 controllers.
213           In a system with more controllers, this value should be raised.
215 # Need 16MB areas to enable hugetlb
216 # See build-time check in arch/tile/mm/init.c.
217 config FORCE_MAX_ZONEORDER
218         int
219         default 9
221 choice
222         depends on !TILEGX
223         prompt "Memory split" if EMBEDDED
224         default VMSPLIT_3G
225         ---help---
226           Select the desired split between kernel and user memory.
228           If the address range available to the kernel is less than the
229           physical memory installed, the remaining memory will be available
230           as "high memory". Accessing high memory is a little more costly
231           than low memory, as it needs to be mapped into the kernel first.
232           Note that increasing the kernel address space limits the range
233           available to user programs, making the address space there
234           tighter.  Selecting anything other than the default 3G/1G split
235           will also likely make your kernel incompatible with binary-only
236           kernel modules.
238           If you are not absolutely sure what you are doing, leave this
239           option alone!
241         config VMSPLIT_3_75G
242                 bool "3.75G/0.25G user/kernel split (no kernel networking)"
243         config VMSPLIT_3_5G
244                 bool "3.5G/0.5G user/kernel split"
245         config VMSPLIT_3G
246                 bool "3G/1G user/kernel split"
247         config VMSPLIT_3G_OPT
248                 bool "3G/1G user/kernel split (for full 1G low memory)"
249         config VMSPLIT_2G
250                 bool "2G/2G user/kernel split"
251         config VMSPLIT_1G
252                 bool "1G/3G user/kernel split"
253 endchoice
255 config PAGE_OFFSET
256         hex
257         default 0xF0000000 if VMSPLIT_3_75G
258         default 0xE0000000 if VMSPLIT_3_5G
259         default 0xB0000000 if VMSPLIT_3G_OPT
260         default 0x80000000 if VMSPLIT_2G
261         default 0x40000000 if VMSPLIT_1G
262         default 0xC0000000
264 source "mm/Kconfig"
266 config CMDLINE_BOOL
267         bool "Built-in kernel command line"
268         default n
269         ---help---
270           Allow for specifying boot arguments to the kernel at
271           build time.  On some systems (e.g. embedded ones), it is
272           necessary or convenient to provide some or all of the
273           kernel boot arguments with the kernel itself (that is,
274           to not rely on the boot loader to provide them.)
276           To compile command line arguments into the kernel,
277           set this option to 'Y', then fill in the
278           the boot arguments in CONFIG_CMDLINE.
280           Systems with fully functional boot loaders (e.g. mboot, or
281           if booting over PCI) should leave this option set to 'N'.
283 config CMDLINE
284         string "Built-in kernel command string"
285         depends on CMDLINE_BOOL
286         default ""
287         ---help---
288           Enter arguments here that should be compiled into the kernel
289           image and used at boot time.  If the boot loader provides a
290           command line at boot time, it is appended to this string to
291           form the full kernel command line, when the system boots.
293           However, you can use the CONFIG_CMDLINE_OVERRIDE option to
294           change this behavior.
296           In most cases, the command line (whether built-in or provided
297           by the boot loader) should specify the device for the root
298           file system.
300 config CMDLINE_OVERRIDE
301         bool "Built-in command line overrides boot loader arguments"
302         default n
303         depends on CMDLINE_BOOL
304         ---help---
305           Set this option to 'Y' to have the kernel ignore the boot loader
306           command line, and use ONLY the built-in command line.
308           This is used to work around broken boot loaders.  This should
309           be set to 'N' under normal conditions.
311 config VMALLOC_RESERVE
312         hex
313         default 0x1000000
315 config HARDWALL
316         bool "Hardwall support to allow access to user dynamic network"
317         default y
319 config KERNEL_PL
320         int "Processor protection level for kernel"
321         range 1 2
322         default "1"
323         ---help---
324           This setting determines the processor protection level the
325           kernel will be built to run at.  Generally you should use
326           the default value here.
328 endmenu  # Tilera-specific configuration
330 menu "Bus options"
332 config PCI
333         bool "PCI support"
334         default y
335         select PCI_DOMAINS
336         ---help---
337           Enable PCI root complex support, so PCIe endpoint devices can
338           be attached to the Tile chip.  Many, but not all, PCI devices
339           are supported under Tilera's root complex driver.
341 config PCI_DOMAINS
342         bool
344 config NO_IOMEM
345         def_bool !PCI
347 config NO_IOPORT
348         def_bool !PCI
350 source "drivers/pci/Kconfig"
352 source "drivers/pci/hotplug/Kconfig"
354 endmenu
356 menu "Executable file formats"
358 # only elf supported
359 config KCORE_ELF
360         def_bool y
361         depends on PROC_FS
363 source "fs/Kconfig.binfmt"
365 endmenu
367 source "net/Kconfig"
369 source "drivers/Kconfig"
371 source "fs/Kconfig"
373 source "arch/tile/Kconfig.debug"
375 source "security/Kconfig"
377 source "crypto/Kconfig"
379 source "lib/Kconfig"
381 source "arch/tile/kvm/Kconfig"