diff options
Diffstat (limited to 'arch/mn10300/Kconfig')
-rw-r--r-- | arch/mn10300/Kconfig | 279 |
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 | ||
12 | config AM33 | 12 | config AM33_2 |
13 | def_bool y | 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 | ||
14 | 25 | ||
15 | config MMU | 26 | config 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 | ||
39 | config GENERIC_CMOS_UPDATE | 50 | config GENERIC_CMOS_UPDATE |
40 | def_bool y | 51 | def_bool n |
41 | 52 | ||
42 | config GENERIC_FIND_NEXT_BIT | 53 | config GENERIC_FIND_NEXT_BIT |
43 | def_bool y | 54 | def_bool y |
@@ -45,6 +56,27 @@ config GENERIC_FIND_NEXT_BIT | |||
45 | config GENERIC_HWEIGHT | 56 | config GENERIC_HWEIGHT |
46 | def_bool y | 57 | def_bool y |
47 | 58 | ||
59 | config GENERIC_TIME | ||
60 | def_bool y | ||
61 | |||
62 | config GENERIC_CLOCKEVENTS | ||
63 | def_bool y | ||
64 | |||
65 | config GENERIC_CLOCKEVENTS_BUILD | ||
66 | def_bool y | ||
67 | depends on GENERIC_CLOCKEVENTS | ||
68 | |||
69 | config GENERIC_CLOCKEVENTS_BROADCAST | ||
70 | bool | ||
71 | |||
72 | config CEVT_MN10300 | ||
73 | def_bool y | ||
74 | depends on GENERIC_CLOCKEVENTS | ||
75 | |||
76 | config CSRC_MN10300 | ||
77 | def_bool y | ||
78 | depends on GENERIC_TIME | ||
79 | |||
48 | config GENERIC_BUG | 80 | config GENERIC_BUG |
49 | def_bool y | 81 | def_bool y |
50 | 82 | ||
@@ -61,18 +93,14 @@ config GENERIC_HARDIRQS | |||
61 | config HOTPLUG_CPU | 93 | config HOTPLUG_CPU |
62 | def_bool n | 94 | def_bool n |
63 | 95 | ||
64 | config HZ | 96 | mainmenu "Panasonic MN10300/AM33 Kernel Configuration" |
65 | int | ||
66 | default 1000 | ||
67 | |||
68 | mainmenu "Matsushita MN10300/AM33 Kernel Configuration" | ||
69 | 97 | ||
70 | source "init/Kconfig" | 98 | source "init/Kconfig" |
71 | 99 | ||
72 | source "kernel/Kconfig.freezer" | 100 | source "kernel/Kconfig.freezer" |
73 | 101 | ||
74 | 102 | ||
75 | menu "Matsushita MN10300 system setup" | 103 | menu "Panasonic MN10300 system setup" |
76 | 104 | ||
77 | choice | 105 | choice |
78 | prompt "Unit type" | 106 | prompt "Unit type" |
@@ -87,6 +115,10 @@ config MN10300_UNIT_ASB2303 | |||
87 | config MN10300_UNIT_ASB2305 | 115 | config MN10300_UNIT_ASB2305 |
88 | bool "ASB2305" | 116 | bool "ASB2305" |
89 | 117 | ||
118 | config MN10300_UNIT_ASB2364 | ||
119 | bool "ASB2364" | ||
120 | select SMSC911X_ARCH_HOOKS if SMSC911X | ||
121 | |||
90 | endchoice | 122 | endchoice |
91 | 123 | ||
92 | choice | 124 | choice |
@@ -99,57 +131,51 @@ choice | |||
99 | config MN10300_PROC_MN103E010 | 131 | config 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 | |||
139 | config 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 | ||
106 | endchoice | 147 | endchoice |
107 | 148 | ||
108 | choice | 149 | config 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 | |||
115 | config MN10300_CPU_AM33V2 | ||
116 | bool "AM33v2" | ||
117 | |||
118 | endchoice | ||
119 | 154 | ||
120 | config FPU | 155 | config 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 | ||
125 | choice | 160 | config 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 | ||
143 | config 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 | ||
146 | config MN10300_CACHE_WTHRU | 175 | source "arch/mn10300/mm/Kconfig.cache" |
147 | bool "Write-Through" | ||
148 | 176 | ||
149 | config MN10300_CACHE_DISABLED | 177 | config MN10300_TLB_USE_PIDR |
150 | bool "Disabled" | 178 | def_bool y |
151 | |||
152 | endchoice | ||
153 | 179 | ||
154 | menu "Memory layout options" | 180 | menu "Memory layout options" |
155 | 181 | ||
@@ -170,24 +196,55 @@ config KERNEL_TEXT_ADDRESS | |||
170 | 196 | ||
171 | config KERNEL_ZIMAGE_BASE_ADDRESS | 197 | config 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 | ||
201 | config BOOT_STACK_OFFSET | ||
202 | hex | ||
203 | default "0xF00" if SMP | ||
204 | default "0xFF0" if !SMP | ||
205 | |||
206 | config BOOT_STACK_SIZE | ||
207 | hex | ||
208 | depends on SMP | ||
209 | default "0x100" | ||
175 | endmenu | 210 | endmenu |
176 | 211 | ||
177 | config PREEMPT | 212 | config 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 | |||
233 | config NR_CPUS | ||
234 | int | ||
235 | depends on SMP | ||
236 | default "2" | ||
237 | |||
238 | config USE_GENERIC_SMP_HELPERS | ||
239 | bool | ||
240 | depends on SMP | ||
241 | default y | ||
242 | |||
243 | source "kernel/Kconfig.preempt" | ||
188 | 244 | ||
189 | config MN10300_CURRENT_IN_E2 | 245 | config 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 | ||
269 | source "kernel/Kconfig.hz" | ||
270 | source "kernel/time/Kconfig" | ||
271 | |||
212 | config MN10300_RTC | 272 | config 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 | ||
307 | choice | 367 | choice |
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 | ||
375 | config MN10300_TTYSM1_TIMER12 | ||
376 | bool "Use timer 12 (16-bit)" | ||
377 | depends on !(AM33_2 || AM33_3) | ||
378 | |||
312 | config MN10300_TTYSM1_TIMER9 | 379 | config 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 | ||
315 | config MN10300_TTYSM1_TIMER3 | 383 | config 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 | ||
318 | endchoice | 387 | endchoice |
319 | 388 | ||
@@ -328,17 +397,107 @@ config MN10300_TTYSM2 | |||
328 | 397 | ||
329 | choice | 398 | choice |
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 | ||
406 | config MN10300_TTYSM2_TIMER9 | ||
407 | bool "Use timer 9 (16-bit)" | ||
408 | depends on !(AM33_2 || AM33_3) | ||
409 | |||
410 | config MN10300_TTYSM2_TIMER1 | ||
411 | bool "Use timer 1 (8-bit)" | ||
412 | depends on !(AM33_2 || AM33_3) | ||
413 | |||
414 | config MN10300_TTYSM2_TIMER3 | ||
415 | bool "Use timer 3 (8-bit)" | ||
416 | depends on !(AM33_2 || AM33_3) | ||
417 | |||
334 | config MN10300_TTYSM2_TIMER10 | 418 | config 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 | ||
337 | endchoice | 422 | endchoice |
338 | 423 | ||
339 | config MN10300_TTYSM2_CTS | 424 | config 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 | |||
428 | endmenu | ||
429 | |||
430 | menu "Interrupt request priority options" | ||
431 | |||
432 | comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)" | ||
433 | |||
434 | comment "____Non-maskable interrupt levels____" | ||
435 | comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial" | ||
436 | |||
437 | config 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 | |||
447 | comment "The following must be set to a higher priority than local_irq_disable()" | ||
448 | |||
449 | config 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 | |||
459 | comment "-" | ||
460 | comment "____Maskable interrupt levels____" | ||
461 | |||
462 | config 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 | |||
477 | comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL" | ||
478 | |||
479 | config TIMER_IRQ_LEVEL | ||
480 | int "Kernel timer interrupt priority" | ||
481 | range LINUX_CLI_LEVEL 6 | ||
482 | default 4 | ||
483 | |||
484 | config PCI_IRQ_LEVEL | ||
485 | int "PCI interrupt priority" | ||
486 | depends on PCI | ||
487 | range LINUX_CLI_LEVEL 6 | ||
488 | default 5 | ||
489 | |||
490 | config ETHERNET_IRQ_LEVEL | ||
491 | int "Ethernet interrupt priority" | ||
492 | depends on SMC91X || SMC911X || SMSC911X | ||
493 | range LINUX_CLI_LEVEL 6 | ||
494 | default 6 | ||
495 | |||
496 | config 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 | ||
343 | endmenu | 502 | endmenu |
344 | 503 | ||