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

mainmenu "Linux Kernel Configuration"

config MMU
	bool
	default y

config SWAP
	bool
	default y

source "init/Kconfig"


menu "Machine selection"

choice
	prompt "Machine type"
	default SGI_IP27

config SGI_IP22
	bool "SGI-IP22,Indy/Indigo2"
	help
	  This are the SGI Indy, Challenge S and Indigo2, as well as certain
	  OEM variants like the Tandem CMN B006S. To compile a Linux kernel
	  that runs on these, say Y here.

config SGI_IP27
	bool "SGI-IP27,Origin200/2000"
	help
	  This are the SGI Origin 200, Origin 2000 and Onyx 2 Graphics
	  workstations.  To compile a Linux kernel that runs on these, say Y
	  here.

endchoice

config SGI_SN0_N_MODE
	bool "IP27 N-Mode"
	depends on SGI_IP27
	help
	  The nodes of Origin 200, Origin 2000 and Onyx 2 systems can be
	  configured in either N-Modes which allows for more nodes or M-Mode
	  which allows for more memory.  Your system is most probably
	  running in M-Mode, so you should say N here.

config DISCONTIGMEM
	bool "Discontiguous Memory Support"
	depends on SGI_IP27
	help
	  Say Y to upport efficient handling of discontiguous physical memory,
	  for architectures which are either NUMA (Non-Uniform Memory Access)
	  or have huge holes in the physical address space for other reasons.
	  See <file:Documentation/vm/numa> for more.

config NUMA
	bool "NUMA Support"
	depends on SGI_IP27
	help
	  Say Y to compile the kernel to support NUMA (Non-Uniform Memory
	  Access).  This option is for configuring high-end multiprocessor
	  server machines.  If in doubt, say N.

config MAPPED_KERNEL
	bool "Mapped kernel support"
	depends on SGI_IP27
	help
	  Change the way a Linux kernel is loaded unto memory on a MIPS64
	  machine.  This is required in order to support text replication and
	  NUMA.  If you need to undersatand it, read the source code.

config REPLICATE_KTEXT
	bool "Kernel text replication support"
	depends on SGI_IP27
	help
	  Say Y here to enable replicating the kernel text across multiple
	  nodes in a NUMA cluster.  This trades memory for speed.

config REPLICATE_EXHANDLERS
	bool "Exception handler replication support"
	depends on SGI_IP27
	help
	  Say Y here to enable replicating the kernel exception handlers
	  across multiple nodes in a NUMA cluster. This trades memory for
	  speed.

config SMP
	bool "Multi-Processing support"
	depends on SGI_IP27
	---help---
	  This enables support for systems with more than one CPU. If you have
	  a system with only one CPU, like most personal computers, say N. If
	  you have a system with more than one CPU, say Y.

	  If you say N here, the kernel will run on single and multiprocessor
	  machines, but will use only one CPU of a multiprocessor machine. If
	  you say Y here, the kernel will run on many, but not all,
	  singleprocessor machines. On a singleprocessor machine, the kernel
	  will run faster if you say N here.

	  Note that if you say Y here and choose architecture "586" or
	  "Pentium" under "Processor family", the kernel will not work on 486
	  architectures. Similarly, multiprocessor kernels for the "PPro"
	  architecture may not work on all Pentium based boards.

	  People using multiprocessor machines who say Y here should also say
	  Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
	  Management" code will be disabled if you say Y here.

	  See also the <file:Documentation/smp.tex>,
	  <file:Documentation/smp.txt>, <file:Documentation/i386/IO-APIC.txt>,
	  <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
	  <http://www.linuxdoc.org/docs.html#howto>.

	  If you don't know what to do here, say N.

#bool '  IP27 XXL' CONFIG_SGI_SN0_XXL
endmenu

#
# Select some configuration options automatically based on user selections
#
config RWSEM_GENERIC_SPINLOCK
	bool
	default y

config RWSEM_XCHGADD_ALGORITHM
	bool

