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

mainmenu "Linux Kernel Configuration"

config X86
	bool
	default y
	help
	  This is Linux's home port.  Linux was originally native to the Intel
	  386, and runs on all the later x86 processors including the Intel
	  486, 586, Pentiums, and various instruction-set-compatible chips by
	  AMD, Cyrix, and others.

config MMU
	bool
	default y

config SBUS
	bool

config UID16
	bool
	default y

config GENERIC_ISA_DMA
	bool
	default y

source "init/Kconfig"


menu "Processor type and features"

choice
	prompt "Subarchitecture Type"
	default X86_PC

config X86_PC
	bool "PC-compatible"
	help
	  Choose this option if your computer is a standard PC or compatible.

config X86_GENERICARCH
       bool "Generic architecture (Summit, bigsmp, ES7000, default)"
       depends on SMP
       help
          This option compiles in the Summit, bigsmp, ES7000, default subarchitectures.
	  It is intended for a generic binary kernel.

endchoice

config X86_CYCLONE_TIMER
	bool
	default y
	depends on X86_SUMMIT || X86_GENERICARCH

if !X86_ELAN

choice
	prompt "Processor family"
	default M686

config M386
	bool "386"
	---help---
	  This is the processor type of your CPU. This information is used for
	  optimizing purposes. In order to compile a kernel that can run on
	  all x86 CPU types (albeit not optimally fast), you can specify
	  "386" here.

	  The kernel will not necessarily run on earlier architectures than
	  the one you have chosen, e.g. a Pentium optimized kernel will run on
	  a PPro, but not necessarily on a i486.

	  Here are the settings recommended for greatest speed:
	  - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
	  486DLC/DLC2, UMC 486SX-S and NexGen Nx586.  Only "386" kernels
	  will run on a 386 class machine.
	  - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
	  SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
	  - "586" for generic Pentium CPUs lacking the TSC
	  (time stamp counter) register.
	  - "Pentium-Classic" for the Intel Pentium.
	  - "Pentium-MMX" for the Intel Pentium MMX.
	  - "Pentium-Pro" for the Intel Pentium Pro.
	  - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
	  - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
	  - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
	  - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
	  - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
	  - "Crusoe" for the Transmeta Crusoe series.
	  - "Winchip-C6" for original IDT Winchip.
	  - "Winchip-2" for IDT Winchip 2.
	  - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
	  - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
	  - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).

	  If you don't know what to do, choose "386".

config M486
	bool "486"
	help
	  Select this for a 486 series processor, either Intel or one of the
	  compatible processors from AMD, Cyrix, IBM, or Intel.  Includes DX,
	  DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
	  U5S.

config M586
	bool "586/K5/5x86/6x86/6x86MX"
	help
	  Select this for an 586 or 686 series processor such as the AMD K5,
	  the Intel 5x86 or 6x86, or the Intel 6x86MX.  This choice does not
	  assume the RDTSC (Read Time Stamp Counter) instruction.

config M586TSC
	bool "Pentium-Classic"
	help
	  Select this for a Pentium Classic processor with the RDTSC (Read
	  Time Stamp Counter) instruction for benchmarking.

config M586MMX
	bool "Pentium-MMX"
	help
	  Select this for a Pentium with the MMX graphics/multimedia
	  extended instructions.

config M686
	bool "Pentium-Pro"
	help
	  Select this for Intel Pentium Pro chips.  This enables the use of
	  Pentium Pro extended instructions, and disables the init-time guard
	  against the f00f bug found in earlier Pentiums.

config MPENTIUMII
	bool "Pentium-II/Celeron(pre-Coppermine)"
	help
	  Select this for Intel chips based on the Pentium-II and
	  pre-Coppermine Celeron core.  This option enables an unaligned
	  copy optimization, compiles the kernel with optimization flags
	  tailored for the chip, and applies any applicable Pentium Pro
	  optimizations.

config MPENTIUMIII
	bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
	help
	  Select this for Intel chips based on the Pentium-III and
	  Celeron-Coppermine core.  This option enables use of some
	  extended prefetch instructions in addition to the Pentium II
	  extensions.

config MPENTIUMM
	bool "Pentium M"
	help
	  Select this for Intel Pentium M (not Pentium-4 M)
	  notebook chips.

config MPENTIUM4
	bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon"
	help
	  Select this for Intel Pentium 4 chips.  This includes the
	  Pentium 4, P4-based Celeron and Xeon, and Pentium-4 M
	  (not Pentium M) chips.  This option enables compile flags
	  optimized for the chip, uses the correct cache shift, and
	  applies any applicable Pentium III optimizations.

