config ETRAX_DRAM_VIRTUAL_BASE
	hex
	depends on ETRAX_ARCH_V32
	default "c0000000"

config ETRAX_LED1G
	string "First green LED bit"
	depends on ETRAX_ARCH_V32
	default "PA3"
	help
	  Bit to use for the first green LED (network LED).
	  Most Axis products use bit A3 here.

config ETRAX_LED1R
	string "First red LED bit"
	depends on ETRAX_ARCH_V32
	default "PA4"
	help
	  Bit to use for the first red LED (network LED).
	  Most Axis products use bit A4 here.

config ETRAX_LED2G
	string "Second green LED bit"
	depends on ETRAX_ARCH_V32
	default "PA5"
	help
	  Bit to use for the first green LED (status LED).
	  Most Axis products use bit A5 here.

config ETRAX_LED2R
	string "Second red LED bit"
	depends on ETRAX_ARCH_V32
	default "PA6"
	help
	  Bit to use for the first red LED (network LED).
	  Most Axis products use bit A6 here.

config ETRAX_LED3G
	string "Third green LED bit"
	depends on ETRAX_ARCH_V32
	default "PA7"
	help
	  Bit to use for the first green LED (drive/power LED).
	  Most Axis products use bit A7 here.

config ETRAX_LED3R
	string "Third red LED bit"
	depends on ETRAX_ARCH_V32
	default "PA7"
	help
	  Bit to use for the first red LED (drive/power LED).
	  Most Axis products use bit A7 here.

choice
	prompt "Product debug-port"
	depends on ETRAX_ARCH_V32
	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

config ETRAX_MEM_GRP1_CONFIG
	hex "MEM_GRP1_CONFIG"
	depends on ETRAX_ARCH_V32
	default "4044a"
	help
	  Waitstates for flash. The default value is suitable for the
	  standard flashes used in axis products (120 ns).

config ETRAX_MEM_GRP2_CONFIG
	hex "MEM_GRP2_CONFIG"
	depends on ETRAX_ARCH_V32
	default "0"
	help
	  Waitstates for SRAM. 0 is a good choice for most Axis products.

config ETRAX_MEM_GRP3_CONFIG
	hex "MEM_GRP3_CONFIG"
	depends on ETRAX_ARCH_V32
	default "0"
	help
	  Waitstates for CSP0-3. 0 is a good choice for most Axis products.
	  It may need to be changed if external devices such as extra
	  register-mapped LEDs are used.

config ETRAX_MEM_GRP4_CONFIG
	hex "MEM_GRP4_CONFIG"
	depends on ETRAX_ARCH_V32
	default "0"
	help
	  Waitstates for CSP4-6. 0 is a good choice for most Axis products.

config ETRAX_SDRAM_GRP0_CONFIG
	hex "SDRAM_GRP0_CONFIG"
	depends on ETRAX_ARCH_V32
	default "336"
	help
	  SDRAM configuration for group 0. The value depends on the
	  hardware configuration. The default value is suitable
	  for 32 MB organized as two 16 bits chips (e.g. Axis
	  part number 18550) connected as one 32 bit device (i.e. in
	  the same group).

config ETRAX_SDRAM_GRP1_CONFIG
	hex "SDRAM_GRP1_CONFIG"
	depends on ETRAX_ARCH_V32
	default "0"
	help
	  SDRAM configuration for group 1. The defult value is 0
	  because group 1 is not used in the default configuration,
	  described in the help for SDRAM_GRP0_CONFIG.

config ETRAX_SDRAM_TIMING
	hex "SDRAM_TIMING"
	depends on ETRAX_ARCH_V32
	default "104a"
	help
	  SDRAM timing parameters. The default value is ok for
	  most hardwares but large SDRAMs may require a faster
	  refresh (a.k.a 8K refresh). The default value implies
	  100MHz clock and SDR mode.

config ETRAX_SDRAM_COMMAND
	hex "SDRAM_COMMAND"
	depends on ETRAX_ARCH_V32
	default "0"
	help
	  SDRAM command. Should be 0 unless you really know what
	  you are doing (may be != 0 for unusual address line
	  mappings such as in a MCM)..

