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