config MN10300
	def_bool y
	select HAVE_OPROFILE
	select HAVE_GENERIC_HARDIRQS
	select GENERIC_IRQ_SHOW
	select HAVE_ARCH_TRACEHOOK
	select HAVE_ARCH_KGDB

config AM33_2
	def_bool n

config AM33_3
	def_bool n

config AM34_2
	def_bool n
	select MN10300_HAS_ATOMIC_OPS_UNIT
	select MN10300_HAS_CACHE_SNOOP

config ERRATUM_NEED_TO_RELOAD_MMUCTR
	def_bool y if AM33_3 || AM34_2

config MMU
	def_bool y

config HIGHMEM
	def_bool n

config NUMA
	def_bool n

config UID16
	def_bool y

config RWSEM_GENERIC_SPINLOCK
	def_bool y

config RWSEM_XCHGADD_ALGORITHM
	bool

config GENERIC_CALIBRATE_DELAY
	def_bool y

config GENERIC_CMOS_UPDATE
        def_bool n

config GENERIC_HWEIGHT
	def_bool y

config GENERIC_TIME
	def_bool y

config GENERIC_CLOCKEVENTS
	def_bool y

config GENERIC_BUG
	def_bool y

config QUICKLIST
	def_bool y

config ARCH_HAS_ILOG2_U32
	def_bool y

config HOTPLUG_CPU
	def_bool n

source "init/Kconfig"

source "kernel/Kconfig.freezer"


menu "Panasonic MN10300 system setup"

choice
	prompt "Unit type"
	default MN10300_UNIT_ASB2303
	help
	  This option specifies board for which the kernel will be
	  compiled. It affects the external peripherals catered for.

config MN10300_UNIT_ASB2303
	bool "ASB2303"

config MN10300_UNIT_ASB2305
	bool "ASB2305"

config MN10300_UNIT_ASB2364
	bool "ASB2364"
	select SMSC911X_ARCH_HOOKS if SMSC911X

endchoice

choice
	prompt "Processor support"
	default MN10300_PROC_MN103E010
	help
	  This option specifies the processor for which the kernel will be
	  compiled. It affects the on-chip peripherals catered for.

config MN10300_PROC_MN103E010
	bool "MN103E010"
	depends on MN10300_UNIT_ASB2303 || MN10300_UNIT_ASB2305
	select AM33_2
	select MN10300_PROC_HAS_TTYSM0
	select MN10300_PROC_HAS_TTYSM1
	select MN10300_PROC_HAS_TTYSM2

config MN10300_PROC_MN2WS0050
	bool "MN2WS0050"
	depends on MN10300_UNIT_ASB2364
	select AM34_2
	select MN10300_PROC_HAS_TTYSM0
	select MN10300_PROC_HAS_TTYSM1
	select MN10300_PROC_HAS_TTYSM2

endchoice

config MN10300_HAS_ATOMIC_OPS_UNIT
	def_bool n
	help
	  This should be enabled if the processor has an atomic ops unit
	  capable of doing LL/SC equivalent operations.

config FPU
	bool "FPU present"
	default y
	depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050

config LAZY_SAVE_FPU
	bool "Save FPU state lazily"
	default y
	depends on FPU && !SMP
	help
	  Enable this to be lazy in the saving of the FPU state to the owning
	  task's thread struct.  This is useful if most tasks on the system
	  don't use the FPU as only those tasks that use it will pass it
	  between them, and the state needn't be saved for a task that isn't
	  using it.

	  This can't be so easily used on SMP as the process that owns the FPU
	  state on a CPU may be currently running on another CPU, so for the
	  moment, it is disabled.

source "arch/mn10300/mm/Kconfig.cache"

config MN10300_TLB_USE_PIDR
	def_bool y

menu "Memory layout options"

config KERNEL_RAM_BASE_ADDRESS
	hex "Base address of kernel RAM"
	default "0x90000000"

config INTERRUPT_VECTOR_BASE
	hex "Base address of vector table"
	default "0x90000000"
	help
	  The base address of the vector table will be programmed into
          the TBR register. It must be on 16MiB address boundary.

config KERNEL_TEXT_ADDRESS
	hex "Base address of kernel"
	default "0x90001000"

config KERNEL_ZIMAGE_BASE_ADDRESS
	hex "Base address of compressed vmlinux image"
	default "0x50700000"

config BOOT_STACK_OFFSET
	hex
	default	"0xF00"	if SMP
	default	"0xFF0" if !SMP

config BOOT_STACK_SIZE
	hex
	depends on SMP
	default	"0x100"
endmenu

