config MMU
	bool
	default y

config ZONE_DMA
	bool
	default y

config RWSEM_GENERIC_SPINLOCK
	bool
	default y

config RWSEM_XCHGADD_ALGORITHM
	bool

config GENERIC_CMOS_UPDATE
	def_bool y

config ARCH_USES_GETTIMEOFFSET
	def_bool n

config ARCH_HAS_ILOG2_U32
	bool
	default n

config ARCH_HAS_ILOG2_U64
	bool
	default n

config GENERIC_HWEIGHT
	bool
	default y

config GENERIC_CALIBRATE_DELAY
	bool
	default y

config NO_IOPORT
	def_bool y

config FORCE_MAX_ZONEORDER
	int
	default 6

config CRIS
	bool
	default y
	select HAVE_IDE
	select HAVE_GENERIC_HARDIRQS
	select GENERIC_IRQ_SHOW
	select GENERIC_IOMAP

config HZ
	int
	default 100

source "init/Kconfig"

source "kernel/Kconfig.freezer"

menu "General setup"

source "fs/Kconfig.binfmt"

config ETRAX_CMDLINE
	string "Kernel command line"
	default "root=/dev/mtdblock3"
	help
	  Pass additional commands to the kernel.

config ETRAX_WATCHDOG
	bool "Enable ETRAX watchdog"
	help
	  Enable the built-in watchdog timer support on ETRAX based embedded
	  network computers.

config ETRAX_WATCHDOG_NICE_DOGGY
	bool "Disable watchdog during Oops printouts"
	depends on ETRAX_WATCHDOG
	help
	  By enabling this you make sure that the watchdog does not bite while
	  printing oopses. Recommended for development systems but not for
	  production releases.

config ETRAX_FAST_TIMER
       bool "Enable ETRAX fast timer API"
       help
         This options enables the API to a fast timer implementation using
	 timer1 to get sub jiffie resolution timers (primarily one-shot
	 timers).
	 This is needed if CONFIG_ETRAX_SERIAL_FAST_TIMER is enabled.

config ETRAX_KMALLOCED_MODULES
	bool "Enable module allocation with kmalloc"
	help
	  Enable module allocation with kmalloc instead of vmalloc.

config OOM_REBOOT
       bool "Enable reboot at out of memory"

source "kernel/Kconfig.preempt"

source mm/Kconfig

endmenu

menu "Hardware setup"

choice
	prompt "Processor type"
	default ETRAX100LX

config ETRAX100LX
	bool "ETRAX-100LX-v1"
	select ARCH_USES_GETTIMEOFFSET
	help
	  Support version 1 of the ETRAX 100LX.

config ETRAX100LX_V2
	bool "ETRAX-100LX-v2"
	select ARCH_USES_GETTIMEOFFSET
	help
	  Support version 2 of the ETRAX 100LX.

config SVINTO_SIM
	bool "ETRAX-100LX-for-xsim-simulator"
	select ARCH_USES_GETTIMEOFFSET
	help
	  Support the xsim ETRAX Simulator.

config ETRAXFS
	bool "ETRAX-FS-V32"
	help
	  Support CRIS V32.

config CRIS_MACH_ARTPEC3
        bool "ARTPEC-3"
        help
          Support Axis ARTPEC-3.

endchoice

config ETRAX_VCS_SIM
	bool "VCS Simulator"
	help
	  Setup hardware to be run in the VCS simulator.

config ETRAX_ARCH_V10
       bool
       default y if ETRAX100LX || ETRAX100LX_V2
       default n if !(ETRAX100LX || ETRAX100LX_V2)

config ETRAX_ARCH_V32
       bool
       default y if (ETRAXFS || CRIS_MACH_ARTPEC3)
       default n if !(ETRAXFS || CRIS_MACH_ARTPEC3)

config ETRAX_DRAM_SIZE
	int "DRAM size (dec, in MB)"
	default "8"
	help
	  Size of DRAM (decimal in MB) typically 2, 8 or 16.

config ETRAX_VMEM_SIZE
       int "Video memory size (dec, in MB)"
       depends on ETRAX_ARCH_V32 && !ETRAXFS
       default 8 if !ETRAXFS
       help
	Size of Video accessible memory (decimal, in MB).