config GENERIC_ISA_DMA
	bool
	default y

config PCI
	bool
	depends on SGI_IP27
	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.

config ISA
	bool
	help
	  Find out whether you have ISA slots on your motherboard.  ISA 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 PCI, EISA, MicroChannel
	  (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
	  newer boards don't support it.  If you have ISA, say Y, otherwise N.

config EISA
	bool
	depends on ISA
	default y
	---help---
	  The Extended Industry Standard Architecture (EISA) bus was
	  developed as an open alternative to the IBM MicroChannel bus.

	  The EISA bus provided some of the features of the IBM MicroChannel
	  bus while maintaining backward compatibility with cards made for
	  the older ISA bus.  The EISA bus saw limited use between 1988 and
	  1995 when it was made obsolete by the PCI bus.

	  Say Y here if you are building a kernel for an EISA-based machine.

	  Otherwise, say N.

config BOOT_ELF32
	bool
	depends on SGI_IP22
	default y

config ARC32
	bool
	depends on SGI_IP22
	default y

config BOARD_SCACHE
	bool
	depends on SGI_IP22
	default y

config ARC_MEMORY
	bool
	depends on SGI_IP22
	default y

config SGI
	bool
	depends on SGI_IP22
	default y

config L1_CACHE_SHIFT
	int
	default "7" if SGI_IP27
	default "5" if SGI_IP22

config BOOT_ELF64
	bool
	depends on SGI_IP27
	default y

config ARC64
	bool
	depends on SGI_IP27
	default y

config COHERENT_IO
	bool
	depends on SGI_IP27
	default y

config MAPPED_PCI_IO
	bool
	depends on SGI_IP27
	default y

config QL_ISP_A64
	bool
	depends on SGI_IP27
	default y

config MCA
	bool
	help
	  MicroChannel Architecture is found in some IBM PS/2 machines and
	  laptops.  It is a bus system similar to PCI or ISA. See
	  <file:Documentation/mca.txt> (and especially the web page given
	  there) before attempting to build an MCA bus kernel.

config SBUS
	bool


menu "CPU selection"

choice
	prompt "CPU type"
	default CPU_R4X00

config CPU_R4300
	bool "R4300"
	help
	  MIPS Technologies R4300-series processors.

config CPU_R4X00
	bool "R4x00"
	help
	  MIPS Technologies R4000-series processors other than 4300, including
	  the 4640, 4650, and 4700.

config CPU_R5000
	bool "R5000"
	help
	  MIPS Technologies R5000-series processors other than the Nevada.

config CPU_NEVADA
	bool "R52x0"
	help
	  MIPS Technologies R52x0-series ("Nevada") processors.

config CPU_R8000
	bool "R8000"
	help
	  MIPS Technologies R8000-series processors.

config CPU_R10000
	bool "R10000"
	help
	  MIPS Technologies R10000-series processors.

endchoice

endmenu


menu "General setup"

config MIPS_INSANE_LARGE
	bool "Support for large 64-bit configurations"
	depends on CPU_R10000
	help
	  MIPS R10000 does support a 44 bit / 16TB address space as opposed to
	  previous 64-bit processors which only supported 40 bit / 1TB. If you
	  need processes of more than 1TB virtual address space, say Y here.
	  This will result in additional memory usage, so it is not
	  recommended for normal users.

config CPU_LITTLE_ENDIAN
	bool "Generate little endian code"
	help
	  Some MIPS machines can be configured for either little or big endian
	  byte order. These modes require different kernels. Say Y if your
	  machine is little endian, N if it's a big endian machine.

config MIPS_FPU_EMULATOR
	bool "Kernel floating-point emulation"
	depends on EXPERIMENTAL
	help
	  This option enables the MIPS software floatingpoint support.  Due to
	  the way floating point works you should always enable this option
	  unless you exactly know what you're doing.

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"

config ARC_CONSOLE
	bool "ARC console support"
	depends on ARC32

config BINFMT_ELF
	tristate "Kernel support for 64-bit ELF binaries"
	---help---
	  ELF (Executable and Linkable Format) is a format for libraries and
	  executables used across different architectures and operating
	  systems. Saying Y here will enable your kernel to run ELF binaries
	  and enlarge it by about 13 KB. ELF support under Linux has now all
	  but replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC)
	  because it is portable (this does *not* mean that you will be able
	  to run executables from different architectures or operating systems
	  however) and makes building run-time libraries very easy. Many new
	  executables are distributed solely in ELF format. You definitely
	  want to say Y here.

	  Information about ELF is contained in the ELF HOWTO available from
	  <http://www.linuxdoc.org/docs.html#howto>.

	  If you find that after upgrading from Linux kernel 1.2 and saying Y
	  here, you still can't run any ELF binaries (they just crash), then
	  you'll have to install the newest ELF runtime libraries, including
	  ld.so (check the file <file:Documentation/Changes> for location and
	  latest version).

	  If you want to compile this as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want),
	  say M here and read <file:Documentation/modules.txt>.  The module
	  will be called binfmt_elf.o. Saying M or N here is dangerous because
	  some crucial programs on your system might be in ELF format.