config ETRAX_DEF_GIO_PA_OE
	hex "GIO_PA_OE"
	depends on ETRAX_ARCH_V32
	default "1c"
	help
	  Configures the direction of general port A bits.  1 is out, 0 is in.
	  This is often totally different depending on the product used.
	  There are some guidelines though - if you know that only LED's are
	  connected to port PA, then they are usually connected to bits 2-4
	  and you can therefore use 1c.  On other boards which don't have the
	  LED's at the general ports, these bits are used for all kinds of
	  stuff.  If you don't know what to use, it is always safe to put all
	  as inputs, although floating inputs isn't good.

config ETRAX_DEF_GIO_PA_OUT
	hex "GIO_PA_OUT"
	depends on ETRAX_ARCH_V32
	default "00"
	help
	  Configures the initial data for the general port A bits.  Most
	  products should use 00 here.

config ETRAX_DEF_GIO_PB_OE
	hex "GIO_PB_OE"
	depends on ETRAX_ARCH_V32
	default "00000"
	help
	  Configures the direction of general port B bits.  1 is out, 0 is in.
	  This is often totally different depending on the product used.
	  There are some guidelines though - if you know that only LED's are
	  connected to port PA, then they are usually connected to bits 2-4
	  and you can therefore use 1c.  On other boards which don't have the
	  LED's at the general ports, these bits are used for all kinds of
	  stuff.  If you don't know what to use, it is always safe to put all
	  as inputs, although floating inputs isn't good.

config ETRAX_DEF_GIO_PB_OUT
	hex "GIO_PB_OUT"
	depends on ETRAX_ARCH_V32
	default "00000"
	help
	  Configures the initial data for the general port B bits.  Most
	  products should use 00000 here.

config ETRAX_DEF_GIO_PC_OE
	hex "GIO_PC_OE"
	depends on ETRAX_ARCH_V32
	default "00000"
	help
	  Configures the direction of general port C bits.  1 is out, 0 is in.
	  This is often totally different depending on the product used.
	  There are some guidelines though - if you know that only LED's are
	  connected to port PA, then they are usually connected to bits 2-4
	  and you can therefore use 1c.  On other boards which don't have the
	  LED's at the general ports, these bits are used for all kinds of
	  stuff.  If you don't know what to use, it is always safe to put all
	  as inputs, although floating inputs isn't good.

config ETRAX_DEF_GIO_PC_OUT
	hex "GIO_PC_OUT"
	depends on ETRAX_ARCH_V32
	default "00000"
	help
	  Configures the initial data for the general port C bits.  Most
	  products should use 00000 here.

config ETRAX_DEF_GIO_PD_OE
	hex "GIO_PD_OE"
	depends on ETRAX_ARCH_V32
	default "00000"
	help
	  Configures the direction of general port D bits.  1 is out, 0 is in.
	  This is often totally different depending on the product used.
	  There are some guidelines though - if you know that only LED's are
	  connected to port PA, then they are usually connected to bits 2-4
	  and you can therefore use 1c.  On other boards which don't have the
	  LED's at the general ports, these bits are used for all kinds of
	  stuff.  If you don't know what to use, it is always safe to put all
	  as inputs, although floating inputs isn't good.

config ETRAX_DEF_GIO_PD_OUT
	hex "GIO_PD_OUT"
	depends on ETRAX_ARCH_V32
	default "00000"
	help
	  Configures the initial data for the general port D bits.  Most
	  products should use 00000 here.

config ETRAX_DEF_GIO_PE_OE
	hex "GIO_PE_OE"
	depends on ETRAX_ARCH_V32
	default "00000"
	help
	  Configures the direction of general port E bits.  1 is out, 0 is in.
	  This is often totally different depending on the product used.
	  There are some guidelines though - if you know that only LED's are
	  connected to port PA, then they are usually connected to bits 2-4
	  and you can therefore use 1c.  On other boards which don't have the
	  LED's at the general ports, these bits are used for all kinds of
	  stuff.  If you don't know what to use, it is always safe to put all
	  as inputs, although floating inputs isn't good.

config ETRAX_DEF_GIO_PE_OUT
	hex "GIO_PE_OUT"
	depends on ETRAX_ARCH_V32
	default "00000"
	help
	  Configures the initial data for the general port E bits.  Most
	  products should use 00000 here.
