aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/Kconfig
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2010-05-28 23:09:12 -0400
committerChris Metcalf <cmetcalf@tilera.com>2010-06-04 17:11:18 -0400
commit867e359b97c970a60626d5d76bbe2a8fadbf38fb (patch)
treec5ccbb7f5172e8555977119608ecb1eee3cc37e3 /arch/tile/Kconfig
parent5360bd776f73d0a7da571d72a09a03f237e99900 (diff)
arch/tile: core support for Tilera 32-bit chips.
This change is the core kernel support for TILEPro and TILE64 chips. No driver support (except the console driver) is included yet. This includes the relevant Linux headers in asm/; the low-level low-level "Tile architecture" headers in arch/, which are shared with the hypervisor, etc., and are build-system agnostic; and the relevant hypervisor headers in hv/. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Reviewed-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/tile/Kconfig')
-rw-r--r--arch/tile/Kconfig352
1 files changed, 352 insertions, 0 deletions
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
new file mode 100644
index 000000000000..290ef4161939
--- /dev/null
+++ b/arch/tile/Kconfig
@@ -0,0 +1,352 @@
1# For a description of the syntax of this configuration file,
2# see Documentation/kbuild/config-language.txt.
3
4config MMU
5 def_bool y
6
7config GENERIC_CSUM
8 def_bool y
9
10config GENERIC_HARDIRQS
11 def_bool y
12
13config GENERIC_HARDIRQS_NO__DO_IRQ
14 def_bool y
15
16config GENERIC_IRQ_PROBE
17 def_bool y
18
19config GENERIC_PENDING_IRQ
20 def_bool y
21 depends on GENERIC_HARDIRQS && SMP
22
23config SEMAPHORE_SLEEPERS
24 def_bool y
25
26config HAVE_ARCH_ALLOC_REMAP
27 def_bool y
28
29config HAVE_SETUP_PER_CPU_AREA
30 def_bool y
31
32config NEED_PER_CPU_PAGE_FIRST_CHUNK
33 def_bool y
34
35config SYS_SUPPORTS_HUGETLBFS
36 def_bool y
37
38config GENERIC_TIME
39 def_bool y
40
41config GENERIC_CLOCKEVENTS
42 def_bool y
43
44# FIXME: tilegx can implement a more efficent rwsem.
45config 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).
50config DEFAULT_MIGRATION_COST
51 int
52 default "10000000"
53
54# We only support gcc 4.4 and above, so this should work.
55config ARCH_SUPPORTS_OPTIMIZED_INLINING
56 def_bool y
57
58config ARCH_PHYS_ADDR_T_64BIT
59 def_bool y
60
61config LOCKDEP_SUPPORT
62 def_bool y
63
64config 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).
70config ARCH_DISCONTIGMEM_ENABLE
71 def_bool y
72
73config ARCH_DISCONTIGMEM_DEFAULT
74 def_bool y
75
76config TRACE_IRQFLAGS_SUPPORT
77 def_bool y
78
79config STRICT_DEVMEM
80 def_bool y
81
82# SMP is required for Tilera Linux.
83config 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.
90config DEBUG_COPY_FROM_USER
91 def_bool n
92
93config HVC_TILE
94 select HVC_DRIVER
95 def_bool y
96
97config 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
116mainmenu "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.
121config TILEGX
122 depends on EXPERIMENTAL
123 bool "Building with TILE-Gx (64-bit) compiler and toolchain"
124
125config 64BIT
126 depends on TILEGX
127 def_bool y
128
129config ARCH_DEFCONFIG
130 string
131 default "arch/tile/configs/tile_defconfig" if !TILEGX
132 default "arch/tile/configs/tilegx_defconfig" if TILEGX
133
134source "init/Kconfig"
135
136menu "Tilera-specific configuration"
137
138config 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
148source "kernel/time/Kconfig"
149
150source "kernel/Kconfig.hz"
151
152config 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
162config 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
171config SYSVIPC_COMPAT
172 def_bool y
173 depends on COMPAT && SYSVIPC
174
175# We do not currently support disabling HIGHMEM on tile64 and tilepro.
176config 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.
195config 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
205config 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.
215config FORCE_MAX_ZONEORDER
216 int
217 default 9
218
219choice
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"
251endchoice
252
253config 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
262source "mm/Kconfig"
263
264config 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
281config 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
298config 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
309config VMALLOC_RESERVE
310 hex
311 default 0x1000000
312
313endmenu # Tilera-specific configuration
314
315menu "Bus options"
316
317config NO_IOMEM
318 def_bool !PCI
319
320config NO_IOPORT
321 def_bool !PCI
322
323source "drivers/pci/Kconfig"
324
325source "drivers/pci/hotplug/Kconfig"
326
327endmenu
328
329menu "Executable file formats"
330
331# only elf supported
332config KCORE_ELF
333 def_bool y
334 depends on PROC_FS
335
336source "fs/Kconfig.binfmt"
337
338endmenu
339
340source "net/Kconfig"
341
342source "drivers/Kconfig"
343
344source "fs/Kconfig"
345
346source "arch/tile/Kconfig.debug"
347
348source "security/Kconfig"
349
350source "crypto/Kconfig"
351
352source "lib/Kconfig"