config MIPS32_COMPAT
	bool "Kernel support for Linux/MIPS 32-bit binary compatibility"
	help
	  Select this option if you want Linux/MIPS 32-bit binary
	  compatibility. Since all software available for Linux/MIPS is
	  currently 32-bit you should say Y here.

config COMPAT
	bool
	depends on MIPS32_COMPAT
	default y

config BINFMT_ELF32
	bool
	depends on MIPS32_COMPAT
	default y
	help
	  This allows you to run 32-bit Linux/ELF binaries on your Ultra.
	  Everybody wants this; say Y.

config BINFMT_MISC
	tristate "Kernel support for MISC binaries"
	---help---
	  If you say Y here, it will be possible to plug wrapper-driven binary
	  formats into the kernel. You will like this especially when you use
	  programs that need an interpreter to run like Java, Python or
	  Emacs-Lisp. It's also useful if you often run DOS executables under
	  the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from
	  <http://www.linuxdoc.org/docs.html#howto>). Once you have
	  registered such a binary class with the kernel, you can start one of
	  those programs simply by typing in its name at a shell prompt; Linux
	  will automatically feed it to the correct interpreter.

	  You can do other nice things, too. Read the file
	  <file:Documentation/binfmt_misc.txt> to learn how to use this
	  feature, and <file:Documentation/java.txt> for information about how
	  to include Java support.

	  You must say Y to "/proc file system support" (CONFIG_PROC_FS) to
	  use this part of the kernel.

	  You may say M here for module support and later load the module when
	  you have use for it; the module is called binfmt_misc.o. If you
	  don't know what to answer at this point, say Y.

endmenu

source "drivers/pci/Kconfig"

source "drivers/mtd/Kconfig"

source "drivers/parport/Kconfig"

source "drivers/block/Kconfig"

source "drivers/md/Kconfig"


menu "ATA/ATAPI/MFM/RLL support"

