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