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