config IDE
	tristate "ATA/ATAPI/MFM/RLL support"
	---help---
	  If you say Y here, your kernel will be able to manage low cost mass
	  storage units such as ATA/(E)IDE and ATAPI units. The most common
	  cases are IDE hard drives and ATAPI CD-ROM drives.

	  If your system is pure SCSI and doesn't use these interfaces, you
	  can say N here.

	  Integrated Disk Electronics (IDE aka ATA-1) is a connecting standard
	  for mass storage units such as hard disks. It was designed by
	  Western Digital and Compaq Computer in 1984. It was then named
	  ST506. Quite a number of disks use the IDE interface.

	  AT Attachment (ATA) is the superset of the IDE specifications.
	  ST506 was also called ATA-1.

	  Fast-IDE is ATA-2 (also named Fast ATA), Enhanced IDE (EIDE) is
	  ATA-3. It provides support for larger disks (up to 8.4GB by means of
	  the LBA standard), more disks (4 instead of 2) and for other mass
	  storage units such as tapes and cdrom. UDMA/33 (aka UltraDMA/33) is
	  ATA-4 and provides faster (and more CPU friendly) transfer modes
	  than previous PIO (Programmed processor Input/Output) from previous
	  ATA/IDE standards by means of fast DMA controllers.

	  ATA Packet Interface (ATAPI) is a protocol used by EIDE tape and
	  CD-ROM drives, similar in many respects to the SCSI protocol.

	  SMART IDE (Self Monitoring, Analysis and Reporting Technology) was
	  designed in order to prevent data corruption and disk crash by
	  detecting pre hardware failure conditions (heat, access time, and
	  the like...). Disks built since June 1995 may follow this standard.
	  The kernel itself don't manage this; however there are quite a
	  number of user programs such as smart that can query the status of
	  SMART parameters disk.

	  If you want to compile this driver as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want),
	  say M here and read <file:Documentation/modules.txt>. The module
	  will be called ide.o.

	  For further information, please read <file:Documentation/ide.txt>.

	  If unsure, say Y.

source "drivers/ide/Kconfig"

endmenu


menu "SCSI support"

config SCSI
	tristate "SCSI support"
	---help---
	  If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
	  any other SCSI device under Linux, say Y and make sure that you know
	  the name of your SCSI host adapter (the card inside your computer
	  that "speaks" the SCSI protocol, also called SCSI controller),
	  because you will be asked for it.

	  You also need to say Y here if you want support for the parallel
	  port version of the 100 MB IOMEGA ZIP drive.

	  This driver is also available as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want).
	  The module will be called scsi_mod.o.  If you want to compile it as
	  a module, say M here and read <file:Documentation/modules.txt> and
	  <file:Documentation/scsi/scsi.txt>.  However, do not compile this as a
	  module if your root file system (the one containing the directory /)
	  is located on a SCSI device.

source "drivers/scsi/Kconfig"

endmenu

#source drivers/message/i2o/Config.in
source "net/Kconfig"

source "net/ax25/Kconfig"

source "net/irda/Kconfig"

source "drivers/isdn/Kconfig"

source "drivers/telephony/Kconfig"


menu "Old CD-ROM drivers (not SCSI, not IDE)"

config CD_NO_IDESCSI
	bool "Support non-SCSI/IDE/ATAPI CDROM drives"
	---help---
	  If you have a CD-ROM drive that is neither SCSI nor IDE/ATAPI, say Y
	  here, otherwise N. Read the CD-ROM-HOWTO, available from
	  <http://www.linuxdoc.org/docs.html#howto>.

	  Note that the answer to this question doesn't directly affect the
	  kernel: saying N will just cause the configurator to skip all
	  the questions about these CD-ROM drives. If you are unsure what you
	  have, say Y and find out whether you have one of the following
	  drives.

	  For each of these drivers, a file Documentation/cdrom/{driver_name}
	  exists. Especially in cases where you do not know exactly which kind
	  of drive you have you should read there. Most of these drivers use a
	  file drivers/cdrom/{driver_name}.h where you can define your
	  interface parameters and switch some internal goodies.

	  All these CD-ROM drivers are also usable as a module ( = code which
	  can be inserted in and removed from the running kernel whenever you
	  want). If you want to compile them as module, say M instead of Y and
	  read <file:Documentation/modules.txt>.

	  If you want to use any of these CD-ROM drivers, you also have to
	  answer Y or M to "ISO 9660 CD-ROM file system support" below (this
	  answer will get "defaulted" for you if you enable any of the Linux
	  CD-ROM drivers).

source "drivers/cdrom/Kconfig"

endmenu

source "drivers/input/Kconfig"

source "drivers/char/Kconfig"

#source drivers/misc/Config.in
source "drivers/media/Kconfig"

source "fs/Kconfig"

