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