mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-11-01 09:13:37 +00:00 
			
		
		
		
	Several implementations were essentialy a common piece of C code using the cmpxchg() macro. Put the implementation in one spot that everyone can share, and convert sparc64 over to using this. Alpha is the lone arch-specific implementation, which codes up a special fast path for the common case in order to avoid GP reloading which a pure C version would require. Signed-off-by: David S. Miller <davem@davemloft.net>
		
			
				
	
	
		
			258 lines
		
	
	
	
		
			7.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			258 lines
		
	
	
	
		
			7.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# 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 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"
 | 
						|
 | 
						|
 |