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