config MK6
	bool "K6/K6-II/K6-III"
	help
	  Select this for an AMD K6-family processor.  Enables use of
	  some extended instructions, and passes appropriate optimization
	  flags to GCC.

config MK7
	bool "Athlon/Duron/K7"
	help
	  Select this for an AMD Athlon K7-family processor.  Enables use of
	  some extended instructions, and passes appropriate optimization
	  flags to GCC.

config MK8
	bool "Opteron/Athlon64/Hammer/K8"
	help
	  Select this for an AMD Opteron or Athlon64 Hammer-family processor.  Enables
	  use of some extended instructions, and passes appropriate optimization
	  flags to GCC.

config MCRUSOE
	bool "Crusoe"
	help
	  Select this for a Transmeta Crusoe processor.  Treats the processor
	  like a 586 with TSC, and sets some GCC optimization flags (like a
	  Pentium Pro with no alignment requirements).

config MWINCHIPC6
	bool "Winchip-C6"
	help
	  Select this for an IDT Winchip C6 chip.  Linux and GCC
	  treat this chip as a 586TSC with some extended instructions
	  and alignment requirements.

config MWINCHIP2
	bool "Winchip-2"
	help
	  Select this for an IDT Winchip-2.  Linux and GCC
	  treat this chip as a 586TSC with some extended instructions
	  and alignment requirements.

config MWINCHIP3D
	bool "Winchip-2A/Winchip-3"
	help
	  Select this for an IDT Winchip-2A or 3.  Linux and GCC
	  treat this chip as a 586TSC with some extended instructions
	  and alignment reqirements.  Also enable out of order memory
	  stores for this CPU, which can increase performance of some
	  operations.

config MCYRIXIII
	bool "CyrixIII/VIA-C3"
	help
	  Select this for a Cyrix III or C3 chip.  Presently Linux and GCC
	  treat this chip as a generic 586. Whilst the CPU is 686 class,
	  it lacks the cmov extension which gcc assumes is present when
	  generating 686 code.
	  Note that Nehemiah (Model 9) and above will not boot with this
	  kernel due to them lacking the 3DNow! instructions used in earlier
	  incarnations of the CPU.

config MVIAC3_2
	bool "VIA C3-2 (Nehemiah)"
	help
	  Select this for a VIA C3 "Nehemiah". Selecting this enables usage
	  of SSE and tells gcc to treat the CPU as a 686.
	  Note, this kernel will not boot on older (pre model 9) C3s.

endchoice

config X86_GENERIC
       bool "Generic x86 support" 
       help
	  Instead of just including optimizations for the selected
	  x86 variant (e.g. PII, Crusoe or Athlon), include some more
	  generic optimizations as well. This will make the kernel
	  perform better on x86 CPUs other than that selected.

	  This is really intended for distributors who need more
	  generic optimizations.

endif

#
# Define implied options from the CPU selection here
#
config X86_CMPXCHG
	bool
	depends on !M386
	default y

config X86_XADD
	bool
	depends on !M386
	default y

config X86_L1_CACHE_SHIFT
	int
	default "7" if MPENTIUM4 || X86_GENERIC
	default "4" if X86_ELAN || M486 || M386
	default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2
	default "6" if MK7 || MK8 || MPENTIUMM

config RWSEM_GENERIC_SPINLOCK
	bool
	depends on M386
	default y

config RWSEM_XCHGADD_ALGORITHM
	bool
	depends on !M386
	default y

config X86_PPRO_FENCE
	bool
	depends on M686 || M586MMX || M586TSC || M586 || M486 || M386
	default y

config X86_F00F_BUG
	bool
	depends on M586MMX || M586TSC || M586 || M486 || M386
	default y

config X86_WP_WORKS_OK
	bool
	depends on !M386
	default y

config X86_INVLPG
	bool
	depends on !M386
	default y

config X86_BSWAP
	bool
	depends on !M386
	default y

config X86_POPAD_OK
	bool
	depends on !M386
	default y

config X86_ALIGNMENT_16
	bool
	depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2
	default y

config X86_GOOD_APIC
	bool
	depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8
	default y

config X86_INTEL_USERCOPY
	bool
	depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7
	default y

config X86_USE_PPRO_CHECKSUM
	bool
	depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2
	default y

config X86_USE_3DNOW
	bool
	depends on MCYRIXIII || MK7
	default y

