diff options
Diffstat (limited to 'arch/tile/Kconfig')
-rw-r--r-- | arch/tile/Kconfig | 352 |
1 files changed, 352 insertions, 0 deletions
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig new file mode 100644 index 00000000000..290ef416193 --- /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 | |||
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 | endmenu # Tilera-specific configuration | ||
314 | |||
315 | menu "Bus options" | ||
316 | |||
317 | config NO_IOMEM | ||
318 | def_bool !PCI | ||
319 | |||
320 | config NO_IOPORT | ||
321 | def_bool !PCI | ||
322 | |||
323 | source "drivers/pci/Kconfig" | ||
324 | |||
325 | source "drivers/pci/hotplug/Kconfig" | ||
326 | |||
327 | endmenu | ||
328 | |||
329 | menu "Executable file formats" | ||
330 | |||
331 | # only elf supported | ||
332 | config KCORE_ELF | ||
333 | def_bool y | ||
334 | depends on PROC_FS | ||
335 | |||
336 | source "fs/Kconfig.binfmt" | ||
337 | |||
338 | endmenu | ||
339 | |||
340 | source "net/Kconfig" | ||
341 | |||
342 | source "drivers/Kconfig" | ||
343 | |||
344 | source "fs/Kconfig" | ||
345 | |||
346 | source "arch/tile/Kconfig.debug" | ||
347 | |||
348 | source "security/Kconfig" | ||
349 | |||
350 | source "crypto/Kconfig" | ||
351 | |||
352 | source "lib/Kconfig" | ||