Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[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         select USE_GENERIC_SMP_HELPERS
207         depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050
208         ---help---
209           This enables support for systems with more than one CPU. If you have
210           a system with only one CPU, like most personal computers, say N. If
211           you have a system with more than one CPU, say Y.
212
213           If you say N here, the kernel will run on single and multiprocessor
214           machines, but will use only one CPU of a multiprocessor machine. If
215           you say Y here, the kernel will run on many, but not all,
216           singleprocessor machines. On a singleprocessor machine, the kernel
217           will run faster if you say N here.
218
219           See also <file:Documentation/i386/IO-APIC.txt>,
220           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
221           <http://www.tldp.org/docs.html#howto>.
222
223           If you don't know what to do here, say N.
224
225 config NR_CPUS
226         int
227         depends on SMP
228         default "2"
229
230 source "kernel/Kconfig.preempt"
231
232 config MN10300_CURRENT_IN_E2
233         bool "Hold current task address in E2 register"
234         depends on !SMP
235         default y
236         help
237           This option removes the E2/R2 register from the set available to gcc
238           for normal use and instead uses it to store the address of the
239           current process's task_struct whilst in the kernel.
240
241           This means the kernel doesn't need to calculate the address each time
242           "current" is used (take SP, AND with mask and dereference pointer
243           just to get the address), and instead can just use E2+offset
244           addressing each time.
245
246           This has no effect on userspace.
247
248 config MN10300_USING_JTAG
249         bool "Using JTAG to debug kernel"
250         default y
251         help
252           This options indicates that JTAG will be used to debug the kernel. It
253           suppresses the use of certain hardware debugging features, such as
254           single-stepping, which are taken over completely by the JTAG unit.
255
256 source "kernel/Kconfig.hz"
257 source "kernel/time/Kconfig"
258
259 config MN10300_RTC
260         bool "Using MN10300 RTC"
261         depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
262         select GENERIC_CMOS_UPDATE
263         default n
264         help
265           This option enables support for the RTC, thus enabling time to be
266           tracked, even when system is powered down. This is available on-chip
267           on the MN103E010.
268
269 config MN10300_WD_TIMER
270         bool "Using MN10300 watchdog timer"
271         default y
272         help
273           This options indicates that the watchdog timer will be used.
274
275 config PCI
276         bool "Use PCI"
277         depends on MN10300_UNIT_ASB2305
278         default y
279         help
280           Some systems (such as the ASB2305) have PCI onboard. If you have one
281           of these boards and you wish to use the PCI facilities, say Y here.
282
283           The PCI-HOWTO, available from
284           <http://www.tldp.org/docs.html#howto>, contains valuable
285           information about which PCI hardware does work under Linux and which
286           doesn't.
287
288 source "drivers/pci/Kconfig"
289
290 source "drivers/pcmcia/Kconfig"
291
292 menu "MN10300 internal serial options"
293
294 config MN10300_PROC_HAS_TTYSM0
295         bool
296         default n
297
298 config MN10300_PROC_HAS_TTYSM1
299         bool
300         default n
301
302 config MN10300_PROC_HAS_TTYSM2
303         bool
304         default n
305
306 config MN10300_TTYSM
307         bool "Support for ttySM serial ports"
308         depends on MN10300
309         default y
310         select SERIAL_CORE
311         help
312           This option enables support for the on-chip serial ports that the
313           MN10300 has available.
314
315 config MN10300_TTYSM_CONSOLE
316         bool "Support for console on ttySM serial ports"
317         depends on MN10300_TTYSM
318         select SERIAL_CORE_CONSOLE
319         help
320           This option enables support for a console on the on-chip serial ports
321           that the MN10300 has available.
322
323 #
324 # /dev/ttySM0
325 #
326 config MN10300_TTYSM0
327         bool "Enable SIF0 (/dev/ttySM0)"
328         depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM0
329         help
330           Enable access to SIF0 through /dev/ttySM0 or gdb-stub
331
332 choice
333         prompt "Select the timer to supply the clock for SIF0"
334         default MN10300_TTYSM0_TIMER8
335         depends on MN10300_TTYSM0
336
337 config MN10300_TTYSM0_TIMER8
338         bool "Use timer 8 (16-bit)"
339
340 config MN10300_TTYSM0_TIMER2
341         bool "Use timer 2 (8-bit)"
342
343 endchoice
344
345 #
346 # /dev/ttySM1
347 #
348 config MN10300_TTYSM1
349         bool "Enable SIF1 (/dev/ttySM1)"
350         depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM1
351         help
352           Enable access to SIF1 through /dev/ttySM1 or gdb-stub
353
354 choice
355         prompt "Select the timer to supply the clock for SIF1"
356         default MN10300_TTYSM1_TIMER12 \
357                 if !(AM33_2 || AM33_3)
358         default MN10300_TTYSM1_TIMER9 \
359                 if AM33_2 || AM33_3
360         depends on MN10300_TTYSM1
361
362 config MN10300_TTYSM1_TIMER12
363         bool "Use timer 12 (16-bit)"
364         depends on !(AM33_2 || AM33_3)
365
366 config MN10300_TTYSM1_TIMER9
367         bool "Use timer 9 (16-bit)"
368         depends on AM33_2 || AM33_3
369
370 config MN10300_TTYSM1_TIMER3
371         bool "Use timer 3 (8-bit)"
372         depends on AM33_2 || AM33_3
373
374 endchoice
375
376 #
377 # /dev/ttySM2
378 #
379 config MN10300_TTYSM2
380         bool "Enable SIF2 (/dev/ttySM2)"
381         depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM2
382         help
383           Enable access to SIF2 through /dev/ttySM2 or gdb-stub
384
385 choice
386         prompt "Select the timer to supply the clock for SIF2"
387         default MN10300_TTYSM2_TIMER3 \
388                 if !(AM33_2 || AM33_3)
389         default MN10300_TTYSM2_TIMER10 \
390                 if AM33_2 || AM33_3
391         depends on MN10300_TTYSM2
392
393 config MN10300_TTYSM2_TIMER9
394         bool "Use timer 9 (16-bit)"
395         depends on !(AM33_2 || AM33_3)
396
397 config MN10300_TTYSM2_TIMER1
398         bool "Use timer 1 (8-bit)"
399         depends on !(AM33_2 || AM33_3)
400
401 config MN10300_TTYSM2_TIMER3
402         bool "Use timer 3 (8-bit)"
403         depends on !(AM33_2 || AM33_3)
404
405 config MN10300_TTYSM2_TIMER10
406         bool "Use timer 10 (16-bit)"
407         depends on AM33_2 || AM33_3
408
409 endchoice
410
411 config MN10300_TTYSM2_CTS
412         bool "Enable the use of the CTS line /dev/ttySM2"
413         depends on MN10300_TTYSM2 && AM33_2
414
415 endmenu
416
417 menu "Interrupt request priority options"
418
419 comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
420
421 comment "____Non-maskable interrupt levels____"
422 comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"
423
424 config GDBSTUB_IRQ_LEVEL
425         int "GDBSTUB interrupt priority"
426         depends on GDBSTUB
427         range 0 1 if LINUX_CLI_LEVEL = 2
428         range 0 2 if LINUX_CLI_LEVEL = 3
429         range 0 3 if LINUX_CLI_LEVEL = 4
430         range 0 4 if LINUX_CLI_LEVEL = 5
431         range 0 5 if LINUX_CLI_LEVEL = 6
432         default 0
433
434 comment "The following must be set to a higher priority than local_irq_disable()"
435
436 config MN10300_SERIAL_IRQ_LEVEL
437         int "MN10300 on-chip serial interrupt priority"
438         depends on MN10300_TTYSM
439         range 1 1 if LINUX_CLI_LEVEL = 2
440         range 1 2 if LINUX_CLI_LEVEL = 3
441         range 1 3 if LINUX_CLI_LEVEL = 4
442         range 1 4 if LINUX_CLI_LEVEL = 5
443         range 1 5 if LINUX_CLI_LEVEL = 6
444         default 1
445
446 comment "-"
447 comment "____Maskable interrupt levels____"
448
449 config LINUX_CLI_LEVEL
450         int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
451         range 2 6
452         default 2
453         help
454           local_irq_disable() doesn't actually disable maskable interrupts -
455           what it does is restrict the levels of interrupt which are permitted
456           (a lower level indicates a higher priority) by lowering the value in
457           EPSW.IM from 7.  Any interrupt is permitted for which the level is
458           lower than EPSW.IM.
459
460           Certain interrupts, such as GDBSTUB and virtual MN10300 on-chip
461           serial DMA interrupts are allowed to interrupt normal disabled
462           sections.
463
464 comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
465
466 config TIMER_IRQ_LEVEL
467         int "Kernel timer interrupt priority"
468         range LINUX_CLI_LEVEL 6
469         default 4
470
471 config PCI_IRQ_LEVEL
472         int "PCI interrupt priority"
473         depends on PCI
474         range LINUX_CLI_LEVEL 6
475         default 5
476
477 config ETHERNET_IRQ_LEVEL
478         int "Ethernet interrupt priority"
479         depends on SMC91X || SMC911X || SMSC911X
480         range LINUX_CLI_LEVEL 6
481         default 6
482
483 config EXT_SERIAL_IRQ_LEVEL
484         int "External serial port interrupt priority"
485         depends on SERIAL_8250
486         range LINUX_CLI_LEVEL 6
487         default 6
488
489 endmenu
490
491 source "mm/Kconfig"
492
493 menu "Power management options"
494 source kernel/power/Kconfig
495 endmenu
496
497 endmenu
498
499
500 menu "Executable formats"
501
502 source "fs/Kconfig.binfmt"
503
504 endmenu
505
506 source "net/Kconfig"
507
508 source "drivers/Kconfig"
509
510 source "fs/Kconfig"
511
512 source "arch/mn10300/Kconfig.debug"
513
514 source "security/Kconfig"
515
516 source "crypto/Kconfig"
517
518 source "lib/Kconfig"