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