13 select MN10300_HAS_ATOMIC_OPS_UNIT
14 select MN10300_HAS_CACHE_SNOOP
16 config ERRATUM_NEED_TO_RELOAD_MMUCTR
17 def_bool y if AM33_3 || AM34_2
31 config RWSEM_GENERIC_SPINLOCK
34 config RWSEM_XCHGADD_ALGORITHM
37 config GENERIC_HARDIRQS_NO__DO_IRQ
40 config GENERIC_CALIBRATE_DELAY
43 config GENERIC_CMOS_UPDATE
46 config GENERIC_FIND_NEXT_BIT
49 config GENERIC_HWEIGHT
55 config GENERIC_CLOCKEVENTS
58 config GENERIC_CLOCKEVENTS_BUILD
60 depends on GENERIC_CLOCKEVENTS
62 config GENERIC_CLOCKEVENTS_BROADCAST
67 depends on GENERIC_CLOCKEVENTS
71 depends on GENERIC_TIME
79 config ARCH_HAS_ILOG2_U32
82 # Use the generic interrupt handling code in kernel/irq/
83 config GENERIC_HARDIRQS
91 source "kernel/Kconfig.freezer"
94 menu "Panasonic MN10300 system setup"
98 default MN10300_UNIT_ASB2303
100 This option specifies board for which the kernel will be
101 compiled. It affects the external peripherals catered for.
103 config MN10300_UNIT_ASB2303
106 config MN10300_UNIT_ASB2305
109 config MN10300_UNIT_ASB2364
111 select SMSC911X_ARCH_HOOKS if SMSC911X
116 prompt "Processor support"
117 default MN10300_PROC_MN103E010
119 This option specifies the processor for which the kernel will be
120 compiled. It affects the on-chip peripherals catered for.
122 config MN10300_PROC_MN103E010
124 depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
126 select MN10300_PROC_HAS_TTYSM0
127 select MN10300_PROC_HAS_TTYSM1
128 select MN10300_PROC_HAS_TTYSM2
130 config MN10300_PROC_MN2WS0050
132 depends on MN10300_UNIT_ASB2364
134 select MN10300_PROC_HAS_TTYSM0
135 select MN10300_PROC_HAS_TTYSM1
136 select MN10300_PROC_HAS_TTYSM2
140 config MN10300_HAS_ATOMIC_OPS_UNIT
143 This should be enabled if the processor has an atomic ops unit
144 capable of doing LL/SC equivalent operations.
149 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
152 bool "Save FPU state lazily"
154 depends on FPU && !SMP
156 Enable this to be lazy in the saving of the FPU state to the owning
157 task's thread struct. This is useful if most tasks on the system
158 don't use the FPU as only those tasks that use it will pass it
159 between them, and the state needn't be saved for a task that isn't
162 This can't be so easily used on SMP as the process that owns the FPU
163 state on a CPU may be currently running on another CPU, so for the
164 moment, it is disabled.
166 source "arch/mn10300/mm/Kconfig.cache"
168 config MN10300_TLB_USE_PIDR
171 menu "Memory layout options"
173 config KERNEL_RAM_BASE_ADDRESS
174 hex "Base address of kernel RAM"
177 config INTERRUPT_VECTOR_BASE
178 hex "Base address of vector table"
181 The base address of the vector table will be programmed into
182 the TBR register. It must be on 16MiB address boundary.
184 config KERNEL_TEXT_ADDRESS
185 hex "Base address of kernel"
188 config KERNEL_ZIMAGE_BASE_ADDRESS
189 hex "Base address of compressed vmlinux image"
192 config BOOT_STACK_OFFSET
194 default "0xF00" if SMP
195 default "0xFF0" if !SMP
197 config BOOT_STACK_SIZE
204 bool "Symmetric multi-processing support"
206 select USE_GENERIC_SMP_HELPERS
207 depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050
209 This enables support for systems with more than one CPU. If you have
210 a system with only one CPU, like most personal computers, say N. If
211 you have a system with more than one CPU, say Y.
213 If you say N here, the kernel will run on single and multiprocessor
214 machines, but will use only one CPU of a multiprocessor machine. If
215 you say Y here, the kernel will run on many, but not all,
216 singleprocessor machines. On a singleprocessor machine, the kernel
217 will run faster if you say N here.
219 See also <file:Documentation/i386/IO-APIC.txt>,
220 <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
221 <http://www.tldp.org/docs.html#howto>.
223 If you don't know what to do here, say N.
230 source "kernel/Kconfig.preempt"
232 config MN10300_CURRENT_IN_E2
233 bool "Hold current task address in E2 register"
237 This option removes the E2/R2 register from the set available to gcc
238 for normal use and instead uses it to store the address of the
239 current process's task_struct whilst in the kernel.
241 This means the kernel doesn't need to calculate the address each time
242 "current" is used (take SP, AND with mask and dereference pointer
243 just to get the address), and instead can just use E2+offset
244 addressing each time.
246 This has no effect on userspace.
248 config MN10300_USING_JTAG
249 bool "Using JTAG to debug kernel"
252 This options indicates that JTAG will be used to debug the kernel. It
253 suppresses the use of certain hardware debugging features, such as
254 single-stepping, which are taken over completely by the JTAG unit.
256 source "kernel/Kconfig.hz"
257 source "kernel/time/Kconfig"
260 bool "Using MN10300 RTC"
261 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
262 select GENERIC_CMOS_UPDATE
265 This option enables support for the RTC, thus enabling time to be
266 tracked, even when system is powered down. This is available on-chip
269 config MN10300_WD_TIMER
270 bool "Using MN10300 watchdog timer"
273 This options indicates that the watchdog timer will be used.
277 depends on MN10300_UNIT_ASB2305
280 Some systems (such as the ASB2305) have PCI onboard. If you have one
281 of these boards and you wish to use the PCI facilities, say Y here.
283 The PCI-HOWTO, available from
284 <http://www.tldp.org/docs.html#howto>, contains valuable
285 information about which PCI hardware does work under Linux and which
288 source "drivers/pci/Kconfig"
290 source "drivers/pcmcia/Kconfig"
292 menu "MN10300 internal serial options"
294 config MN10300_PROC_HAS_TTYSM0
298 config MN10300_PROC_HAS_TTYSM1
302 config MN10300_PROC_HAS_TTYSM2
307 bool "Support for ttySM serial ports"
312 This option enables support for the on-chip serial ports that the
313 MN10300 has available.
315 config MN10300_TTYSM_CONSOLE
316 bool "Support for console on ttySM serial ports"
317 depends on MN10300_TTYSM
318 select SERIAL_CORE_CONSOLE
320 This option enables support for a console on the on-chip serial ports
321 that the MN10300 has available.
326 config MN10300_TTYSM0
327 bool "Enable SIF0 (/dev/ttySM0)"
328 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM0
330 Enable access to SIF0 through /dev/ttySM0 or gdb-stub
333 prompt "Select the timer to supply the clock for SIF0"
334 default MN10300_TTYSM0_TIMER8
335 depends on MN10300_TTYSM0
337 config MN10300_TTYSM0_TIMER8
338 bool "Use timer 8 (16-bit)"
340 config MN10300_TTYSM0_TIMER2
341 bool "Use timer 2 (8-bit)"
348 config MN10300_TTYSM1
349 bool "Enable SIF1 (/dev/ttySM1)"
350 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM1
352 Enable access to SIF1 through /dev/ttySM1 or gdb-stub
355 prompt "Select the timer to supply the clock for SIF1"
356 default MN10300_TTYSM1_TIMER12 \
357 if !(AM33_2 || AM33_3)
358 default MN10300_TTYSM1_TIMER9 \
360 depends on MN10300_TTYSM1
362 config MN10300_TTYSM1_TIMER12
363 bool "Use timer 12 (16-bit)"
364 depends on !(AM33_2 || AM33_3)
366 config MN10300_TTYSM1_TIMER9
367 bool "Use timer 9 (16-bit)"
368 depends on AM33_2 || AM33_3
370 config MN10300_TTYSM1_TIMER3
371 bool "Use timer 3 (8-bit)"
372 depends on AM33_2 || AM33_3
379 config MN10300_TTYSM2
380 bool "Enable SIF2 (/dev/ttySM2)"
381 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM2
383 Enable access to SIF2 through /dev/ttySM2 or gdb-stub
386 prompt "Select the timer to supply the clock for SIF2"
387 default MN10300_TTYSM2_TIMER3 \
388 if !(AM33_2 || AM33_3)
389 default MN10300_TTYSM2_TIMER10 \
391 depends on MN10300_TTYSM2
393 config MN10300_TTYSM2_TIMER9
394 bool "Use timer 9 (16-bit)"
395 depends on !(AM33_2 || AM33_3)
397 config MN10300_TTYSM2_TIMER1
398 bool "Use timer 1 (8-bit)"
399 depends on !(AM33_2 || AM33_3)
401 config MN10300_TTYSM2_TIMER3
402 bool "Use timer 3 (8-bit)"
403 depends on !(AM33_2 || AM33_3)
405 config MN10300_TTYSM2_TIMER10
406 bool "Use timer 10 (16-bit)"
407 depends on AM33_2 || AM33_3
411 config MN10300_TTYSM2_CTS
412 bool "Enable the use of the CTS line /dev/ttySM2"
413 depends on MN10300_TTYSM2 && AM33_2
417 menu "Interrupt request priority options"
419 comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
421 comment "____Non-maskable interrupt levels____"
422 comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"
424 config GDBSTUB_IRQ_LEVEL
425 int "GDBSTUB interrupt priority"
427 range 0 1 if LINUX_CLI_LEVEL = 2
428 range 0 2 if LINUX_CLI_LEVEL = 3
429 range 0 3 if LINUX_CLI_LEVEL = 4
430 range 0 4 if LINUX_CLI_LEVEL = 5
431 range 0 5 if LINUX_CLI_LEVEL = 6
434 comment "The following must be set to a higher priority than local_irq_disable()"
436 config MN10300_SERIAL_IRQ_LEVEL
437 int "MN10300 on-chip serial interrupt priority"
438 depends on MN10300_TTYSM
439 range 1 1 if LINUX_CLI_LEVEL = 2
440 range 1 2 if LINUX_CLI_LEVEL = 3
441 range 1 3 if LINUX_CLI_LEVEL = 4
442 range 1 4 if LINUX_CLI_LEVEL = 5
443 range 1 5 if LINUX_CLI_LEVEL = 6
447 comment "____Maskable interrupt levels____"
449 config LINUX_CLI_LEVEL
450 int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
454 local_irq_disable() doesn't actually disable maskable interrupts -
455 what it does is restrict the levels of interrupt which are permitted
456 (a lower level indicates a higher priority) by lowering the value in
457 EPSW.IM from 7. Any interrupt is permitted for which the level is
460 Certain interrupts, such as GDBSTUB and virtual MN10300 on-chip
461 serial DMA interrupts are allowed to interrupt normal disabled
464 comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
466 config TIMER_IRQ_LEVEL
467 int "Kernel timer interrupt priority"
468 range LINUX_CLI_LEVEL 6
472 int "PCI interrupt priority"
474 range LINUX_CLI_LEVEL 6
477 config ETHERNET_IRQ_LEVEL
478 int "Ethernet interrupt priority"
479 depends on SMC91X || SMC911X || SMSC911X
480 range LINUX_CLI_LEVEL 6
483 config EXT_SERIAL_IRQ_LEVEL
484 int "External serial port interrupt priority"
485 depends on SERIAL_8250
486 range LINUX_CLI_LEVEL 6
493 menu "Power management options"
494 source kernel/power/Kconfig
500 menu "Executable formats"
502 source "fs/Kconfig.binfmt"
508 source "drivers/Kconfig"
512 source "arch/mn10300/Kconfig.debug"
514 source "security/Kconfig"
516 source "crypto/Kconfig"