1 # SPDX-License-Identifier: GPL-2.0
4 select HAVE_EXIT_THREAD
7 select GENERIC_IRQ_SHOW
8 select ARCH_WANT_IPC_PARSE_VERSION
9 select HAVE_ARCH_TRACEHOOK
11 select GENERIC_ATOMIC64
12 select HAVE_NMI_WATCHDOG if MN10300_WD_TIMER
14 select GENERIC_CLOCKEVENTS
15 select MODULES_USE_ELF_RELA
16 select OLD_SIGSUSPEND3
18 select HAVE_DEBUG_STACKOVERFLOW
19 select ARCH_NO_COHERENT_DMA_MMAP
29 select MN10300_HAS_ATOMIC_OPS_UNIT
30 select MN10300_HAS_CACHE_SNOOP
32 config ERRATUM_NEED_TO_RELOAD_MMUCTR
33 def_bool y if AM33_3 || AM34_2
44 config RWSEM_GENERIC_SPINLOCK
47 config RWSEM_XCHGADD_ALGORITHM
50 config GENERIC_CALIBRATE_DELAY
53 config GENERIC_HWEIGHT
63 config ARCH_HAS_ILOG2_U32
71 source "kernel/Kconfig.freezer"
74 menu "Panasonic MN10300 system setup"
78 default MN10300_UNIT_ASB2303
80 This option specifies board for which the kernel will be
81 compiled. It affects the external peripherals catered for.
83 config MN10300_UNIT_ASB2303
86 config MN10300_UNIT_ASB2305
89 config MN10300_UNIT_ASB2364
91 select SMSC911X_ARCH_HOOKS if SMSC911X
96 prompt "Processor support"
97 default MN10300_PROC_MN103E010
99 This option specifies the processor for which the kernel will be
100 compiled. It affects the on-chip peripherals catered for.
102 config MN10300_PROC_MN103E010
104 depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
106 select MN10300_PROC_HAS_TTYSM0
107 select MN10300_PROC_HAS_TTYSM1
108 select MN10300_PROC_HAS_TTYSM2
110 config MN10300_PROC_MN2WS0050
112 depends on MN10300_UNIT_ASB2364
114 select MN10300_PROC_HAS_TTYSM0
115 select MN10300_PROC_HAS_TTYSM1
116 select MN10300_PROC_HAS_TTYSM2
120 config MN10300_HAS_ATOMIC_OPS_UNIT
123 This should be enabled if the processor has an atomic ops unit
124 capable of doing LL/SC equivalent operations.
129 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
132 bool "Save FPU state lazily"
134 depends on FPU && !SMP
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
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.
146 source "arch/mn10300/mm/Kconfig.cache"
148 config MN10300_TLB_USE_PIDR
151 menu "Memory layout options"
153 config KERNEL_RAM_BASE_ADDRESS
154 hex "Base address of kernel RAM"
157 config INTERRUPT_VECTOR_BASE
158 hex "Base address of vector table"
161 The base address of the vector table will be programmed into
162 the TBR register. It must be on 16MiB address boundary.
164 config KERNEL_TEXT_ADDRESS
165 hex "Base address of kernel"
168 config KERNEL_ZIMAGE_BASE_ADDRESS
169 hex "Base address of compressed vmlinux image"
172 config BOOT_STACK_OFFSET
174 default "0xF00" if SMP
175 default "0xFF0" if !SMP
177 config BOOT_STACK_SIZE
184 bool "Symmetric multi-processing support"
186 depends on MN10300_PROC_MN2WS0050
188 This enables support for systems with more than one CPU. If you have
189 a system with only one CPU, say N. If you have a system with more
192 If you say N here, the kernel will run on uni- and multiprocessor
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,
195 uniprocessor machines. On a uniprocessor machine, the kernel
196 will run faster if you say N here.
198 See also <file:Documentation/x86/i386/IO-APIC.txt>,
199 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
200 <http://www.tldp.org/docs.html#howto>.
202 If you don't know what to do here, say N.
209 source "kernel/Kconfig.preempt"
211 config MN10300_CURRENT_IN_E2
212 bool "Hold current task address in E2 register"
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.
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.
225 This has no effect on userspace.
227 config MN10300_USING_JTAG
228 bool "Using JTAG to debug kernel"
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.
235 source "kernel/Kconfig.hz"
238 bool "Using MN10300 RTC"
239 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
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
249 config MN10300_WD_TIMER
250 bool "Using MN10300 watchdog timer"
253 This options indicates that the watchdog timer will be used.
257 depends on MN10300_UNIT_ASB2305
259 select GENERIC_PCI_IOMAP
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.
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
269 source "drivers/pci/Kconfig"
271 source "drivers/pcmcia/Kconfig"
273 menu "MN10300 internal serial options"
275 config MN10300_PROC_HAS_TTYSM0
279 config MN10300_PROC_HAS_TTYSM1
283 config MN10300_PROC_HAS_TTYSM2
288 bool "Support for ttySM serial ports"
293 This option enables support for the on-chip serial ports that the
294 MN10300 has available.
296 config MN10300_TTYSM_CONSOLE
297 bool "Support for console on ttySM serial ports"
298 depends on MN10300_TTYSM
299 select SERIAL_CORE_CONSOLE
301 This option enables support for a console on the on-chip serial ports
302 that the MN10300 has available.
307 config MN10300_TTYSM0
308 bool "Enable SIF0 (/dev/ttySM0)"
309 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM0
311 Enable access to SIF0 through /dev/ttySM0 or gdb-stub
314 prompt "Select the timer to supply the clock for SIF0"
315 default MN10300_TTYSM0_TIMER8
316 depends on MN10300_TTYSM0
318 config MN10300_TTYSM0_TIMER8
319 bool "Use timer 8 (16-bit)"
321 config MN10300_TTYSM0_TIMER2
322 bool "Use timer 2 (8-bit)"
329 config MN10300_TTYSM1
330 bool "Enable SIF1 (/dev/ttySM1)"
331 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM1
333 Enable access to SIF1 through /dev/ttySM1 or gdb-stub
336 prompt "Select the timer to supply the clock for SIF1"
337 default MN10300_TTYSM1_TIMER12 \
338 if !(AM33_2 || AM33_3)
339 default MN10300_TTYSM1_TIMER9 \
341 depends on MN10300_TTYSM1
343 config MN10300_TTYSM1_TIMER12
344 bool "Use timer 12 (16-bit)"
345 depends on !(AM33_2 || AM33_3)
347 config MN10300_TTYSM1_TIMER9
348 bool "Use timer 9 (16-bit)"
349 depends on AM33_2 || AM33_3
351 config MN10300_TTYSM1_TIMER3
352 bool "Use timer 3 (8-bit)"
353 depends on AM33_2 || AM33_3
360 config MN10300_TTYSM2
361 bool "Enable SIF2 (/dev/ttySM2)"
362 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM2
364 Enable access to SIF2 through /dev/ttySM2 or gdb-stub
367 prompt "Select the timer to supply the clock for SIF2"
368 default MN10300_TTYSM2_TIMER3 \
369 if !(AM33_2 || AM33_3)
370 default MN10300_TTYSM2_TIMER10 \
372 depends on MN10300_TTYSM2
374 config MN10300_TTYSM2_TIMER9
375 bool "Use timer 9 (16-bit)"
376 depends on !(AM33_2 || AM33_3)
378 config MN10300_TTYSM2_TIMER1
379 bool "Use timer 1 (8-bit)"
380 depends on !(AM33_2 || AM33_3)
382 config MN10300_TTYSM2_TIMER3
383 bool "Use timer 3 (8-bit)"
384 depends on !(AM33_2 || AM33_3)
386 config MN10300_TTYSM2_TIMER10
387 bool "Use timer 10 (16-bit)"
388 depends on AM33_2 || AM33_3
392 config MN10300_TTYSM2_CTS
393 bool "Enable the use of the CTS line /dev/ttySM2"
394 depends on MN10300_TTYSM2 && AM33_2
398 menu "Interrupt request priority options"
400 comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
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"
405 config DEBUGGER_IRQ_LEVEL
406 int "DEBUGGER interrupt priority"
407 depends on KERNEL_DEBUGGER
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
415 comment "The following must be set to a higher priority than local_irq_disable()"
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
428 comment "____Maskable interrupt levels____"
430 config LINUX_CLI_LEVEL
431 int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
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
441 Certain interrupts, such as DEBUGGER and virtual MN10300 on-chip
442 serial DMA interrupts are allowed to interrupt normal disabled
445 comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
447 config TIMER_IRQ_LEVEL
448 int "Kernel timer interrupt priority"
449 range LINUX_CLI_LEVEL 6
453 int "PCI interrupt priority"
455 range LINUX_CLI_LEVEL 6
458 config ETHERNET_IRQ_LEVEL
459 int "Ethernet interrupt priority"
460 depends on SMC91X || SMC911X || SMSC911X
461 range LINUX_CLI_LEVEL 6
464 config EXT_SERIAL_IRQ_LEVEL
465 int "External serial port interrupt priority"
466 depends on SERIAL_8250
467 range LINUX_CLI_LEVEL 6
474 menu "Power management options"
475 source kernel/power/Kconfig
481 menu "Executable formats"
483 source "fs/Kconfig.binfmt"
489 source "drivers/Kconfig"
493 source "arch/mn10300/Kconfig.debug"
495 source "security/Kconfig"
497 source "crypto/Kconfig"