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