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