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