config X86_OOSTORE
	bool
	depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR
	default y

config HPET_TIMER
	bool "HPET Timer Support"
	help
	  This enables the use of the HPET for the kernel's internal timer.
	  HPET is the next generation timer replacing legacy 8254s.
	  You can safely choose Y here.  However, HPET will only be
	  activated if the platform and the BIOS support this feature.
	  Otherwise the 8254 will be used for timing services.

	  Choose N to continue using the legacy 8254 timer.

config HPET_EMULATE_RTC
	bool "Provide RTC interrupt"
	depends on HPET_TIMER && RTC=y

config SMP
	bool "Symmetric multi-processing support"
	---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.txt>,
	  <file:Documentation/i386/IO-APIC.txt>,
	  <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
	  <http://www.tldp.org/docs.html#howto>.

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

config NR_CPUS
	int "Maximum number of CPUs (2-255)"
	range 2 255
	depends on SMP
	default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
	default "8"
	help
	  This allows you to specify the maximum number of CPUs which this
	  kernel will support.  The maximum supported value is 255 and the
	  minimum value which makes sense is 2.

	  This is purely to save memory - each supported CPU adds
	  approximately eight kilobytes to the kernel image.

config SCHED_SMT
	bool "SMT (Hyperthreading) scheduler support"
	depends on SMP
	default off
	help
	  SMT scheduler support improves the CPU scheduler's decision making
	  when dealing with Intel Pentium 4 chips with HyperThreading at a
	  cost of slightly increased overhead in some places. If unsure say
	  N here.

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.
	  This allows applications to run more reliably even when the system is
	  under load.

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

config X86_UP_APIC
	bool "Local APIC support on uniprocessors" if !SMP
	depends on !(X86_VISWS || X86_VOYAGER)
	---help---
	  A local APIC (Advanced Programmable Interrupt Controller) is an
	  integrated interrupt controller in the CPU. If you have a single-CPU
	  system which has a processor with a local APIC, you can say Y here to
	  enable and use it. If you say Y here even though your machine doesn't
	  have a local APIC, then the kernel will still run with no slowdown at
	  all. The local APIC supports CPU-generated self-interrupts (timer,
	  performance counters), and the NMI watchdog which detects hard
	  lockups.

	  If you have a system with several CPUs, you do not need to say Y
	  here: the local APIC will be used automatically.

config X86_UP_IOAPIC
	bool "IO-APIC support on uniprocessors"
	depends on !SMP && X86_UP_APIC
	help
	  An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
	  SMP-capable replacement for PC-style interrupt controllers. Most
	  SMP systems and a small number of uniprocessor systems have one.
	  If you have a single-CPU system with an IO-APIC, you can say Y here
	  to use it. If you say Y here even though your machine doesn't have
	  an IO-APIC, then the kernel will still run with no slowdown at all.

	  If you have a system with several CPUs, you do not need to say Y
	  here: the IO-APIC will be used automatically.

config X86_LOCAL_APIC
	bool
	depends on !SMP && X86_UP_APIC
	default y

config X86_IO_APIC
	bool
	depends on !SMP && X86_UP_IOAPIC
	default y

config X86_TSC
	bool
	depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
	default y

config X86_MCE
	bool "Machine Check Exception"
	depends on !X86_VOYAGER
	---help---
	  Machine Check Exception support allows the processor to notify the
	  kernel if it detects a problem (e.g. overheating, component failure).
	  The action the kernel takes depends on the severity of the problem,
	  ranging from a warning message on the console, to halting the machine.
	  Your processor must be a Pentium or newer to support this - check the
	  flags in /proc/cpuinfo for mce.  Note that some older Pentium systems
	  have a design flaw which leads to false MCE events - hence MCE is
	  disabled on all P5 processors, unless explicitly enabled with "mce"
	  as a boot argument.  Similarly, if MCE is built in and creates a
	  problem on some new non-standard machine, you can boot with "nomce"
	  to disable it.  MCE support simply ignores non-MCE processors like
	  the 386 and 486, so nearly everyone can say Y here.

config X86_MCE_NONFATAL
	tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
	depends on X86_MCE
	help
	  Enabling this feature starts a timer that triggers every 5 seconds which
	  will look at the machine check registers to see if anything happened.
	  Non-fatal problems automatically get corrected (but still logged).
	  Disable this if you don't want to see these messages.
	  Seeing the messages this option prints out may be indicative of dying hardware,
	  or out-of-spec (ie, overclocked) hardware.
	  This option only does something on certain CPUs.
	  (AMD Athlon/Duron and Intel Pentium 4)

