Merge branch 'tip/perf/jump-label-2' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git] / arch / mn10300 / Kconfig
1 #
2 # For a description of the syntax of this configuration file,
3 # see Documentation/kbuild/kconfig-language.txt.
4 #
5
6 mainmenu "Linux Kernel Configuration"
7
8 config MN10300
9         def_bool y
10         select HAVE_OPROFILE
11
12 config AM33_2
13         def_bool n
14
15 config AM33_3
16         def_bool n
17
18 config AM34_2
19         def_bool n
20         select MN10300_HAS_ATOMIC_OPS_UNIT
21         select MN10300_HAS_CACHE_SNOOP
22
23 config ERRATUM_NEED_TO_RELOAD_MMUCTR
24         def_bool y if AM33_3 || AM34_2
25
26 config MMU
27         def_bool y
28
29 config HIGHMEM
30         def_bool n
31
32 config NUMA
33         def_bool n
34
35 config UID16
36         def_bool y
37
38 config RWSEM_GENERIC_SPINLOCK
39         def_bool y
40
41 config RWSEM_XCHGADD_ALGORITHM
42         bool
43
44 config GENERIC_HARDIRQS_NO__DO_IRQ
45         def_bool y
46
47 config GENERIC_CALIBRATE_DELAY
48         def_bool y
49
50 config GENERIC_CMOS_UPDATE
51         def_bool n
52
53 config GENERIC_FIND_NEXT_BIT
54         def_bool y
55
56 config GENERIC_HWEIGHT
57         def_bool y
58
59 config GENERIC_TIME
60         def_bool y
61
62 config GENERIC_CLOCKEVENTS
63         def_bool y
64
65 config GENERIC_CLOCKEVENTS_BUILD
66         def_bool y
67         depends on GENERIC_CLOCKEVENTS
68
69 config GENERIC_CLOCKEVENTS_BROADCAST
70         bool
71
72 config CEVT_MN10300
73        def_bool y
74        depends on GENERIC_CLOCKEVENTS
75
76 config CSRC_MN10300
77        def_bool y
78        depends on GENERIC_TIME
79
80 config GENERIC_BUG
81         def_bool y
82
83 config QUICKLIST
84         def_bool y
85
86 config ARCH_HAS_ILOG2_U32
87         def_bool y
88
89 # Use the generic interrupt handling code in kernel/irq/
90 config GENERIC_HARDIRQS
91         def_bool y
92
93 config HOTPLUG_CPU
94         def_bool n
95
96 mainmenu "Panasonic MN10300/AM33 Kernel Configuration"
97
98 source "init/Kconfig"
99
100 source "kernel/Kconfig.freezer"
101
102
103 menu "Panasonic MN10300 system setup"
104
105 choice
106         prompt "Unit type"
107         default MN10300_UNIT_ASB2303
108         help
109           This option specifies board for which the kernel will be
110           compiled. It affects the external peripherals catered for.
111
112 config MN10300_UNIT_ASB2303
113         bool "ASB2303"
114
115 config MN10300_UNIT_ASB2305
116         bool "ASB2305"
117
118 config MN10300_UNIT_ASB2364
119         bool "ASB2364"
120         select SMSC911X_ARCH_HOOKS if SMSC911X
121
122 endchoice
123
124 choice
125         prompt "Processor support"
126         default MN10300_PROC_MN103E010
127         help
128           This option specifies the processor for which the kernel will be
129           compiled. It affects the on-chip peripherals catered for.
130
131 config MN10300_PROC_MN103E010
132         bool "MN103E010"
133         depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
134         select AM33_2
135         select MN10300_PROC_HAS_TTYSM0
136         select MN10300_PROC_HAS_TTYSM1
137         select MN10300_PROC_HAS_TTYSM2
138
139 config MN10300_PROC_MN2WS0050
140         bool "MN2WS0050"
141         depends on MN10300_UNIT_ASB2364
142         select AM34_2
143         select MN10300_PROC_HAS_TTYSM0
144         select MN10300_PROC_HAS_TTYSM1
145         select MN10300_PROC_HAS_TTYSM2
146
147 endchoice
148
149 config MN10300_HAS_ATOMIC_OPS_UNIT
150         def_bool n
151         help
152           This should be enabled if the processor has an atomic ops unit
153           capable of doing LL/SC equivalent operations.
154
155 config FPU
156         bool "FPU present"
157         default y
158         depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
159
160 config LAZY_SAVE_FPU
161         bool "Save FPU state lazily"
162         default y
163         depends on FPU && !SMP
164         help
165           Enable this to be lazy in the saving of the FPU state to the owning
166           task's thread struct.  This is useful if most tasks on the system
167           don't use the FPU as only those tasks that use it will pass it
168           between them, and the state needn't be saved for a task that isn't
169           using it.
170
171           This can't be so easily used on SMP as the process that owns the FPU
172           state on a CPU may be currently running on another CPU, so for the
173           moment, it is disabled.
174
175 source "arch/mn10300/mm/Kconfig.cache"
176
177 config MN10300_TLB_USE_PIDR
178         def_bool y
179
180 menu "Memory layout options"
181
182 config KERNEL_RAM_BASE_ADDRESS
183         hex "Base address of kernel RAM"
184         default "0x90000000"
185
186 config INTERRUPT_VECTOR_BASE
187         hex "Base address of vector table"
188         default "0x90000000"
189         help
190           The base address of the vector table will be programmed into
191           the TBR register. It must be on 16MiB address boundary.
192
193 config KERNEL_TEXT_ADDRESS
194         hex "Base address of kernel"
195         default "0x90001000"
196
197 config KERNEL_ZIMAGE_BASE_ADDRESS
198         hex "Base address of compressed vmlinux image"
199         default "0x50700000"
200
201 config BOOT_STACK_OFFSET
202         hex
203         default "0xF00" if SMP
204         default "0xFF0" if !SMP
205
206 config BOOT_STACK_SIZE
207         hex
208         depends on SMP
209         default "0x100"
210 endmenu
211
212 config SMP
213         bool "Symmetric multi-processing support"
214         default y
215         depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050
216         ---help---
217           This enables support for systems with more than one CPU. If you have
218           a system with only one CPU, like most personal computers, say N. If
219           you have a system with more than one CPU, say Y.
220
221           If you say N here, the kernel will run on single and multiprocessor
222           machines, but will use only one CPU of a multiprocessor machine. If
223           you say Y here, the kernel will run on many, but not all,
224           singleprocessor machines. On a singleprocessor machine, the kernel
225           will run faster if you say N here.
226
227           See also <file:Documentation/i386/IO-APIC.txt>,
228           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
229           <http://www.tldp.org/docs.html#howto>.
230
231           If you don't know what to do here, say N.
232
233 config NR_CPUS
234         int
235         depends on SMP
236         default "2"
237
238 config USE_GENERIC_SMP_HELPERS
239         bool
240         depends on SMP
241         default y
242
243 source "kernel/Kconfig.preempt"
244
245 config MN10300_CURRENT_IN_E2
246         bool "Hold current task address in E2 register"
247         depends on !SMP
248         default y
249         help
250           This option removes the E2/R2 register from the set available to gcc
251           for normal use and instead uses it to store the address of the
252           current process's task_struct whilst in the kernel.
253
254           This means the kernel doesn't need to calculate the address each time
255           "current" is used (take SP, AND with mask and dereference pointer
256           just to get the address), and instead can just use E2+offset
257           addressing each time.
258
259           This has no effect on userspace.
260
261 config MN10300_USING_JTAG
262         bool "Using JTAG to debug kernel"
263         default y
264         help
265           This options indicates that JTAG will be used to debug the kernel. It
266           suppresses the use of certain hardware debugging features, such as
267           single-stepping, which are taken over completely by the JTAG unit.
268
269 source "kernel/Kconfig.hz"
270 source "kernel/time/Kconfig"
271
272 config MN10300_RTC
273         bool "Using MN10300 RTC"
274         depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
275         select GENERIC_CMOS_UPDATE
276         default n
277         help
278           This option enables support for the RTC, thus enabling time to be
279           tracked, even when system is powered down. This is available on-chip
280           on the MN103E010.
281
282 config MN10300_WD_TIMER
283         bool "Using MN10300 watchdog timer"
284         default y
285         help
286           This options indicates that the watchdog timer will be used.
287
288 config PCI
289         bool "Use PCI"
290         depends on MN10300_UNIT_ASB2305
291         default y
292         help
293           Some systems (such as the ASB2305) have PCI onboard. If you have one
294           of these boards and you wish to use the PCI facilities, say Y here.
295
296           The PCI-HOWTO, available from
297           <http://www.tldp.org/docs.html#howto>, contains valuable
298           information about which PCI hardware does work under Linux and which
299           doesn't.
300
301 source "drivers/pci/Kconfig"
302
303 source "drivers/pcmcia/Kconfig"
304
305 menu "MN10300 internal serial options"
306
307 config MN10300_PROC_HAS_TTYSM0
308         bool
309         default n
310
311 config MN10300_PROC_HAS_TTYSM1
312         bool
313         default n
314
315 config MN10300_PROC_HAS_TTYSM2
316         bool
317         default n
318
319 config MN10300_TTYSM
320         bool "Support for ttySM serial ports"
321         depends on MN10300
322         default y
323         select SERIAL_CORE
324         help
325           This option enables support for the on-chip serial ports that the
326           MN10300 has available.
327
328 config MN10300_TTYSM_CONSOLE
329         bool "Support for console on ttySM serial ports"
330         depends on MN10300_TTYSM
331         select SERIAL_CORE_CONSOLE
332         help
333           This option enables support for a console on the on-chip serial ports
334           that the MN10300 has available.
335
336 #
337 # /dev/ttySM0
338 #
339 config MN10300_TTYSM0
340         bool "Enable SIF0 (/dev/ttySM0)"
341         depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM0
342         help
343           Enable access to SIF0 through /dev/ttySM0 or gdb-stub
344
345 choice
346         prompt "Select the timer to supply the clock for SIF0"
347         default MN10300_TTYSM0_TIMER8
348         depends on MN10300_TTYSM0
349
350 config MN10300_TTYSM0_TIMER8
351         bool "Use timer 8 (16-bit)"
352
353 config MN10300_TTYSM0_TIMER2
354         bool "Use timer 2 (8-bit)"
355
356 endchoice
357
358 #
359 # /dev/ttySM1
360 #
361 config MN10300_TTYSM1
362         bool "Enable SIF1 (/dev/ttySM1)"
363         depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM1
364         help
365           Enable access to SIF1 through /dev/ttySM1 or gdb-stub
366
367 choice
368         prompt "Select the timer to supply the clock for SIF1"
369         default MN10300_TTYSM1_TIMER12 \
370                 if !(AM33_2 || AM33_3)
371         default MN10300_TTYSM1_TIMER9 \
372                 if AM33_2 || AM33_3
373         depends on MN10300_TTYSM1
374
375 config MN10300_TTYSM1_TIMER12
376         bool "Use timer 12 (16-bit)"
377         depends on !(AM33_2 || AM33_3)
378
379 config MN10300_TTYSM1_TIMER9
380         bool "Use timer 9 (16-bit)"
381         depends on AM33_2 || AM33_3
382
383 config MN10300_TTYSM1_TIMER3
384         bool "Use timer 3 (8-bit)"
385         depends on AM33_2 || AM33_3
386
387 endchoice
388
389 #
390 # /dev/ttySM2
391 #
392 config MN10300_TTYSM2
393         bool "Enable SIF2 (/dev/ttySM2)"
394         depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM2
395         help
396           Enable access to SIF2 through /dev/ttySM2 or gdb-stub
397
398 choice
399         prompt "Select the timer to supply the clock for SIF2"
400         default MN10300_TTYSM2_TIMER3 \
401                 if !(AM33_2 || AM33_3)
402         default MN10300_TTYSM2_TIMER10 \
403                 if AM33_2 || AM33_3
404         depends on MN10300_TTYSM2
405
406 config MN10300_TTYSM2_TIMER9
407         bool "Use timer 9 (16-bit)"
408         depends on !(AM33_2 || AM33_3)
409
410 config MN10300_TTYSM2_TIMER1
411         bool "Use timer 1 (8-bit)"
412         depends on !(AM33_2 || AM33_3)
413
414 config MN10300_TTYSM2_TIMER3
415         bool "Use timer 3 (8-bit)"
416         depends on !(AM33_2 || AM33_3)
417
418 config MN10300_TTYSM2_TIMER10
419         bool "Use timer 10 (16-bit)"
420         depends on AM33_2 || AM33_3
421
422 endchoice
423
424 config MN10300_TTYSM2_CTS
425         bool "Enable the use of the CTS line /dev/ttySM2"
426         depends on MN10300_TTYSM2 && AM33_2
427
428 endmenu
429
430 menu "Interrupt request priority options"
431
432 comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
433
434 comment "____Non-maskable interrupt levels____"
435 comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"
436
437 config GDBSTUB_IRQ_LEVEL
438         int "GDBSTUB interrupt priority"
439         depends on GDBSTUB
440         range 0 1 if LINUX_CLI_LEVEL = 2
441         range 0 2 if LINUX_CLI_LEVEL = 3
442         range 0 3 if LINUX_CLI_LEVEL = 4
443         range 0 4 if LINUX_CLI_LEVEL = 5
444         range 0 5 if LINUX_CLI_LEVEL = 6
445         default 0
446
447 comment "The following must be set to a higher priority than local_irq_disable()"
448
449 config MN10300_SERIAL_IRQ_LEVEL
450         int "MN10300 on-chip serial interrupt priority"
451         depends on MN10300_TTYSM
452         range 1 1 if LINUX_CLI_LEVEL = 2
453         range 1 2 if LINUX_CLI_LEVEL = 3
454         range 1 3 if LINUX_CLI_LEVEL = 4
455         range 1 4 if LINUX_CLI_LEVEL = 5
456         range 1 5 if LINUX_CLI_LEVEL = 6
457         default 1
458
459 comment "-"
460 comment "____Maskable interrupt levels____"
461
462 config LINUX_CLI_LEVEL
463         int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
464         range 2 6
465         default 2
466         help
467           local_irq_disable() doesn't actually disable maskable interrupts -
468           what it does is restrict the levels of interrupt which are permitted
469           (a lower level indicates a higher priority) by lowering the value in
470           EPSW.IM from 7.  Any interrupt is permitted for which the level is
471           lower than EPSW.IM.
472
473           Certain interrupts, such as GDBSTUB and virtual MN10300 on-chip
474           serial DMA interrupts are allowed to interrupt normal disabled
475           sections.
476
477 comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
478
479 config TIMER_IRQ_LEVEL
480         int "Kernel timer interrupt priority"
481         range LINUX_CLI_LEVEL 6
482         default 4
483
484 config PCI_IRQ_LEVEL
485         int "PCI interrupt priority"
486         depends on PCI
487         range LINUX_CLI_LEVEL 6
488         default 5
489
490 config ETHERNET_IRQ_LEVEL
491         int "Ethernet interrupt priority"
492         depends on SMC91X || SMC911X || SMSC911X
493         range LINUX_CLI_LEVEL 6
494         default 6
495
496 config EXT_SERIAL_IRQ_LEVEL
497         int "External serial port interrupt priority"
498         depends on SERIAL_8250
499         range LINUX_CLI_LEVEL 6
500         default 6
501
502 endmenu
503
504 source "mm/Kconfig"
505
506 menu "Power management options"
507 source kernel/power/Kconfig
508 endmenu
509
510 endmenu
511
512
513 menu "Executable formats"
514
515 source "fs/Kconfig.binfmt"
516
517 endmenu
518
519 source "net/Kconfig"
520
521 source "drivers/Kconfig"
522
523 source "fs/Kconfig"
524
525 source "arch/mn10300/Kconfig.debug"
526
527 source "security/Kconfig"
528
529 source "crypto/Kconfig"
530
531 source "lib/Kconfig"