4 select GENERIC_HARDIRQS
14 select MN10300_HAS_ATOMIC_OPS_UNIT
15 select MN10300_HAS_CACHE_SNOOP
17 config ERRATUM_NEED_TO_RELOAD_MMUCTR
18 def_bool y if AM33_3 || AM34_2
32 config RWSEM_GENERIC_SPINLOCK
35 config RWSEM_XCHGADD_ALGORITHM
38 config GENERIC_CALIBRATE_DELAY
41 config GENERIC_CMOS_UPDATE
44 config GENERIC_FIND_NEXT_BIT
47 config GENERIC_HWEIGHT
53 config GENERIC_CLOCKEVENTS
62 config ARCH_HAS_ILOG2_U32
70 source "kernel/Kconfig.freezer"
73 menu "Panasonic MN10300 system setup"
77 default MN10300_UNIT_ASB2303
79 This option specifies board for which the kernel will be
80 compiled. It affects the external peripherals catered for.
82 config MN10300_UNIT_ASB2303
85 config MN10300_UNIT_ASB2305
88 config MN10300_UNIT_ASB2364
90 select SMSC911X_ARCH_HOOKS if SMSC911X
95 prompt "Processor support"
96 default MN10300_PROC_MN103E010
98 This option specifies the processor for which the kernel will be
99 compiled. It affects the on-chip peripherals catered for.
101 config MN10300_PROC_MN103E010
103 depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
105 select MN10300_PROC_HAS_TTYSM0
106 select MN10300_PROC_HAS_TTYSM1
107 select MN10300_PROC_HAS_TTYSM2
109 config MN10300_PROC_MN2WS0050
111 depends on MN10300_UNIT_ASB2364
113 select MN10300_PROC_HAS_TTYSM0
114 select MN10300_PROC_HAS_TTYSM1
115 select MN10300_PROC_HAS_TTYSM2
119 config MN10300_HAS_ATOMIC_OPS_UNIT
122 This should be enabled if the processor has an atomic ops unit
123 capable of doing LL/SC equivalent operations.
128 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
131 bool "Save FPU state lazily"
133 depends on FPU && !SMP
135 Enable this to be lazy in the saving of the FPU state to the owning
136 task's thread struct. This is useful if most tasks on the system
137 don't use the FPU as only those tasks that use it will pass it
138 between them, and the state needn't be saved for a task that isn't
141 This can't be so easily used on SMP as the process that owns the FPU
142 state on a CPU may be currently running on another CPU, so for the
143 moment, it is disabled.
145 source "arch/mn10300/mm/Kconfig.cache"
147 config MN10300_TLB_USE_PIDR
150 menu "Memory layout options"
152 config KERNEL_RAM_BASE_ADDRESS
153 hex "Base address of kernel RAM"
156 config INTERRUPT_VECTOR_BASE
157 hex "Base address of vector table"
160 The base address of the vector table will be programmed into
161 the TBR register. It must be on 16MiB address boundary.
163 config KERNEL_TEXT_ADDRESS
164 hex "Base address of kernel"
167 config KERNEL_ZIMAGE_BASE_ADDRESS
168 hex "Base address of compressed vmlinux image"
171 config BOOT_STACK_OFFSET
173 default "0xF00" if SMP
174 default "0xFF0" if !SMP
176 config BOOT_STACK_SIZE
183 bool "Symmetric multi-processing support"
185 select USE_GENERIC_SMP_HELPERS
186 depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050
188 This enables support for systems with more than one CPU. If you have
189 a system with only one CPU, like most personal computers, say N. If
190 you have a system with more than one CPU, say Y.
192 If you say N here, the kernel will run on single 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 singleprocessor machines. On a singleprocessor machine, the kernel
196 will run faster if you say N here.
198 See also <file:Documentation/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"
236 source "kernel/time/Kconfig"
239 bool "Using MN10300 RTC"
240 depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
241 select GENERIC_CMOS_UPDATE
244 This option enables support for the RTC, thus enabling time to be
245 tracked, even when system is powered down. This is available on-chip
248 config MN10300_WD_TIMER
249 bool "Using MN10300 watchdog timer"
252 This options indicates that the watchdog timer will be used.
256 depends on MN10300_UNIT_ASB2305
259 Some systems (such as the ASB2305) have PCI onboard. If you have one
260 of these boards and you wish to use the PCI facilities, say Y here.
262 The PCI-HOWTO, available from
263 <http://www.tldp.org/docs.html#howto>, contains valuable
264 information about which PCI hardware does work under Linux and which
267 source "drivers/pci/Kconfig"
269 source "drivers/pcmcia/Kconfig"
271 menu "MN10300 internal serial options"
273 config MN10300_PROC_HAS_TTYSM0
277 config MN10300_PROC_HAS_TTYSM1
281 config MN10300_PROC_HAS_TTYSM2
286 bool "Support for ttySM serial ports"
291 This option enables support for the on-chip serial ports that the
292 MN10300 has available.
294 config MN10300_TTYSM_CONSOLE
295 bool "Support for console on ttySM serial ports"
296 depends on MN10300_TTYSM
297 select SERIAL_CORE_CONSOLE
299 This option enables support for a console on the on-chip serial ports
300 that the MN10300 has available.
305 config MN10300_TTYSM0
306 bool "Enable SIF0 (/dev/ttySM0)"
307 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM0
309 Enable access to SIF0 through /dev/ttySM0 or gdb-stub
312 prompt "Select the timer to supply the clock for SIF0"
313 default MN10300_TTYSM0_TIMER8
314 depends on MN10300_TTYSM0
316 config MN10300_TTYSM0_TIMER8
317 bool "Use timer 8 (16-bit)"
319 config MN10300_TTYSM0_TIMER2
320 bool "Use timer 2 (8-bit)"
327 config MN10300_TTYSM1
328 bool "Enable SIF1 (/dev/ttySM1)"
329 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM1
331 Enable access to SIF1 through /dev/ttySM1 or gdb-stub
334 prompt "Select the timer to supply the clock for SIF1"
335 default MN10300_TTYSM1_TIMER12 \
336 if !(AM33_2 || AM33_3)
337 default MN10300_TTYSM1_TIMER9 \
339 depends on MN10300_TTYSM1
341 config MN10300_TTYSM1_TIMER12
342 bool "Use timer 12 (16-bit)"
343 depends on !(AM33_2 || AM33_3)
345 config MN10300_TTYSM1_TIMER9
346 bool "Use timer 9 (16-bit)"
347 depends on AM33_2 || AM33_3
349 config MN10300_TTYSM1_TIMER3
350 bool "Use timer 3 (8-bit)"
351 depends on AM33_2 || AM33_3
358 config MN10300_TTYSM2
359 bool "Enable SIF2 (/dev/ttySM2)"
360 depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM2
362 Enable access to SIF2 through /dev/ttySM2 or gdb-stub
365 prompt "Select the timer to supply the clock for SIF2"
366 default MN10300_TTYSM2_TIMER3 \
367 if !(AM33_2 || AM33_3)
368 default MN10300_TTYSM2_TIMER10 \
370 depends on MN10300_TTYSM2
372 config MN10300_TTYSM2_TIMER9
373 bool "Use timer 9 (16-bit)"
374 depends on !(AM33_2 || AM33_3)
376 config MN10300_TTYSM2_TIMER1
377 bool "Use timer 1 (8-bit)"
378 depends on !(AM33_2 || AM33_3)
380 config MN10300_TTYSM2_TIMER3
381 bool "Use timer 3 (8-bit)"
382 depends on !(AM33_2 || AM33_3)
384 config MN10300_TTYSM2_TIMER10
385 bool "Use timer 10 (16-bit)"
386 depends on AM33_2 || AM33_3
390 config MN10300_TTYSM2_CTS
391 bool "Enable the use of the CTS line /dev/ttySM2"
392 depends on MN10300_TTYSM2 && AM33_2
396 menu "Interrupt request priority options"
398 comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"
400 comment "____Non-maskable interrupt levels____"
401 comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"
403 config GDBSTUB_IRQ_LEVEL
404 int "GDBSTUB interrupt priority"
406 range 0 1 if LINUX_CLI_LEVEL = 2
407 range 0 2 if LINUX_CLI_LEVEL = 3
408 range 0 3 if LINUX_CLI_LEVEL = 4
409 range 0 4 if LINUX_CLI_LEVEL = 5
410 range 0 5 if LINUX_CLI_LEVEL = 6
413 comment "The following must be set to a higher priority than local_irq_disable()"
415 config MN10300_SERIAL_IRQ_LEVEL
416 int "MN10300 on-chip serial interrupt priority"
417 depends on MN10300_TTYSM
418 range 1 1 if LINUX_CLI_LEVEL = 2
419 range 1 2 if LINUX_CLI_LEVEL = 3
420 range 1 3 if LINUX_CLI_LEVEL = 4
421 range 1 4 if LINUX_CLI_LEVEL = 5
422 range 1 5 if LINUX_CLI_LEVEL = 6
426 comment "____Maskable interrupt levels____"
428 config LINUX_CLI_LEVEL
429 int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
433 local_irq_disable() doesn't actually disable maskable interrupts -
434 what it does is restrict the levels of interrupt which are permitted
435 (a lower level indicates a higher priority) by lowering the value in
436 EPSW.IM from 7. Any interrupt is permitted for which the level is
439 Certain interrupts, such as GDBSTUB and virtual MN10300 on-chip
440 serial DMA interrupts are allowed to interrupt normal disabled
443 comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"
445 config TIMER_IRQ_LEVEL
446 int "Kernel timer interrupt priority"
447 range LINUX_CLI_LEVEL 6
451 int "PCI interrupt priority"
453 range LINUX_CLI_LEVEL 6
456 config ETHERNET_IRQ_LEVEL
457 int "Ethernet interrupt priority"
458 depends on SMC91X || SMC911X || SMSC911X
459 range LINUX_CLI_LEVEL 6
462 config EXT_SERIAL_IRQ_LEVEL
463 int "External serial port interrupt priority"
464 depends on SERIAL_8250
465 range LINUX_CLI_LEVEL 6
472 menu "Power management options"
473 source kernel/power/Kconfig
479 menu "Executable formats"
481 source "fs/Kconfig.binfmt"
487 source "drivers/Kconfig"
491 source "arch/mn10300/Kconfig.debug"
493 source "security/Kconfig"
495 source "crypto/Kconfig"