config MMU
	bool
	default y

config ZONE_DMA
	bool
	default y

config RWSEM_GENERIC_SPINLOCK
	bool
	default y

config RWSEM_XCHGADD_ALGORITHM
	bool

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 GENERIC_ATOMIC64
	select HAVE_GENERIC_HARDIRQS
	select HAVE_UID16
	select ARCH_WANT_IPC_PARSE_VERSION
	select GENERIC_IRQ_SHOW
	select GENERIC_IOMAP
	select GENERIC_SMP_IDLE_THREAD if ETRAX_ARCH_V32
	select GENERIC_CMOS_UPDATE
	select MODULES_USE_ELF_RELA
	select CLONE_BACKWARDS2

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_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"
