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