config X86_MCE_P4THERMAL
	bool "check for P4 thermal throttling interrupt."
	depends on X86_MCE && (X86_UP_APIC || SMP)
	help
	  Enabling this feature will cause a message to be printed when the P4
	  enters thermal throttling.

choice
	prompt "High Memory Support"
	default NOHIGHMEM

config NOHIGHMEM
	bool "off"
	---help---
	  Linux can use up to 64 Gigabytes of physical memory on x86 systems.
	  However, the address space of 32-bit x86 processors is only 4
	  Gigabytes large. That means that, if you have a large amount of
	  physical memory, not all of it can be "permanently mapped" by the
	  kernel. The physical memory that's not permanently mapped is called
	  "high memory".

	  If you are compiling a kernel which will never run on a machine with
	  more than 1 Gigabyte total physical RAM, answer "off" here (default
	  choice and suitable for most users). This will result in a "3GB/1GB"
	  split: 3GB are mapped so that each process sees a 3GB virtual memory
	  space and the remaining part of the 4GB virtual memory space is used
	  by the kernel to permanently map as much physical memory as
	  possible.

	  If the machine has between 1 and 4 Gigabytes physical RAM, then
	  answer "4GB" here.

	  If more than 4 Gigabytes is used then answer "64GB" here. This
	  selection turns Intel PAE (Physical Address Extension) mode on.
	  PAE implements 3-level paging on IA32 processors. PAE is fully
	  supported by Linux, PAE mode is implemented on all recent Intel
	  processors (Pentium Pro and better). NOTE: If you say "64GB" here,
	  then the kernel will not boot on CPUs that don't support PAE!

	  The actual amount of total physical memory will either be
	  auto detected or can be forced by using a kernel command line option
	  such as "mem=256M". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

	  If unsure, say "off".

config HIGHMEM4G
	bool "4GB"
	help
	  Select this if you have a 32-bit processor and between 1 and 4
	  gigabytes of physical RAM.

config HIGHMEM64G
	bool "64GB"
	help
	  Select this if you have a 32-bit processor and more than 4
	  gigabytes of physical RAM.

endchoice

config HIGHMEM
	bool
	depends on HIGHMEM64G || HIGHMEM4G
	default y

config X86_PAE
	bool
	depends on HIGHMEM64G
	default y

config HIGHPTE
	bool "Allocate 3rd-level pagetables from highmem"
	depends on HIGHMEM4G || HIGHMEM64G
	help
	  The VM uses one page table entry for each page of physical memory.
	  For systems with a lot of RAM, this can be wasteful of precious
	  low memory.  Setting this option will put user-space page table
	  entries in high memory.

config HAVE_DEC_LOCK
	bool
	depends on (SMP || PREEMPT) && X86_CMPXCHG
	default y

config REGPARM
	bool "Use register arguments (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	default n
	help
	Compile the kernel with -mregparm=3. This uses an different ABI
	and passes the first three arguments of a function call in registers.
	This will probably break binary only modules.

	This feature is only enabled for gcc-3.0 and later - earlier compilers
	generate incorrect output with certain kernel constructs when
	-mregparm=3 is used.

endmenu



menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"

config PCI
	bool "PCI support" if !X86_VISWS
	depends on !X86_VOYAGER
	default y if X86_VISWS
	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.tldp.org/docs.html#howto>, contains valuable
	  information about which PCI hardware does work under Linux and which
	  doesn't.

choice
	prompt "PCI access mode"
	depends on PCI && !X86_VISWS
	default PCI_GOANY
	---help---
	  On PCI systems, the BIOS can be used to detect the PCI devices and
	  determine their configuration. However, some old PCI motherboards
	  have BIOS bugs and may crash if this is done. Also, some embedded
	  PCI-based systems don't have any BIOS at all. Linux can also try to
	  detect the PCI hardware directly without using the BIOS.

	  With this option, you can specify how Linux should detect the
	  PCI devices. If you choose "BIOS", the BIOS will be used,
	  if you choose "Direct", the BIOS won't be used, and if you
	  choose "MMConfig", then PCI Express MMCONFIG will be used.
	  If you choose "Any", the kernel will try MMCONFIG, then the
	  direct access method and falls back to the BIOS if that doesn't
	  work. If unsure, go with the default, which is "Any".

config PCI_GOBIOS
	bool "BIOS"