config ETRAX_FLASH_BUSWIDTH
	int "Buswidth of NOR flash in bytes"
	default "2"
	help
	  Width in bytes of the NOR Flash bus (1, 2 or 4). Is usually 2.

config ETRAX_NANDFLASH_BUSWIDTH
	int "Buswidth of NAND flash in bytes"
	default "1"
	help
	  Width in bytes of the NAND flash (1 or 2).

config ETRAX_FLASH1_SIZE
       int "FLASH1 size (dec, in MB. 0 = Unknown)"
       default "0"

choice
	prompt "Product debug-port"
	default ETRAX_DEBUG_PORT0

config ETRAX_DEBUG_PORT0
	bool "Serial-0"
	help
	  Choose a serial port for the ETRAX debug console.  Default to
	  port 0.

config ETRAX_DEBUG_PORT1
	bool "Serial-1"
	help
	  Use serial port 1 for the console.

config ETRAX_DEBUG_PORT2
	bool "Serial-2"
	help
	  Use serial port 2 for the console.

config ETRAX_DEBUG_PORT3
	bool "Serial-3"
	help
	  Use serial port 3 for the console.

config ETRAX_DEBUG_PORT_NULL
	bool "disabled"
	help
	  Disable serial-port debugging.

endchoice

choice
	prompt "Kernel GDB port"
	depends on ETRAX_KGDB
	default ETRAX_KGDB_PORT0
	help
	  Choose a serial port for kernel debugging.  NOTE: This port should
	  not be enabled under Drivers for built-in interfaces (as it has its
	  own initialization code) and should not be the same as the debug port.

config ETRAX_KGDB_PORT0
	bool "Serial-0"
	help
	  Use serial port 0 for kernel debugging.

config ETRAX_KGDB_PORT1
	bool "Serial-1"
	help
	  Use serial port 1 for kernel debugging.

config ETRAX_KGDB_PORT2
	bool "Serial-2"
	help
	  Use serial port 2 for kernel debugging.

config ETRAX_KGDB_PORT3
	bool "Serial-3"
	help
	  Use serial port 3 for kernel debugging.

endchoice

source arch/cris/arch-v10/Kconfig
source arch/cris/arch-v32/Kconfig

endmenu

source "net/Kconfig"

# bring in ETRAX built-in drivers
menu "Drivers for built-in interfaces"
source arch/cris/arch-v10/drivers/Kconfig
source arch/cris/arch-v32/drivers/Kconfig

config ETRAX_AXISFLASHMAP
	bool "Axis flash-map support"
	select MTD
	select MTD_CFI
	select MTD_CFI_AMDSTD
	select MTD_JEDECPROBE if ETRAX_ARCH_V32
	select MTD_CHAR
	select MTD_BLOCK
	select MTD_COMPLEX_MAPPINGS
	help
	  This option enables MTD mapping of flash devices.  Needed to use
	  flash memories.  If unsure, say Y.

config ETRAX_RTC
	bool "Real Time Clock support"
	depends on ETRAX_I2C
	help
	  Enables drivers for the Real-Time Clock battery-backed chips on
	  some products. The kernel reads the time when booting, and
	  the date can be set using ioctl(fd, RTC_SET_TIME, &rt) with rt a
	  rtc_time struct (see <file:arch/cris/include/asm/rtc.h>) on the
	  /dev/rtc device.  You can check the time with cat /proc/rtc, but
	  normal time reading should be done using libc function time and
	  friends.

choice
	prompt "RTC chip"
	depends on ETRAX_RTC
	default ETRAX_DS1302

config ETRAX_DS1302
	depends on ETRAX_ARCH_V10
	bool "DS1302"
	help
	  Enables the driver for the DS1302 Real-Time Clock battery-backed
	  chip on some products.

config ETRAX_PCF8563
	bool "PCF8563"
	help
	  Enables the driver for the PCF8563 Real-Time Clock battery-backed
	  chip on some products.

endchoice

config ETRAX_SYNCHRONOUS_SERIAL
	bool "Synchronous serial-port support"
	help
	  Select this to enable the synchronous serial port driver.

