Merge branches 'cxgb4', 'ipath', 'ipoib', 'mlx4', 'mthca', 'nes', 'qib' and 'srp...
[zen-stable.git] / arch / mn10300 / Kconfig
blob41ba38513c8943f1ad1441cb818ba22411b100ae
1 config MN10300
2         def_bool y
3         select HAVE_OPROFILE
5 config AM33_2
6         def_bool n
8 config AM33_3
9         def_bool n
11 config AM34_2
12         def_bool n
13         select MN10300_HAS_ATOMIC_OPS_UNIT
14         select MN10300_HAS_CACHE_SNOOP
16 config ERRATUM_NEED_TO_RELOAD_MMUCTR
17         def_bool y if AM33_3 || AM34_2
19 config MMU
20         def_bool y
22 config HIGHMEM
23         def_bool n
25 config NUMA
26         def_bool n
28 config UID16
29         def_bool y
31 config RWSEM_GENERIC_SPINLOCK
32         def_bool y
34 config RWSEM_XCHGADD_ALGORITHM
35         bool
37 config GENERIC_HARDIRQS_NO__DO_IRQ
38         def_bool y
40 config GENERIC_CALIBRATE_DELAY
41         def_bool y
43 config GENERIC_CMOS_UPDATE
44         def_bool n
46 config GENERIC_FIND_NEXT_BIT
47         def_bool y
49 config GENERIC_HWEIGHT
50         def_bool y
52 config GENERIC_TIME
53         def_bool y
55 config GENERIC_CLOCKEVENTS
56         def_bool y
58 config GENERIC_CLOCKEVENTS_BUILD
59         def_bool y
60         depends on GENERIC_CLOCKEVENTS
62 config GENERIC_CLOCKEVENTS_BROADCAST
63         bool
65 config CEVT_MN10300
66        def_bool y
67        depends on GENERIC_CLOCKEVENTS
69 config CSRC_MN10300
70        def_bool y
71        depends on GENERIC_TIME
73 config GENERIC_BUG
74         def_bool y
76 config QUICKLIST
77         def_bool y
79 config ARCH_HAS_ILOG2_U32
80         def_bool y
82 # Use the generic interrupt handling code in kernel/irq/
83 config GENERIC_HARDIRQS
84         def_bool y
86 config HOTPLUG_CPU
87         def_bool n
89 source "init/Kconfig"
91 source "kernel/Kconfig.freezer"
94 menu "Panasonic MN10300 system setup"
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.
103 config MN10300_UNIT_ASB2303
104         bool "ASB2303"
106 config MN10300_UNIT_ASB2305
107         bool "ASB2305"
109 config MN10300_UNIT_ASB2364
110         bool "ASB2364"
111         select SMSC911X_ARCH_HOOKS if SMSC911X
113 endchoice
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.
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
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
138 endchoice
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.
146 config FPU
147         bool "FPU present"
148         default y
149         depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
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.
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.
166 source "arch/mn10300/mm/Kconfig.cache"
168 config MN10300_TLB_USE_PIDR
169         def_bool y
171 menu "Memory layout options"
173 config KERNEL_RAM_BASE_ADDRESS
174         hex "Base address of kernel RAM"
175         default "0x90000000"
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.
184 config KERNEL_TEXT_ADDRESS
185         hex "Base address of kernel"
186         default "0x90001000"
188 config KERNEL_ZIMAGE_BASE_ADDRESS
189         hex "Base address of compressed vmlinux image"
190         default "0x50700000"
192 config BOOT_STACK_OFFSET
193         hex
194         default "0xF00" if SMP
195         default "0xFF0" if !SMP
197 config BOOT_STACK_SIZE
198         hex
199         depends on SMP
200         default "0x100"
201 endmenu
203 config SMP
204         bool "Symmetric multi-processing support"
205         default y
206         depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050
207         ---help---
208           This enables support for systems with more than one CPU. If you have
209           a system with only one CPU, like most personal computers, say N. If
210           you have a system with more than one CPU, say Y.
212           If you say N here, the kernel will run on single and multiprocessor
213           machines, but will use only one CPU of a multiprocessor machine. If
214           you say Y here, the kernel will run on many, but not all,
215           singleprocessor machines. On a singleprocessor machine, the kernel
216           will run faster if you say N here.
218           See also <file:Documentation/i386/IO-APIC.txt>,
219           <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
220           <http://www.tldp.org/docs.html#howto>.
222           If you don't know what to do here, say N.
224 config NR_CPUS
225         int
226         depends on SMP
227         default "2"
229 config USE_GENERIC_SMP_HELPERS
230         bool
231         depends on SMP
232         default y
234 source "kernel/Kconfig.preempt"
236 config MN10300_CURRENT_IN_E2
237         bool "Hold current task address in E2 register"
238         depends on !SMP
239         default y
240         help
241           This option removes the E2/R2 register from the set available to gcc
242           for normal use and instead uses it to store the address of the
243           current process's task_struct whilst in the kernel.
245           This means the kernel doesn't need to calculate the address each time
246           "current" is used (take SP, AND with mask and dereference pointer
247           just to get the address), and instead can just use E2+offset
248           addressing each time.
250           This has no effect on userspace.
252 config MN10300_USING_JTAG
253         bool "Using JTAG to debug kernel"
254         default y
255         help
256           This options indicates that JTAG will be used to debug the kernel. It
257           suppresses the use of certain hardware debugging features, such as
258           single-stepping, which are taken over completely by the JTAG unit.
260 source "kernel/Kconfig.hz"
261 source "kernel/time/Kconfig"
263 config MN10300_RTC
264         bool "Using MN10300 RTC"
265         depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
266         select GENERIC_CMOS_UPDATE
267         default n
268         help
269           This option enables support for the RTC, thus enabling time to be
270           tracked, even when system is powered down. This is available on-chip
271           on the MN103E010.
273 config MN10300_WD_TIMER
274         bool "Using MN10300 watchdog timer"
275         default y
276         help
277           This options indicates that the watchdog timer will be used.
279 config PCI
280         bool "Use PCI"
281         depends on MN10300_UNIT_ASB2305
282         default y
283         help
284           Some systems (such as the ASB2305) have PCI onboard. If you have one
285           of these boards and you wish to use the PCI facilities, say Y here.
287           The PCI-HOWTO, available from
288           <http://www.tldp.org/docs.html#howto>, contains valuable
289           information about which PCI hardware does work under Linux and which
290           doesn't.
292 source "drivers/pci/Kconfig"
294 source "drivers/pcmcia/Kconfig"
296 menu "MN10300 internal serial options"
298 config MN10300_PROC_HAS_TTYSM0
299         bool
300         default n
302 config MN10300_PROC_HAS_TTYSM1
303         bool
304         default n
306 config MN10300_PROC_HAS_TTYSM2
307         bool
308         default n
310 config MN10300_TTYSM
311         bool "Support for ttySM serial ports"
312         depends on MN10300
313         default y
314         select SERIAL_CORE
315         help
316           This option enables support for the on-chip serial ports that the
317           MN10300 has available.
319 config MN10300_TTYSM_CONSOLE
320         bool "Support for console on ttySM serial ports"
321         depends on MN10300_TTYSM
322         select SERIAL_CORE_CONSOLE
323         help
324           This option enables support for a console on the on-chip serial ports
325           that the MN10300 has available.
328 # /dev/ttySM0
330 config MN10300_TTYSM0
331         bool "Enable SIF0 (/dev/ttySM0)"
332         depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM0
333         help
334           Enable access to SIF0 through /dev/ttySM0 or gdb-stub
336 choice
337         prompt "Select the timer to supply the clock for SIF0"
338         default MN10300_TTYSM0_TIMER8
339         depends on MN10300_TTYSM0
341 config MN10300_TTYSM0_TIMER8
342         bool "Use timer 8 (16-bit)"
344 config MN10300_TTYSM0_TIMER2
345         bool "Use timer 2 (8-bit)"
347 endchoice
350 # /dev/ttySM1
352 config MN10300_TTYSM1
353         bool "Enable SIF1 (/dev/ttySM1)"
354         depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM1
355         help
356           Enable access to SIF1 through /dev/ttySM1 or gdb-stub
358 choice
359         prompt "Select the timer to supply the clock for SIF1"
360         default MN10300_TTYSM1_TIMER12 \
361                 if !(AM33_2 || AM33_3)
362         default MN10300_TTYSM1_TIMER9 \
363                 if AM33_2 || AM33_3
364         depends on MN10300_TTYSM1
366 config MN10300_TTYSM1_TIMER12
367         bool "Use timer 12 (16-bit)"
368         depends on !(AM33_2 || AM33_3)
370 config MN10300_TTYSM1_TIMER9
371         bool "Use timer 9 (16-bit)"
372         depends on AM33_2 || AM33_3
374 config MN10300_TTYSM1_TIMER3
375         bool "Use timer 3 (8-bit)"
376         depends on AM33_2 || AM33_3
378 endchoice
381 # /dev/ttySM2
383 config MN10300_TTYSM2
384         bool "Enable SIF2 (/dev/ttySM2)"
385         depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM2
386         help
387           Enable access to SIF2 through /dev/ttySM2 or gdb-stub
389 choice
390         prompt "Select the timer to supply the clock for SIF2"
391         default MN10300_TTYSM2_TIMER3 \
392                 if !(AM33_2 || AM33_3)
393         default MN10300_TTYSM2_TIMER10 \
394                 if AM33_2 || AM33_3
395         depends on MN10300_TTYSM2
397 config MN10300_TTYSM2_TIMER9
398         bool "Use timer 9 (16-bit)"
399         depends on !(AM33_2 || AM33_3)
401 config MN10300_TTYSM2_TIMER1
402         bool "Use timer 1 (8-bit)"
403         depends on !(AM33_2 || AM33_3)
405 config MN10300_TTYSM2_TIMER3
406         bool "Use timer 3 (8-bit)"
407         depends on !(AM33_2 || AM33_3)
409 config MN10300_TTYSM2_TIMER10
410         bool "Use timer 10 (16-bit)"
411         depends on AM33_2 || AM33_3
413 endchoice
415 config MN10300_TTYSM2_CTS
416         bool "Enable the use of the CTS line /dev/ttySM2"
417         depends on MN10300_TTYSM2 && AM33_2
419 endmenu
421 menu "Interrupt request priority options"
423 comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
425 comment "____Non-maskable interrupt levels____"
426 comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"
428 config GDBSTUB_IRQ_LEVEL
429         int "GDBSTUB interrupt priority"
430         depends on GDBSTUB
431         range 0 1 if LINUX_CLI_LEVEL = 2
432         range 0 2 if LINUX_CLI_LEVEL = 3
433         range 0 3 if LINUX_CLI_LEVEL = 4
434         range 0 4 if LINUX_CLI_LEVEL = 5
435         range 0 5 if LINUX_CLI_LEVEL = 6
436         default 0
438 comment "The following must be set to a higher priority than local_irq_disable()"
440 config MN10300_SERIAL_IRQ_LEVEL
441         int "MN10300 on-chip serial interrupt priority"
442         depends on MN10300_TTYSM
443         range 1 1 if LINUX_CLI_LEVEL = 2
444         range 1 2 if LINUX_CLI_LEVEL = 3
445         range 1 3 if LINUX_CLI_LEVEL = 4
446         range 1 4 if LINUX_CLI_LEVEL = 5
447         range 1 5 if LINUX_CLI_LEVEL = 6
448         default 1
450 comment "-"
451 comment "____Maskable interrupt levels____"
453 config LINUX_CLI_LEVEL
454         int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
455         range 2 6
456         default 2
457         help
458           local_irq_disable() doesn't actually disable maskable interrupts -
459           what it does is restrict the levels of interrupt which are permitted
460           (a lower level indicates a higher priority) by lowering the value in
461           EPSW.IM from 7.  Any interrupt is permitted for which the level is
462           lower than EPSW.IM.
464           Certain interrupts, such as GDBSTUB and virtual MN10300 on-chip
465           serial DMA interrupts are allowed to interrupt normal disabled
466           sections.
468 comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
470 config TIMER_IRQ_LEVEL
471         int "Kernel timer interrupt priority"
472         range LINUX_CLI_LEVEL 6
473         default 4
475 config PCI_IRQ_LEVEL
476         int "PCI interrupt priority"
477         depends on PCI
478         range LINUX_CLI_LEVEL 6
479         default 5
481 config ETHERNET_IRQ_LEVEL
482         int "Ethernet interrupt priority"
483         depends on SMC91X || SMC911X || SMSC911X
484         range LINUX_CLI_LEVEL 6
485         default 6
487 config EXT_SERIAL_IRQ_LEVEL
488         int "External serial port interrupt priority"
489         depends on SERIAL_8250
490         range LINUX_CLI_LEVEL 6
491         default 6
493 endmenu
495 source "mm/Kconfig"
497 menu "Power management options"
498 source kernel/power/Kconfig
499 endmenu
501 endmenu
504 menu "Executable formats"
506 source "fs/Kconfig.binfmt"
508 endmenu
510 source "net/Kconfig"
512 source "drivers/Kconfig"
514 source "fs/Kconfig"
516 source "arch/mn10300/Kconfig.debug"
518 source "security/Kconfig"
520 source "crypto/Kconfig"
522 source "lib/Kconfig"