config SMP
	bool "Symmetric multi-processing support"
	default y
	select USE_GENERIC_SMP_HELPERS
	depends on MN10300_PROC_MN2WS0038 || MN10300_PROC_MN2WS0050
	---help---
	  This enables support for systems with more than one CPU. If you have
	  a system with only one CPU, like most personal computers, say N. If
	  you have a system with more than one CPU, say Y.

	  If you say N here, the kernel will run on single and multiprocessor
	  machines, but will use only one CPU of a multiprocessor machine. If
	  you say Y here, the kernel will run on many, but not all,
	  singleprocessor machines. On a singleprocessor machine, the kernel
	  will run faster if you say N here.

	  See also <file:Documentation/i386/IO-APIC.txt>,
	  <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
	  <http://www.tldp.org/docs.html#howto>.

	  If you don't know what to do here, say N.

config NR_CPUS
	int
	depends on SMP
	default "2"

source "kernel/Kconfig.preempt"

config MN10300_CURRENT_IN_E2
	bool "Hold current task address in E2 register"
	depends on !SMP
	default y
	help
	  This option removes the E2/R2 register from the set available to gcc
	  for normal use and instead uses it to store the address of the
	  current process's task_struct whilst in the kernel.

	  This means the kernel doesn't need to calculate the address each time
	  "current" is used (take SP, AND with mask and dereference pointer
	  just to get the address), and instead can just use E2+offset
	  addressing each time.

	  This has no effect on userspace.

config MN10300_USING_JTAG
	bool "Using JTAG to debug kernel"
	default y
	help
	  This options indicates that JTAG will be used to debug the kernel. It
	  suppresses the use of certain hardware debugging features, such as
	  single-stepping, which are taken over completely by the JTAG unit.

source "kernel/Kconfig.hz"
source "kernel/time/Kconfig"

config MN10300_RTC
	bool "Using MN10300 RTC"
	depends on MN10300_PROC_MN103E010 || MN10300_PROC_MN2WS0050
	select GENERIC_CMOS_UPDATE
	default n
	help
	  This option enables support for the RTC, thus enabling time to be
	  tracked, even when system is powered down. This is available on-chip
	  on the MN103E010.

config MN10300_WD_TIMER
	bool "Using MN10300 watchdog timer"
	default y
	help
	  This options indicates that the watchdog timer will be used.

config PCI
	bool "Use PCI"
	depends on MN10300_UNIT_ASB2305
	default y
	help
	  Some systems (such as the ASB2305) have PCI onboard. If you have one
	  of these boards and you wish to use the PCI facilities, say Y here.

	  The PCI-HOWTO, available from
	  <http://www.tldp.org/docs.html#howto>, contains valuable
	  information about which PCI hardware does work under Linux and which
	  doesn't.

source "drivers/pci/Kconfig"

source "drivers/pcmcia/Kconfig"

menu "MN10300 internal serial options"

config MN10300_PROC_HAS_TTYSM0
	bool
	default n

config MN10300_PROC_HAS_TTYSM1
	bool
	default n

config MN10300_PROC_HAS_TTYSM2
	bool
	default n

config MN10300_TTYSM
	bool "Support for ttySM serial ports"
	depends on MN10300
	default y
	select SERIAL_CORE
	help
	  This option enables support for the on-chip serial ports that the
	  MN10300 has available.

config MN10300_TTYSM_CONSOLE
	bool "Support for console on ttySM serial ports"
	depends on MN10300_TTYSM
	select SERIAL_CORE_CONSOLE
	help
	  This option enables support for a console on the on-chip serial ports
	  that the MN10300 has available.

#
# /dev/ttySM0
#
config MN10300_TTYSM0
	bool "Enable SIF0 (/dev/ttySM0)"
	depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM0
	help
	  Enable access to SIF0 through /dev/ttySM0 or gdb-stub

choice
	prompt "Select the timer to supply the clock for SIF0"
	default MN10300_TTYSM0_TIMER8
	depends on MN10300_TTYSM0

config MN10300_TTYSM0_TIMER8
	bool "Use timer 8 (16-bit)"

config MN10300_TTYSM0_TIMER2
	bool "Use timer 2 (8-bit)"

endchoice

#
# /dev/ttySM1
#
config MN10300_TTYSM1
	bool "Enable SIF1 (/dev/ttySM1)"
	depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM1
	help
	  Enable access to SIF1 through /dev/ttySM1 or gdb-stub

choice
	prompt "Select the timer to supply the clock for SIF1"
	default MN10300_TTYSM1_TIMER12 \
		if !(AM33_2 || AM33_3)
	default MN10300_TTYSM1_TIMER9 \
		if AM33_2 || AM33_3
	depends on MN10300_TTYSM1

config MN10300_TTYSM1_TIMER12
	bool "Use timer 12 (16-bit)"
	depends on !(AM33_2 || AM33_3)

config MN10300_TTYSM1_TIMER9
	bool "Use timer 9 (16-bit)"
	depends on AM33_2 || AM33_3