source "drivers/video/Kconfig"

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. This can be used
	  in gdb:

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

	  You have two choices here: ELF and A.OUT. Selecting ELF will make
	  /proc/kcore appear in ELF core format as defined by the Executable
	  and Linking Format specification. Selecting A.OUT will choose the
	  old "a.out" format which may be necessary for some old versions
	  of binutils or on some architectures.

	  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 so if you
	  don't understand what this means or are not a kernel hacker, just
	  leave it at its default value ELF.


menu "Sound"

config SOUND
	tristate "Sound card support"
	---help---
	  If you have a sound card in your computer, i.e. if it can say more
	  than an occasional beep, say Y.  Be sure to have all the information
	  about your sound card and its configuration down (I/O port,
	  interrupt and DMA channel), because you will be asked for it.

	  You want to read the Sound-HOWTO, available from
	  <http://www.linuxdoc.org/docs.html#howto>. General information about
	  the modular sound system is contained in the files
	  <file:Documentation/sound/Introduction>.  The file
	  <file:Documentation/sound/README.OSS> contains some slightly
	  outdated but still useful information as well.

	  If you have a PnP sound card and you want to configure it at boot
	  time using the ISA PnP tools (read
	  <http://www.roestock.demon.co.uk/isapnptools/>), then you need to
	  compile the sound card support as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want)
	  and load that module after the PnP configuration is finished.  To do
	  this, say M here and read <file:Documentation/modules.txt> as well
	  as <file:Documentation/sound/README.modules>; the module will be
	  called soundcore.o.

	  I'm told that even without a sound card, you can make your computer
	  say more than an occasional beep, by programming the PC speaker.
	  Kernel patches and supporting utilities to do that are in the pcsp
	  package, available at <ftp://ftp.infradead.org/pub/pcsp/>.

source "sound/Kconfig"

endmenu

source "drivers/sgi/Kconfig"

source "drivers/usb/Kconfig"


menu "Kernel hacking"

#bool 'Debug kmalloc/kfree' CONFIG_DEBUG_MALLOC
config CROSSCOMPILE
	bool "Are you using a crosscompiler"
	help
	  Say Y here if you are compiling the kernel on a different
	  architecture than the one it is intended to run on.

config MIPS_FPE_MODULE
	bool "Build fp exception handler module"
	depends on MODULES
	help
	  Build the floating point exception handler module. This option is
	  only useful for people working on the floating point exception
	  handler. If you don't, say N.

config REMOTE_DEBUG
	bool "Remote GDB kernel debugging"
	help
	  If you say Y here, it will be possible to remotely debug the MIPS
	  kernel using gdb. This enlarges your kernel image disk size by
	  several megabytes and requires a machine with more than 16 MB,
	  better 32 MB RAM to avoid excessive linking time. This is only
	  useful for kernel hackers. If unsure, say N.

config MAGIC_SYSRQ
	bool "Magic SysRq key"
	help
	  If you say Y here, you will have some control over the system even
	  if the system crashes for example during kernel debugging (e.g., you
	  will be able to flush the buffer cache to disk, reboot the system
	  immediately or dump some status information). This is accomplished
	  by pressing various keys while holding SysRq (Alt+PrintScreen). It
	  also works on a serial console (on PC hardware at least), if you
	  send a BREAK and then within 5 seconds a command keypress. The
	  keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
	  unless you really know what this hack does.

config MIPS_UNCACHED
	bool "Run uncached"
	depends on !SMP
	help
	  If you say Y here there kernel will disable all CPU caches.  This will
	  reduce the system's performance dramatically but can help finding
	  otherwise hard to track bugs.  It can also useful if you're doing
	  hardware debugging with a logic analyzer and need to see all traffic
	  on the bus.

config NR_CPUS
	int "Maximum number of CPUs (2-64)"
	depends on SMP
	default "64"

endmenu

source "security/Kconfig"

source "crypto/Kconfig"

source "lib/Kconfig"