config ETRAX_SYNCHRONOUS_SERIAL_PORT0
	bool "Synchronous serial port 0 enabled"
	depends on ETRAX_SYNCHRONOUS_SERIAL
	help
	  Enabled synchronous serial port 0.

config ETRAX_SYNCHRONOUS_SERIAL0_DMA
	bool "Enable DMA on synchronous serial port 0."
	depends on ETRAX_SYNCHRONOUS_SERIAL_PORT0
	help
	  A synchronous serial port can run in manual or DMA mode.
	  Selecting this option will make it run in DMA mode.

config ETRAX_SYNCHRONOUS_SERIAL_PORT1
	bool "Synchronous serial port 1 enabled"
	depends on ETRAX_SYNCHRONOUS_SERIAL && (ETRAXFS || ETRAX_ARCH_V10)
	help
	  Enabled synchronous serial port 1.

config ETRAX_SYNCHRONOUS_SERIAL1_DMA
	bool "Enable DMA on synchronous serial port 1."
	depends on ETRAX_SYNCHRONOUS_SERIAL_PORT1
	help
	  A synchronous serial port can run in manual or DMA mode.
	  Selecting this option will make it run in DMA mode.

choice
	prompt "Network LED behavior"
	depends on ETRAX_ETHERNET
	default ETRAX_NETWORK_LED_ON_WHEN_ACTIVITY

config ETRAX_NETWORK_LED_ON_WHEN_LINK
	bool "LED_on_when_link"
	help
	  Selecting LED_on_when_link will light the LED when there is a
	  connection and will flash off when there is activity.

	  Selecting LED_on_when_activity will light the LED only when
	  there is activity.

	  This setting will also affect the behaviour of other activity LEDs
	  e.g. Bluetooth.

config ETRAX_NETWORK_LED_ON_WHEN_ACTIVITY
	bool "LED_on_when_activity"
	help
	  Selecting LED_on_when_link will light the LED when there is a
	  connection and will flash off when there is activity.

	  Selecting LED_on_when_activity will light the LED only when
	  there is activity.

	  This setting will also affect the behaviour of other activity LEDs
	  e.g. Bluetooth.

endchoice

choice
	prompt "Ser0 DMA out channel"
	depends on ETRAX_SERIAL_PORT0
	default ETRAX_SERIAL_PORT0_DMA6_OUT if ETRAX_ARCH_V32
	default ETRAX_SERIAL_PORT0_NO_DMA_OUT if ETRAX_ARCH_V10

config ETRAX_SERIAL_PORT0_NO_DMA_OUT
	bool "Ser0 uses no DMA for output"
	help
	  Do not use DMA for ser0 output.

config ETRAX_SERIAL_PORT0_DMA6_OUT
	bool "Ser0 uses DMA6 for output"
	depends on ETRAXFS
	help
	  Enables the DMA6 output channel for ser0 (ttyS0).
	  If you do not enable DMA, an interrupt for each character will be
	  used when transmitting data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

config ETRAX_SERIAL_PORT0_DMA0_OUT
	bool "Ser0 uses DMA0 for output"
	depends on CRIS_MACH_ARTPEC3
	help
	  Enables the DMA0 output channel for ser0 (ttyS0).
	  If you do not enable DMA, an interrupt for each character will be
	  used when transmitting data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

endchoice

choice
	prompt "Ser0 DMA in channel "
	depends on ETRAX_SERIAL_PORT0
	default ETRAX_SERIAL_PORT0_NO_DMA_IN if ETRAX_ARCH_V32
	default ETRAX_SERIAL_PORT0_DMA7_IN if ETRAX_ARCH_V10
	help
	  What DMA channel to use for ser0.

config ETRAX_SERIAL_PORT0_NO_DMA_IN
	bool "Ser0 uses no DMA for input"
	help
	  Do not use DMA for ser0 input.

config ETRAX_SERIAL_PORT0_DMA7_IN
	bool "Ser0 uses DMA7 for input"
	depends on ETRAXFS
	help
	  Enables the DMA7 input channel for ser0 (ttyS0).
	  If you do not enable DMA, an interrupt for each character will be
	  used when receiving data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

