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