config MN10300_TTYSM1_TIMER3
	bool "Use timer 3 (8-bit)"
	depends on AM33_2 || AM33_3

endchoice

#
# /dev/ttySM2
#
config MN10300_TTYSM2
	bool "Enable SIF2 (/dev/ttySM2)"
	depends on MN10300_TTYSM && MN10300_PROC_HAS_TTYSM2
	help
	  Enable access to SIF2 through /dev/ttySM2 or gdb-stub

choice
	prompt "Select the timer to supply the clock for SIF2"
	default MN10300_TTYSM2_TIMER3 \
		if !(AM33_2 || AM33_3)
	default MN10300_TTYSM2_TIMER10 \
		if AM33_2 || AM33_3
	depends on MN10300_TTYSM2

config MN10300_TTYSM2_TIMER9
	bool "Use timer 9 (16-bit)"
	depends on !(AM33_2 || AM33_3)

config MN10300_TTYSM2_TIMER1
	bool "Use timer 1 (8-bit)"
	depends on !(AM33_2 || AM33_3)

config MN10300_TTYSM2_TIMER3
	bool "Use timer 3 (8-bit)"
	depends on !(AM33_2 || AM33_3)

config MN10300_TTYSM2_TIMER10
	bool "Use timer 10 (16-bit)"
	depends on AM33_2 || AM33_3

endchoice

config MN10300_TTYSM2_CTS
	bool "Enable the use of the CTS line /dev/ttySM2"
	depends on MN10300_TTYSM2 && AM33_2

endmenu

menu "Interrupt request priority options"

comment "[!] NOTE: A lower number/level indicates a higher priority (0 is highest, 6 is lowest)"

comment "____Non-maskable interrupt levels____"
comment "The following must be set to a higher priority than local_irq_disable() and on-chip serial"

config DEBUGGER_IRQ_LEVEL
	int "DEBUGGER interrupt priority"
	depends on KERNEL_DEBUGGER
	range 0 1 if LINUX_CLI_LEVEL = 2
	range 0 2 if LINUX_CLI_LEVEL = 3
	range 0 3 if LINUX_CLI_LEVEL = 4
	range 0 4 if LINUX_CLI_LEVEL = 5
	range 0 5 if LINUX_CLI_LEVEL = 6
	default 0

comment "The following must be set to a higher priority than local_irq_disable()"

config MN10300_SERIAL_IRQ_LEVEL
	int "MN10300 on-chip serial interrupt priority"
	depends on MN10300_TTYSM
	range 1 1 if LINUX_CLI_LEVEL = 2
	range 1 2 if LINUX_CLI_LEVEL = 3
	range 1 3 if LINUX_CLI_LEVEL = 4
	range 1 4 if LINUX_CLI_LEVEL = 5
	range 1 5 if LINUX_CLI_LEVEL = 6
	default 1

comment "-"
comment "____Maskable interrupt levels____"

config LINUX_CLI_LEVEL
	int "The highest interrupt priority excluded by local_irq_disable() (2-6)"
	range 2 6
	default 2
	help
	  local_irq_disable() doesn't actually disable maskable interrupts -
	  what it does is restrict the levels of interrupt which are permitted
	  (a lower level indicates a higher priority) by lowering the value in
	  EPSW.IM from 7.  Any interrupt is permitted for which the level is
	  lower than EPSW.IM.

	  Certain interrupts, such as DEBUGGER and virtual MN10300 on-chip
	  serial DMA interrupts are allowed to interrupt normal disabled
	  sections.

comment "The following must be set to a equal to or lower priority than LINUX_CLI_LEVEL"

config TIMER_IRQ_LEVEL
	int "Kernel timer interrupt priority"
	range LINUX_CLI_LEVEL 6
	default 4

config PCI_IRQ_LEVEL
	int "PCI interrupt priority"
	depends on PCI
	range LINUX_CLI_LEVEL 6
	default 5

config ETHERNET_IRQ_LEVEL
	int "Ethernet interrupt priority"
	depends on SMC91X || SMC911X || SMSC911X
	range LINUX_CLI_LEVEL 6
	default 6

config EXT_SERIAL_IRQ_LEVEL
	int "External serial port interrupt priority"
	depends on SERIAL_8250
	range LINUX_CLI_LEVEL 6
	default 6

endmenu

source "mm/Kconfig"

menu "Power management options"
source kernel/power/Kconfig
endmenu

endmenu


menu "Executable formats"

source "fs/Kconfig.binfmt"

endmenu

source "net/Kconfig"

source "drivers/Kconfig"

source "fs/Kconfig"

source "arch/mn10300/Kconfig.debug"

source "security/Kconfig"

source "crypto/Kconfig"

source "lib/Kconfig"
