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