config ETRAX_SERIAL_PORT0_DMA1_IN
	bool "Ser0 uses DMA1 for input"
	depends on CRIS_MACH_ARTPEC3
	help
	  Enables the DMA1 input channel for ser0 (ttyS0).
	  If you do not enable DMA, an interrupt for each character will be
	  used when receiving data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

endchoice

choice
	prompt "Ser1 DMA in channel "
	depends on ETRAX_SERIAL_PORT1
	default ETRAX_SERIAL_PORT1_NO_DMA_IN if ETRAX_ARCH_V32
	default ETRAX_SERIAL_PORT1_DMA9_IN if ETRAX_ARCH_V10
	help
	  What DMA channel to use for ser1.

config ETRAX_SERIAL_PORT1_NO_DMA_IN
	bool "Ser1 uses no DMA for input"
	help
	  Do not use DMA for ser1 input.

config ETRAX_SERIAL_PORT1_DMA5_IN
	bool "Ser1 uses DMA5 for input"
	depends on ETRAX_ARCH_V32
	help
	  Enables the DMA5 input channel for ser1 (ttyS1).
	  If you do not enable DMA, an interrupt for each character will be
	  used when receiving data.
	  Normally you want this on, unless you use the DMA channel for
	  something else.

config ETRAX_SERIAL_PORT1_DMA9_IN
	depends on ETRAX_ARCH_V10
	bool "Ser1 uses DMA9 for input"

endchoice


choice
	prompt "Ser1 DMA out channel"
	depends on ETRAX_SERIAL_PORT1
	default ETRAX_SERIAL_PORT1_NO_DMA_OUT if ETRAX_ARCH_V32
	default ETRAX_SERIAL_PORT1_DMA8_OUT if ETRAX_ARCH_V10
	help
	  What DMA channel to use for ser1.

config ETRAX_SERIAL_PORT1_NO_DMA_OUT
	bool "Ser1 uses no DMA for output"
	help
	  Do not use DMA for ser1 output.

config ETRAX_SERIAL_PORT1_DMA8_OUT
	depends on ETRAX_ARCH_V10
	bool "Ser1 uses DMA8 for output"

config ETRAX_SERIAL_PORT1_DMA4_OUT
	depends on ETRAX_ARCH_V32
	bool "Ser1 uses DMA4 for output"
	help
	  Enables the DMA4 output channel for ser1 (ttyS1).
	  If you do not enable DMA, an interrupt for each character will be
	  used when transmitting data.
	  Normally you want this on, unless you use the DMA channel for
	  something else.

endchoice

choice
	prompt "Ser2 DMA out channel"
	depends on ETRAX_SERIAL_PORT2
	default ETRAX_SERIAL_PORT2_NO_DMA_OUT if ETRAX_ARCH_V32
	default ETRAX_SERIAL_PORT2_DMA2_OUT if ETRAX_ARCH_V10

config ETRAX_SERIAL_PORT2_NO_DMA_OUT
	bool "Ser2 uses no DMA for output"
	help
	  Do not use DMA for ser2 output.

config ETRAX_SERIAL_PORT2_DMA2_OUT
	bool "Ser2 uses DMA2 for output"
	depends on ETRAXFS || ETRAX_ARCH_V10
	help
	  Enables the DMA2 output channel for ser2 (ttyS2).
	  If you do not enable DMA, an interrupt for each character will be
	  used when transmitting data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

config ETRAX_SERIAL_PORT2_DMA6_OUT
	bool "Ser2 uses DMA6 for output"
	depends on CRIS_MACH_ARTPEC3
	help
	  Enables the DMA6 output channel for ser2 (ttyS2).
	  If you do not enable DMA, an interrupt for each character will be
	  used when transmitting data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

endchoice

choice
	prompt "Ser2 DMA in channel"
	depends on ETRAX_SERIAL_PORT2
	default ETRAX_SERIAL_PORT2_NO_DMA_IN if ETRAX_ARCH_V32
	default ETRAX_SERIAL_PORT2_DMA3_IN if ETRAX_ARCH_V10
	help
	  What DMA channel to use for ser2.

config ETRAX_SERIAL_PORT2_NO_DMA_IN
	bool "Ser2 uses no DMA for input"
	help
	  Do not use DMA for ser2 input.

