config FRAME_POINTER
	def_bool n

config ZONE_DMA
	def_bool y

config XTENSA
	def_bool y
	select HAVE_IDE
	select GENERIC_ATOMIC64
	select HAVE_GENERIC_HARDIRQS
	select GENERIC_IRQ_SHOW
	select GENERIC_CPU_DEVICES
	select MODULES_USE_ELF_RELA
	select GENERIC_PCI_IOMAP
	select ARCH_WANT_OPTIONAL_GPIOLIB
	select CLONE_BACKWARDS
	select IRQ_DOMAIN
	help
	  Xtensa processors are 32-bit RISC machines designed by Tensilica
	  primarily for embedded systems.  These processors are both
	  configurable and extensible.  The Linux port to the Xtensa
	  architecture supports all processor configurations and extensions,
	  with reasonable minimum requirements.  The Xtensa Linux project has
	  a home page at <http://www.linux-xtensa.org/>.

config RWSEM_XCHGADD_ALGORITHM
	def_bool y

config GENERIC_HWEIGHT
	def_bool y

config GENERIC_GPIO
	def_bool y

config ARCH_HAS_ILOG2_U32
	def_bool n

config ARCH_HAS_ILOG2_U64
	def_bool n

config NO_IOPORT
	def_bool n

config HZ
	int
	default 100

source "init/Kconfig"
source "kernel/Kconfig.freezer"

config MMU
	def_bool n

config VARIANT_IRQ_SWITCH
	def_bool n

menu "Processor type and features"

choice
	prompt "Xtensa Processor Configuration"
	default XTENSA_VARIANT_FSF

config XTENSA_VARIANT_FSF
	bool "fsf - default (not generic) configuration"
	select MMU

config XTENSA_VARIANT_DC232B
	bool "dc232b - Diamond 232L Standard Core Rev.B (LE)"
	select MMU
	help
	  This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE).

config XTENSA_VARIANT_S6000
	bool "s6000 - Stretch software configurable processor"
	select VARIANT_IRQ_SWITCH
	select ARCH_REQUIRE_GPIOLIB
	select XTENSA_CALIBRATE_CCOUNT
endchoice

config XTENSA_UNALIGNED_USER
	bool "Unaligned memory access in use space"
	help
	  The Xtensa architecture currently does not handle unaligned
	  memory accesses in hardware but through an exception handler.
	  Per default, unaligned memory accesses are disabled in user space.

	  Say Y here to enable unaligned memory access in user space.

source "kernel/Kconfig.preempt"

config MATH_EMULATION
	bool "Math emulation"
	help
	Can we use information of configuration file?

endmenu

config XTENSA_CALIBRATE_CCOUNT
	def_bool n
	help
	  On some platforms (XT2000, for example), the CPU clock rate can
	  vary.  The frequency can be determined, however, by measuring
	  against a well known, fixed frequency, such as an UART oscillator.

config SERIAL_CONSOLE
	def_bool n

config XTENSA_ISS_NETWORK
	def_bool n

menu "Bus options"

config PCI
	bool "PCI support"
	default y
	help
	  Find out whether you have a PCI motherboard. PCI is the name of a
	  bus system, i.e. the way the CPU talks to the other stuff inside
	  your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
	  VESA. If you have PCI, say Y, otherwise N.

source "drivers/pci/Kconfig"

endmenu

menu "Platform options"

choice
	prompt "Xtensa System Type"
	default XTENSA_PLATFORM_ISS

config XTENSA_PLATFORM_ISS
	bool "ISS"
	depends on TTY
	select XTENSA_CALIBRATE_CCOUNT
	select SERIAL_CONSOLE
	select XTENSA_ISS_NETWORK
	help
	  ISS is an acronym for Tensilica's Instruction Set Simulator.

config XTENSA_PLATFORM_XT2000
	bool "XT2000"
	help
	  XT2000 is the name of Tensilica's feature-rich emulation platform.
	  This hardware is capable of running a full Linux distribution.

config XTENSA_PLATFORM_S6105
	bool "S6105"
	select SERIAL_CONSOLE
	select NO_IOPORT

config XTENSA_PLATFORM_XTFPGA
	bool "XTFPGA"
	select SERIAL_CONSOLE
	select ETHOC
	select XTENSA_CALIBRATE_CCOUNT
	help
	  XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605).
	  This hardware is capable of running a full Linux distribution.

endchoice


config XTENSA_CPU_CLOCK
	int "CPU clock rate [MHz]"
	depends on !XTENSA_CALIBRATE_CCOUNT
	default 16

config GENERIC_CALIBRATE_DELAY
	bool "Auto calibration of the BogoMIPS value"
	help
	  The BogoMIPS value can easily be derived from the CPU frequency.

config CMDLINE_BOOL
	bool "Default bootloader kernel arguments"

config CMDLINE
	string "Initial kernel command string"
	depends on CMDLINE_BOOL
	default "console=ttyS0,38400 root=/dev/ram"
	help
	  On some architectures (EBSA110 and CATS), there is currently no way
	  for the boot loader to pass arguments to the kernel. For these
	  architectures, you should supply some command-line options at build
	  time by entering them here. As a minimum, you should specify the
	  memory size and the root device (e.g., mem=64M root=/dev/nfs).

config USE_OF
	bool "Flattened Device Tree support"
	select OF
	select OF_EARLY_FLATTREE
	help
	  Include support for flattened device tree machine descriptions.

config BUILTIN_DTB
	string "DTB to build into the kernel image"
	depends on OF

source "mm/Kconfig"

source "drivers/pcmcia/Kconfig"

source "drivers/pci/hotplug/Kconfig"

endmenu

menu "Executable file formats"

# only elf supported
config KCORE_ELF
	def_bool y
        depends on PROC_FS
        help
          If you enabled support for /proc file system then the file
          /proc/kcore will contain the kernel core image in ELF format. This
          can be used in gdb:

          $ cd /usr/src/linux ; gdb vmlinux /proc/kcore

          This is especially useful if you have compiled the kernel with the
          "-g" option to preserve debugging information. It is mainly used
	  for examining kernel data structures on the live kernel.

source "fs/Kconfig.binfmt"

endmenu

source "net/Kconfig"

source "drivers/Kconfig"

source "fs/Kconfig"

source "arch/xtensa/Kconfig.debug"

source "security/Kconfig"

source "crypto/Kconfig"

source "lib/Kconfig"


