aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mn10300/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mn10300/Kconfig')
-rw-r--r--arch/mn10300/Kconfig279
1 files changed, 219 insertions, 60 deletions
diff --git a/arch/mn10300/Kconfig b/arch/mn10300/Kconfig
index 7c2a2f7f8dc1..365766a3d536 100644
--- a/arch/mn10300/Kconfig
+++ b/arch/mn10300/Kconfig
@@ -9,8 +9,19 @@ config MN10300
9 def_bool y 9 def_bool y
10 select HAVE_OPROFILE 10 select HAVE_OPROFILE
11 11
12config AM33 12config AM33_2
13 def_bool y 13 def_bool n
14
15config AM33_3
16 def_bool n
17
18config AM34_2
19 def_bool n
20 select MN10300_HAS_ATOMIC_OPS_UNIT
21 select MN10300_HAS_CACHE_SNOOP
22
23config ERRATUM_NEED_TO_RELOAD_MMUCTR
24 def_bool y if AM33_3 || AM34_2
14 25
15config MMU 26config MMU
16 def_bool y 27 def_bool y
@@ -37,7 +48,7 @@ config GENERIC_CALIBRATE_DELAY
37 def_bool y 48 def_bool y
38 49
39config GENERIC_CMOS_UPDATE 50config GENERIC_CMOS_UPDATE
40 def_bool y 51 def_bool n
41 52
42config GENERIC_FIND_NEXT_BIT 53config GENERIC_FIND_NEXT_BIT
43 def_bool y 54 def_bool y
@@ -45,6 +56,27 @@ config GENERIC_FIND_NEXT_BIT
45config GENERIC_HWEIGHT 56config GENERIC_HWEIGHT
46 def_bool y 57 def_bool y
47 58
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
48config GENERIC_BUG 80config GENERIC_BUG
49 def_bool y 81 def_bool y
50 82
@@ -61,18 +93,14 @@ config GENERIC_HARDIRQS
61config HOTPLUG_CPU 93config HOTPLUG_CPU
62 def_bool n 94 def_bool n
63 95
64config HZ 96mainmenu "Panasonic MN10300/AM33 Kernel Configuration"
65 int
66 default 1000
67
68mainmenu "Matsushita MN10300/AM33 Kernel Configuration"
69 97
70source "init/Kconfig" 98source "init/Kconfig"
71 99
72source "kernel/Kconfig.freezer" 100source "kernel/Kconfig.freezer"
73 101
74 102
75menu "Matsushita MN10300 system setup" 103menu "Panasonic MN10300 system setup"
76 104
77choice 105choice
78 prompt "Unit type" 106 prompt "Unit type"
@@ -87,6 +115,10 @@ config MN10300_UNIT_ASB2303
87config MN10300_UNIT_ASB2305 115config MN10300_UNIT_ASB2305
88 bool "ASB2305" 116 bool "ASB2305"
89 117
118config MN10300_UNIT_ASB2364
119 bool "ASB2364"
120 select SMSC911X_ARCH_HOOKS if SMSC911X
121
90endchoice 122endchoice
91 123
92choice 124choice
@@ -99,57 +131,51 @@ choice
99config MN10300_PROC_MN103E010 131config MN10300_PROC_MN103E010
100 bool "MN103E010" 132 bool "MN103E010"
101 depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305 133 depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
134 select AM33_2
135 select MN10300_PROC_HAS_TTYSM0
136 select MN10300_PROC_HAS_TTYSM1
137 select MN10300_PROC_HAS_TTYSM2
138
139config MN10300_PROC_MN2WS0050
140 bool "MN2WS0050"
141 depends on MN10300_UNIT_ASB2364
142 select AM34_2
102 select MN10300_PROC_HAS_TTYSM0 143 select MN10300_PROC_HAS_TTYSM0
103 select MN10300_PROC_HAS_TTYSM1 144 select MN10300_PROC_HAS_TTYSM1
104 select MN10300_PROC_HAS_TTYSM2 145 select MN10300_PROC_HAS_TTYSM2
105 146
106endchoice 147endchoice
107 148
108choice 149config MN10300_HAS_ATOMIC_OPS_UNIT
109 prompt "Processor core support" 150 def_bool n
110 default MN10300_CPU_AM33V2
111 help 151 help
112 This option specifies the processor core for which the kernel will be 152 This should be enabled if the processor has an atomic ops unit
113 compiled. It affects the instruction set used. 153 capable of doing LL/SC equivalent operations.
114
115config MN10300_CPU_AM33V2
116 bool "AM33v2"
117
118endchoice
119 154
120config FPU 155config FPU
121 bool "FPU present" 156 bool "FPU present"
122 default y 157 default y
123 depends on MN10300_PROC_MN103E010 158 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
124 159
125choice 160config LAZY_SAVE_FPU
126 prompt "CPU Caching mode" 161 bool "Save FPU state lazily"
127 default MN10300_CACHE_WBACK 162 default y
163 depends on FPU && !SMP
128 help 164 help
129 This option determines the caching mode for the kernel. 165 Enable this to be lazy in the saving of the FPU state to the owning
130 166 task's thread struct. This is useful if most tasks on the system
131 Write-Back caching mode involves the all reads and writes causing 167 don't use the FPU as only those tasks that use it will pass it
132 the affected cacheline to be read into the cache first before being 168 between them, and the state needn't be saved for a task that isn't
133 operated upon. Memory is not then updated by a write until the cache 169 using it.
134 is filled and a cacheline needs to be displaced from the cache to
135 make room. Only at that point is it written back.
136
137 Write-Through caching only fetches cachelines from memory on a
138 read. Writes always get written directly to memory. If the affected
139 cacheline is also in cache, it will be updated too.
140
141 The final option is to turn of caching entirely.
142 170
143config MN10300_CACHE_WBACK 171 This can't be so easily used on SMP as the process that owns the FPU
144 bool "Write-Back" 172 state on a CPU may be currently running on another CPU, so for the
173 moment, it is disabled.
145 174
146config MN10300_CACHE_WTHRU 175source "arch/mn10300/mm/Kconfig.cache"
147 bool "Write-Through"
148 176
149config MN10300_CACHE_DISABLED 177config MN10300_TLB_USE_PIDR
150 bool "Disabled" 178 def_bool y
151
152endchoice
153 179
154menu "Memory layout options" 180menu "Memory layout options"
155 181
@@ -170,24 +196,55 @@ config KERNEL_TEXT_ADDRESS
170 196
171config KERNEL_ZIMAGE_BASE_ADDRESS 197config KERNEL_ZIMAGE_BASE_ADDRESS
172 hex "Base address of compressed vmlinux image" 198 hex "Base address of compressed vmlinux image"
173 default "0x90700000" 199 default "0x50700000"
174 200
201config BOOT_STACK_OFFSET
202 hex
203 default "0xF00" if SMP
204 default "0xFF0" if !SMP
205
206config BOOT_STACK_SIZE
207 hex
208 depends on SMP
209 default "0x100"
175endmenu 210endmenu
176 211
177config PREEMPT 212config SMP
178 bool "Preemptible Kernel" 213 bool "Symmetric multi-processing support"
179 help 214 default y
180 This option reduces the latency of the kernel when reacting to 215 depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050
181 real-time or interactive events by allowing a low priority process to 216 ---help---
182 be preempted even if it is in kernel mode executing a system call. 217 This enables support for systems with more than one CPU. If you have
183 This allows applications to run more reliably even when the system is 218 a system with only one CPU, like most personal computers, say N. If
184 under load. 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.
185 226
186 Say Y here if you are building a kernel for a desktop, embedded 227 See also <file:Documentation/i386/IO-APIC.txt>,
187 or real-time system. Say N if you are unsure. 228 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
229 <http://www.tldp.org/docs.html#howto>.
230
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"
188 244
189config MN10300_CURRENT_IN_E2 245config MN10300_CURRENT_IN_E2
190 bool "Hold current task address in E2 register" 246 bool "Hold current task address in E2 register"
247 depends on !SMP
191 default y 248 default y
192 help 249 help
193 This option removes the E2/R2 register from the set available to gcc 250 This option removes the E2/R2 register from the set available to gcc
@@ -209,12 +266,15 @@ config MN10300_USING_JTAG
209 suppresses the use of certain hardware debugging features, such as 266 suppresses the use of certain hardware debugging features, such as
210 single-stepping, which are taken over completely by the JTAG unit. 267 single-stepping, which are taken over completely by the JTAG unit.
211 268
269source "kernel/Kconfig.hz"
270source "kernel/time/Kconfig"
271
212config MN10300_RTC 272config MN10300_RTC
213 bool "Using MN10300 RTC" 273 bool "Using MN10300 RTC"
214 depends on MN10300_PROC_MN103E010 274 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
275 select GENERIC_CMOS_UPDATE
215 default n 276 default n
216 help 277 help
217
218 This option enables support for the RTC, thus enabling time to be 278 This option enables support for the RTC, thus enabling time to be
219 tracked, even when system is powered down. This is available on-chip 279 tracked, even when system is powered down. This is available on-chip
220 on the MN103E010. 280 on the MN103E010.
@@ -306,14 +366,23 @@ config MN10300_TTYSM1
306 366
307choice 367choice
308 prompt "Select the timer to supply the clock for SIF1" 368 prompt "Select the timer to supply the clock for SIF1"
309 default MN10300_TTYSM0_TIMER9 369 default MN10300_TTYSM1_TIMER12 \
370 if !(AM33_2 || AM33_3)
371 default MN10300_TTYSM1_TIMER9 \
372 if AM33_2 || AM33_3
310 depends on MN10300_TTYSM1 373 depends on MN10300_TTYSM1
311 374
375config MN10300_TTYSM1_TIMER12
376 bool "Use timer 12 (16-bit)"
377 depends on !(AM33_2 || AM33_3)
378
312config MN10300_TTYSM1_TIMER9 379config MN10300_TTYSM1_TIMER9
313 bool "Use timer 9 (16-bit)" 380 bool "Use timer 9 (16-bit)"
381 depends on AM33_2 || AM33_3
314 382
315config MN10300_TTYSM1_TIMER3 383config MN10300_TTYSM1_TIMER3
316 bool "Use timer 3 (8-bit)" 384 bool "Use timer 3 (8-bit)"
385 depends on AM33_2 || AM33_3
317 386
318endchoice 387endchoice
319 388
@@ -328,17 +397,107 @@ config MN10300_TTYSM2
328 397
329choice 398choice
330 prompt "Select the timer to supply the clock for SIF2" 399 prompt "Select the timer to supply the clock for SIF2"
331 default MN10300_TTYSM0_TIMER10 400 default MN10300_TTYSM2_TIMER3 \
401 if !(AM33_2 || AM33_3)
402 default MN10300_TTYSM2_TIMER10 \
403 if AM33_2 || AM33_3
332 depends on MN10300_TTYSM2 404 depends on MN10300_TTYSM2
333 405
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
334config MN10300_TTYSM2_TIMER10 418config MN10300_TTYSM2_TIMER10
335 bool "Use timer 10 (16-bit)" 419 bool "Use timer 10 (16-bit)"
420 depends on AM33_2 || AM33_3
336 421
337endchoice 422endchoice
338 423
339config MN10300_TTYSM2_CTS 424config MN10300_TTYSM2_CTS
340 bool "Enable the use of the CTS line /dev/ttySM2" 425 bool "Enable the use of the CTS line /dev/ttySM2"
341 depends on MN10300_TTYSM2 426 depends on MN10300_TTYSM2 && AM33_2
427
428endmenu
429
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
342 501
343endmenu 502endmenu
344 503