config ETRAX_SERIAL_PORT2_DMA3_IN
	bool "Ser2 uses DMA3 for input"
	depends on ETRAXFS || ETRAX_ARCH_V10
	help
	  Enables the DMA3 input channel for ser2 (ttyS2).
	  If you do not enable DMA, an interrupt for each character will be
	  used when receiving data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

config ETRAX_SERIAL_PORT2_DMA7_IN
	bool "Ser2 uses DMA7 for input"
	depends on CRIS_MACH_ARTPEC3
	help
	  Enables the DMA7 input channel for ser2 (ttyS2).
	  If you do not enable DMA, an interrupt for each character will be
	  used when receiving data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

endchoice

choice
	prompt "Ser3 DMA in channel"
	depends on ETRAX_SERIAL_PORT3
	default ETRAX_SERIAL_PORT3_NO_DMA_IN if ETRAX_ARCH_V32
	default ETRAX_SERIAL_PORT3_DMA5_IN if ETRAX_ARCH_V10
	help
	  What DMA channel to use for ser3.

config ETRAX_SERIAL_PORT3_NO_DMA_IN
	bool "Ser3 uses no DMA for input"
	help
	  Do not use DMA for ser3 input.

config ETRAX_SERIAL_PORT3_DMA5_IN
	depends on ETRAX_ARCH_V10
	bool "DMA 5"

config ETRAX_SERIAL_PORT3_DMA9_IN
	bool "Ser3 uses DMA9 for input"
	depends on ETRAXFS
	help
	  Enables the DMA9 input channel for ser3 (ttyS3).
	  If you do not enable DMA, an interrupt for each character will be
	  used when receiving data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

config ETRAX_SERIAL_PORT3_DMA3_IN
	bool "Ser3 uses DMA3 for input"
	depends on CRIS_MACH_ARTPEC3
	help
	  Enables the DMA3 input channel for ser3 (ttyS3).
	  If you do not enable DMA, an interrupt for each character will be
	  used when receiving data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

endchoice

choice
	prompt "Ser3 DMA out channel"
	depends on ETRAX_SERIAL_PORT3
	default ETRAX_SERIAL_PORT3_NO_DMA_OUT if ETRAX_ARCH_V32
	default ETRAX_SERIAL_PORT3_DMA4_OUT if ETRAX_ARCH_V10

config ETRAX_SERIAL_PORT3_NO_DMA_OUT
	bool "Ser3 uses no DMA for output"
	help
	  Do not use DMA for ser3 output.

config ETRAX_SERIAL_PORT3_DMA4_OUT
	depends on ETRAX_ARCH_V10
	bool "DMA 4"

config ETRAX_SERIAL_PORT3_DMA8_OUT
	bool "Ser3 uses DMA8 for output"
	depends on ETRAXFS
	help
	  Enables the DMA8 output channel for ser3 (ttyS3).
	  If you do not enable DMA, an interrupt for each character will be
	  used when transmitting data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

config ETRAX_SERIAL_PORT3_DMA2_OUT
	bool "Ser3 uses DMA2 for output"
	depends on CRIS_MACH_ARTPEC3
	help
	  Enables the DMA2 output channel for ser3 (ttyS3).
	  If you do not enable DMA, an interrupt for each character will be
	  used when transmitting data.
	  Normally you want to use DMA, unless you use the DMA channel for
	  something else.

endchoice

endmenu

source "drivers/base/Kconfig"

# standard linux drivers
source "drivers/mtd/Kconfig"

source "drivers/parport/Kconfig"

source "drivers/pnp/Kconfig"

source "drivers/block/Kconfig"

source "drivers/ide/Kconfig"

source "drivers/net/Kconfig"

source "drivers/i2c/Kconfig"

source "drivers/rtc/Kconfig"

#
# input before char - char/joystick depends on it. As does USB.
#
source "drivers/input/Kconfig"

source "drivers/char/Kconfig"

source "fs/Kconfig"

source "drivers/usb/Kconfig"

source "drivers/uwb/Kconfig"

source "drivers/staging/Kconfig"

source "arch/cris/Kconfig.debug"

source "security/Kconfig"

source "crypto/Kconfig"

source "lib/Kconfig"
