if ETRAXFS

menu "ETRAX FS options"
       depends on ETRAXFS

config ETRAX_DRAM_VIRTUAL_BASE
	hex
	depends on ETRAX_ARCH_V32
	default "c0000000"

config ETRAX_SERIAL_PORTS
       int
       default 4

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 default 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.

config ETRAX_DEF_GIO_PV_OE
	hex "GIO_PV_OE"
	depends on ETRAX_VIRTUAL_GPIO
	default "0000"
	help
	  Configures the direction of virtual general port V bits. 1 is out,
	  0 is in. This is often totally different depending on the product
	  used. 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_PV_OUT
	hex "GIO_PV_OUT"
	depends on ETRAX_VIRTUAL_GPIO
	default "0000"
	help
	  Configures the initial data for the virtual general port V bits.
	  Most products should use 0000 here.

endmenu

endif