config PCI_GOMMCONFIG
	bool "MMConfig"

config PCI_GODIRECT
	bool "Direct"

config PCI_GOANY
	bool "Any"

endchoice

config PCI_BIOS
	bool
	depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
	default y

config PCI_DIRECT
	bool
 	depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
	default y

config PCI_MMCONFIG
	bool
	depends on PCI && (PCI_GOMMCONFIG || PCI_GOANY)
	select ACPI_BOOT
	default y

source "drivers/pci/Kconfig"

config ISA
	bool "ISA support"
	depends on !(X86_VOYAGER || X86_VISWS)
	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.

endmenu


menu "Executable file formats"

source "fs/Kconfig.binfmt"

endmenu

source "drivers/Kconfig"

source "fs/Kconfig"


menu "Kernel hacking"

config DEBUG_KERNEL
	bool "Kernel debugging"
	help
	  Say Y here if you are developing drivers or trying to debug and
	  identify kernel problems.

config EARLY_PRINTK
	bool "Early printk" if EMBEDDED
	default y
	help
	  Write kernel log output directly into the VGA buffer or to a serial
	  port.

	  This is useful for kernel debugging when your machine crashes very
	  early before the console code is initialized. For normal operation
	  it is not recommended because it looks ugly and doesn't cooperate
	  with klogd/syslogd or the X server. You should normally N here,
	  unless you want to debug such a crash.

config DEBUG_STACKOVERFLOW
	bool "Check for stack overflows"
	depends on DEBUG_KERNEL

config DEBUG_STACK_USAGE
	bool "Stack utilization instrumentation"
	depends on DEBUG_KERNEL
	help
	  Enables the display of the minimum amount of free stack which each
	  task has ever had available in the sysrq-T and sysrq-P debug output.

	  This option will slow down process creation somewhat.

config DEBUG_SLAB
	bool "Debug memory allocations"
	depends on DEBUG_KERNEL
	help
	  Say Y here to have the kernel do limited verification on memory
	  allocation as well as poisoning memory on free to catch use of freed
	  memory.

config MAGIC_SYSRQ
	bool "Magic SysRq key"
	depends on DEBUG_KERNEL
	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 DEBUG_SPINLOCK
	bool "Spinlock debugging"
	depends on DEBUG_KERNEL
	help
	  Say Y here and build SMP to catch missing spinlock initialization
	  and certain other kinds of spinlock errors commonly made.  This is
	  best used in conjunction with the NMI watchdog so that spinlock
	  deadlocks are also debuggable.

config DEBUG_PAGEALLOC
	bool "Page alloc debugging"
	depends on DEBUG_KERNEL
	help
	  Unmap pages from the kernel linear mapping after free_pages().
	  This results in a large slowdown, but helps to find certain types
	  of memory corruptions.

config DEBUG_HIGHMEM
	bool "Highmem debugging"
	depends on DEBUG_KERNEL && HIGHMEM
	help
	  This options enables addition error checking for high memory systems.
	  Disable for production systems.

config DEBUG_INFO
	bool "Compile the kernel with debug info"
	depends on DEBUG_KERNEL
	help
          If you say Y here the resulting kernel image will include
	  debugging info resulting in a larger kernel image.
	  Say Y here only if you plan to use gdb to debug the kernel.
	  If you don't debug the kernel, you can say N.
	  
config DEBUG_SPINLOCK_SLEEP
	bool "Sleep-inside-spinlock checking"
	help
	  If you say Y here, various routines which may sleep will become very
	  noisy if they are called with a spinlock held.	

config FRAME_POINTER
	bool "Compile the kernel with frame pointers"
	help
	  If you say Y here the resulting kernel image will be slightly larger
	  and slower, but it will give very useful debugging information.
	  If you don't debug the kernel, you can say N, but we may not be able
	  to solve problems without frame pointers.

config 4KSTACKS
	bool "Use 4Kb for kernel stacks instead of 8Kb"
	help
	  If you say Y here the kernel will use a 4Kb stacksize for the
	  kernel stack attached to each process/thread. This facilitates
	  running more threads on a system and also reduces the pressure
	  on the VM subsystem for higher order allocations. This option
	  will also use IRQ stacks to compensate for the reduced stackspace.

endmenu

source "security/Kconfig"

source "lib/Kconfig"

config X86_BIOS_REBOOT
	bool
	depends on !(X86_VISWS || X86_VOYAGER)
	default y

config PC
	bool
	depends on X86 && !EMBEDDED
	default y
