# For a description of the syntax of this configuration file,
# see Documentation/kbuild/config-language.txt.

mainmenu "Linux/Xtensa Kernel Configuration"

config FRAME_POINTER
	bool
	default n

config XTENSA
	bool
	default y
	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://xtensa.sourceforge.net/>.

config UID16
	bool
	default n

config RWSEM_XCHGADD_ALGORITHM
	bool
	default y

config HAVE_DEC_LOCK
	bool
	default y

config GENERIC_HARDIRQS
	bool
	default y

source "init/Kconfig"

menu "Processor type and features"

choice
	prompt "Xtensa Processor Configuration"
	default XTENSA_CPU_LINUX_BE

config XTENSA_CPU_LINUX_BE
	bool "linux_be"
	---help---
	  The linux_be processor configuration is the baseline Xtensa
	  configurations included in this kernel and also used by
	  binutils, gcc, and gdb. It contains no TIE, no coprocessors,
	  and the following configuration options:

	  Code Density Option                2 Misc Special Registers
	  NSA/NSAU Instructions              128-bit Data Bus Width
	  Processor ID                       8K, 2-way I and D Caches
	  Zero-Overhead Loops                2 Inst Address Break Registers
	  Big Endian                         2 Data Address Break Registers
	  64 General-Purpose Registers       JTAG Interface and Trace Port
	  17 Interrupts                      MMU w/ TLBs and Autorefill
	  3 Interrupt Levels                 8 Autorefill Ways (I/D TLBs)
	  3 Timers                           Unaligned Exceptions
endchoice

config MMU
	bool
	default y

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.

config PREEMPT
	bool "Preemptible Kernel"
	---help---
           This option reduces the latency of the kernel when reacting to
           real-time or interactive events by allowing a low priority process to
           be preempted even if it is in kernel mode executing a system call.
           Unfortunately the kernel code has some race conditions if both
           CONFIG_SMP and CONFIG_PREEMPT are enabled, so this option is
           currently disabled if you are building an SMP kernel.

           Say Y here if you are building a kernel for a desktop, embedded
           or real-time system.  Say N if you are unsure.

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

config HIGHMEM
	bool "High memory support"

endmenu

menu "Platform options"

choice
	prompt "Xtensa System Type"
	default XTENSA_PLATFORM_ISS

config XTENSA_PLATFORM_ISS
	bool "ISS"
	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.

endchoice


config XTENSA_CALIBRATE_CCOUNT
	bool "Auto calibration of the CPU clock rate"
	---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 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 SERIAL_CONSOLE
	bool
	depends on XTENSA_PLATFORM_ISS
	default y

config XTENSA_ISS_NETWORK
	bool
	depends on XTENSA_PLATFORM_ISS
	default y

source "mm/Kconfig"

endmenu

menu "Bus options"

config PCI
	bool "PCI support" if !XTENSA_PLATFORM_ISS
	depends on !XTENSA_PLATFORM_ISS
	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.

	  The PCI-HOWTO, available from
	  <http://www.linuxdoc.org/docs.html#howto>, contains valuable
	  information about which PCI hardware does work under Linux and which
	  doesn't

source "drivers/pci/Kconfig"

config HOTPLUG

	bool "Support for hot-pluggable devices"
	---help---
	Say Y here if you want to plug devices into your computer while
	the system is running, and be able to use them quickly.  In many
	cases, the devices can likewise be unplugged at any time too.

	One well known example of this is PCMCIA- or PC-cards, credit-card
	size devices such as network cards, modems or hard drives which are
	plugged into slots found on all modern laptop computers.  Another
	example, used on modern desktops as well as laptops, is USB.

	Enable HOTPLUG and KMOD, and build a modular kernel.  Get agent
	software (at <http://linux-hotplug.sourceforge.net/>) and install it.
	Then your kernel will automatically call out to a user mode "policy
	agent" (/sbin/hotplug) to load modules and set up software needed
	to use devices as you hotplug them.

source "drivers/pcmcia/Kconfig"

source "drivers/pci/hotplug/Kconfig"

endmenu

menu "Exectuable file formats"

# only elf supported
config KCORE_ELF
        bool
        depends on PROC_FS
        default y
        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"

menu "Xtensa initrd options"
	depends on BLK_DEV_INITRD

	config EMBEDDED_RAMDISK
	bool "Embed root filesystem ramdisk into the kernel"

config EMBEDDED_RAMDISK_IMAGE
	string "Filename of gziped ramdisk image"
	depends on EMBEDDED_RAMDISK
	default "ramdisk.gz"
	help
	  This is the filename of the ramdisk image to be built into the
	  kernel.  Relative pathnames are relative to arch/xtensa/boot/ramdisk/.
	  The ramdisk image is not part of the kernel distribution; you must
	  provide one yourself.
endmenu

source "arch/xtensa/Kconfig.debug"

source "security/Kconfig"

source "crypto/Kconfig"

source "lib/Kconfig"


