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

mainmenu "Linux/SuperH Kernel Configuration"

config SUPERH
	bool
	default y
	help
	  The SuperH is a RISC processor targeted for use in embedded systems
	  and consumer electronics; it was also used in the Sega Dreamcast
	  gaming console.  The SuperH port has a home page at
	  <http://www.linux-sh.org/>.

config UID16
	bool
	default y

config RWSEM_GENERIC_SPINLOCK
	bool
	default y

config RWSEM_XCHGADD_ALGORITHM
	bool

config GENERIC_ISA_DMA
	bool
	default y

config VARIABLE_CLOCK_TICK_RATE
	bool
	default y

source "init/Kconfig"


menu "System type"

choice
	prompt "SuperH system type"
	default SH_UNKNOWN

config SH_SOLUTION_ENGINE
	bool "SolutionEngine"
	help
	  Select SolutionEngine if configuring for a Hitachi SH7709
	  or SH7750 evalutation board.

config SH_7751_SOLUTION_ENGINE
	bool "SolutionEngine7751"
	help
	  Select 7751 SolutionEngine if configuring for a Hitachi SH7751
	  evalutation board.

config SH_STB1_HARP
	bool "STB1_Harp"

config SH_STB1_OVERDRIVE
	bool "STB1_Overdrive"

config SH_HP620
	bool "HP620"
	help
	  Select HP620 if configuring for a HP jornada HP620.
	  More information (hardware only) at
	  <http://www.hp.com/jornada/>.

config SH_HP680
	bool "HP680"
	help
	  Select HP680 if configuring for a HP Jornada HP680.
	  More information (hardware only) at
	  <http://www.hp.com/jornada/products/680/>.

config SH_HP690
	bool "HP690"
	help
	  Select HP690 if configuring for a HP Jornada HP690.
	  More information (hardware only)
	  at <http://www.hp.com/jornada/products/680/>.

config SH_CQREEK
	bool "CqREEK"
	help
	  Select CqREEK if configuring for a CqREEK SH7708 or SH7750.
	  More information at
	  <http://sources.redhat.com/ecos/hardware.html#SuperH>.

config SH_DMIDA
	bool "DMIDA"
	help
	  Select DMIDA if configuring for a DataMyte 4000 Industrial
	  Digital Assistant. More information at <http://www.dmida.com/>.

config SH_EC3104
	bool "EC3104"
	help
	  Select EC3104 if configuring for a system with an Eclipse
	  International EC3104 chip, e.g. the Harris AD2000.

config SH_SATURN
	bool "Saturn"

config SH_DREAMCAST
	bool "Dreamcast"
	help
	  Select Dreamcast if configuring for a SEGA Dreamcast.
	  More information at
	  <http://www.m17n.org/linux-sh/dreamcast/>.  There is a
	  Dreamcast project is at <http://linuxdc.sourceforge.net/>.

config SH_CAT68701
	bool "CAT68701"

config SH_BIGSUR
	bool "BigSur"

config SH_SH2000
	bool "SH2000"
	help
	  SH-2000 is a single-board computer based around SH7709A chip
	  intended for embedded applications.
	  It has an Ethernet interface (CS8900A), direct connected
	  Compact Flash socket, three serial ports and PC-104 bus.
	  More information at <http://sh2000.sh-linux.org>.

config SH_ADX
	bool "ADX"

config SH_MPC1211
	bool "MPC1211"

config SH_UNKNOWN
	bool "BareCPU"
	help
	  "Bare CPU" aka "unknown" means an SH-based system which is not one
	  of the specific ones mentioned above, which means you need to enter
	  all sorts of stuff like CONFIG_MEMORY_START because the config
	  system doesn't already know what it is.  You get a machine vector
	  without any platform-specific code in it, so things like the RTC may
	  not work.

	  This option is for the early stages of porting to a new machine.

endchoice

config MMU
        bool "Support for memory management hardware"
	depends on !CPU_SH2
	default y
	help
	  Early SH processors (such as the SH7604) lack an MMU. In order to
	  boot on these systems, this option must not be set.

	  On other systems (such as the SH-3 and 4) where an MMU exists,
	  turning this off will boot the kernel on these machines with the
	  MMU implicitly switched off.

config CMDLINE_BOOL
	bool "Default bootloader kernel arguments"

config CMDLINE
	string "Initial kernel command string"
	depends on CMDLINE_BOOL
	default "console=ttySC1,115200"

# Platform-specific memory start and size definitions
config MEMORY_START
	hex "Physical memory start address" if !MEMORY_SET || MEMORY_OVERRIDE
	default "08000000" if !MEMORY_SET || MEMORY_OVERRIDE || !MEMORY_OVERRIDE && SH_ADX || SH_MPC1211
	default "0c000000" if !MEMORY_OVERRIDE && (SH_DREAMCAST || SH_HP600 || SH_BIGSUR || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE)
	---help---
	  Computers built with Hitachi SuperH processors always
	  map the ROM starting at address zero.  But the processor
	  does not specify the range that RAM takes.  

	  The physical memory (RAM) start address will be automatically
	  set to 08000000, unless you selected one of the following
	  processor types: SolutionEngine, Overdrive, HP620, HP680, HP690,
	  in which case the start address will be set to 0c000000.

	  Tweak this only when porting to a new machine which is not already
	  known by the config system.  Changing it from the known correct
	  value on any of the known systems will only lead to disaster.

config MEMORY_SIZE
	hex "Physical memory size" if !MEMORY_SET || MEMORY_OVERRIDE
	default "00400000" if !MEMORY_SET || MEMORY_OVERRIDE || !MEMORY_OVERRIDE && SH_ADX || !MEMORY_OVERRIDE && (SH_HP600 || SH_BIGSUR || SH_SH2000)
	default "01000000" if !MEMORY_OVERRIDE && SH_DREAMCAST
	default "04000000" if !MEMORY_OVERRIDE && SH_7751_SOLUTION_ENGINE
	default "02000000" if !MEMORY_OVERRIDE && SH_SOLUTION_ENGINE
	default "08000000" if SH_MPC1211
	help
	  This sets the default memory size assumed by your SH kernel. It can
	  be overridden as normal by the 'mem=' argument on the kernel command
	  line. If unsure, consult your board specifications or just leave it
	  as 0x00400000 which was the default value before this became
	  configurable.

config MEMORY_SET
	bool
	depends on !MEMORY_OVERRIDE && (SH_MPC1211 || SH_ADX || SH_DREAMCAST || SH_HP600 || SH_BIGSUR || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE)
	default y
	help
	  This is an option about which you will never be asked a question.
	  Therefore, I conclude that you do not exist - go away.

	  There is a grue here.

# If none of the above have set memory start/size, ask the user.
config MEMORY_OVERRIDE
	bool "Override default load address and memory size"
	
# XXX: break these out into the board-specific configs below
config CF_ENABLER
	bool "Compact Flash Enabler support"
	depends on SH_ADX || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701
	---help---
	  Compact Flash is a small, removable mass storage device introduced
	  in 1994 originally as a PCMCIA device.  If you say `Y' here, you
	  compile in support for Compact Flash devices directly connected to
	  a SuperH processor.  A Compact Flash FAQ is available at
	  <http://www.compactflash.org/faqs/faq.htm>.

	  If your board has "Directly Connected" CompactFlash at area 5 or 6,
	  you may want to enable this option.  Then, you can use CF as
	  primary IDE drive (only tested for SanDisk).

	  If in doubt, select 'N'.

choice
	prompt "Compact Flash Connection Area"
	depends on CF_ENABLER
	default CF_AREA6

config CF_AREA5
	bool "Area5"
	help
	  If your board has "Directly Connected" CompactFlash, You should
	  select the area where your CF is connected to.

	  - "Area5" if CompactFlash is connected to Area 5 (0x14000000)
	  - "Area6" if it is connected to Area 6 (0x18000000)

	  "Area6" will work for most boards. For ADX, select "Area5".

config CF_AREA6
	bool "Area6"

endchoice

config CF_BASE_ADDR
	hex
	depends on CF_ENABLER
	default "b8000000" if CF_AREA6
	default "b4000000" if CF_AREA5

endmenu

# The SH7750 RTC module is disabled in the Dreamcast
config SH_RTC
	bool
	depends on !SH_DREAMCAST
	default y
	help
	  Selecting this option will allow the Linux kernel to emulate
	  PC's RTC.

	  If unsure, say N.

# This is also board-specific
config PCI_AUTO
	bool

config SH_HP600
	bool
	depends on SH_HP620 || SH_HP680 || SH_HP690
	default y

config DISCONTIGMEM
	bool
	depends on SH_HP690
	default y
	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.


menu "Processor type and features"

#
# Ick, get rid of all this CPU_SUBTYPE nonsense. Just probe it, fill in
# cpu_data, and leave it alone. (Feasible for SH-4 at least, and some
# SH-3). ++paulm
#
choice
	prompt "Processor type"
	default CPU_SUBTYPE_SH7708

config CPU_SUBTYPE_SH7604
	bool "SH7604"
	help
	  Select SH7604 if you have SH7604

config CPU_SUBTYPE_SH7707
	bool "SH7707"
	---help---
	  Select the type of SuperH processor you have. This information is
	  used for optimizing and configuration purposes.

          Select SH7604 if you have a SH-2 CPU.

	  Select SH7707 if you have a  60 Mhz SH-3 HD6417707 CPU.

	  Select SH7708 if you have a  60 Mhz SH-3 HD6417708S or
	  if you have a 100 Mhz SH-3 HD6417708R CPU.

	  Select SH7709 if you have a  80 Mhz SH-3 HD6417709 CPU.

	  Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.

	  Select SH7751 if you have a SH7751

	  Select ST40STB1 if you have a ST40STB1

config CPU_SUBTYPE_SH7708
	bool "SH7708"
	help
	  Select SH7708 if you have a  60 Mhz SH-3 HD6417708S or
	  if you have a 100 Mhz SH-3 HD6417708R CPU.

config CPU_SUBTYPE_SH7709
	bool "SH7709"
	help
	  Select SH7709 if you have a  80 Mhz SH-3 HD6417709 CPU.

config CPU_SUBTYPE_SH7750
	bool "SH7750"
	help
	  Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU.

config CPU_SUBTYPE_SH7751
	bool "SH7751"
	help
	  Select SH7750 if you have a 166 Mhz SH-4 HD6417751 CPU.

config CPU_SUBTYPE_ST40STB1
	bool "ST40STB1"
	help
	  Select ST40STB1 if you have a ST40STB1 CPU.

endchoice

config CPU_SH2
	bool
	depends on CPU_SUBTYPE_SH7604
	default y

config CPU_SH3
	bool
	depends on !CPU_SH2 && (CPU_SUBTYPE_SH7707 || CPU_SUBTYPE_SH7708 || CPU_SUBTYPE_SH7709)
	default y

config CPU_SH4
	bool
	depends on !CPU_SH3 && !CPU_SH2 && (CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_ST40STB1)
	default y

config ZERO_PAGE_OFFSET
	hex "Zero page offset"
	default "00001000" if !SH_MPC1211
	default "00004000" if SH_MPC1211
	help
	  This sets the default offset of zero page.

# XXX: needs to lose subtype for system type
config ST40_LMI_MEMORY
	bool "Memory on LMI"
	depends on CPU_SUBTYPE_ST40STB1

config MEMORY_START
	hex
	depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
	default "08000000"

config MEMORY_SIZE
	hex
	depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
	default "00400000"

config MEMORY_SET
	bool
	depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
	default y

config CPU_LITTLE_ENDIAN
	bool "Little Endian"
	help
	  Some SuperH 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 PREEMPT
	bool "Preemptible Kernel (EXPERIMENTAL)"
	depends on EXPERIMENTAL

config UBC_WAKEUP
	bool "Wakeup UBC on startup"
	help
	  Selecting this option will wakeup the User Break Controller (UBC) on
	  startup. Although the UBC is left in an awake state when the processor
	  comes up, some boot loaders misbehave by putting the UBC to sleep in a
	  power saving state, which causes issues with things like ptrace().

	  If unsure, say N.

config SH_WRITETHROUGH
	bool "Use write-through caching"
	default y if CPU_SH2
	help
	  Selecting this option will configure the caches in write-through
	  mode, as opposed to the default write-back configuration.

	  Since there's sill some aliasing issues on SH-4, this option will
	  unfortunately still require the majority of flushing functions to
	  be implemented to deal with aliasing.

	  If unsure, say N.

config SH_OCRAM
	bool "Operand Cache RAM (OCRAM) support"
	help
	  Selecting this option will automatically tear down the number of
	  sets in the dcache by half, which in turn exposes a memory range.

	  The addresses for the OC RAM base will vary according to the
	  processor version. Consult vendor documentation for specifics.

	  If unsure, say N.

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.

	  People using multiprocessor machines who say Y here should also say
	  Y to "Enhanced Real Time Clock Support", below.

	  See also the <file:Documentation/smp.tex>,
	  <file:Documentation/smp.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-32)"
	depends on SMP
	default "2"
	help
	  This allows you to specify the maximum number of CPUs which this
	  kernel will support.  The maximum supported value is 32 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 SH_DMA
	bool "DMA controller (DMAC) support"
	help
	  Selecting this option will provide same API as PC's Direct Memory
	  Access Controller(8237A) for SuperH DMAC.

	  If unsure, say N.

config CPU_FREQ
	bool "CPU Frequency scaling"
	help
	  CPU clock scaling allows you to change the clock speed of the
	  running CPU on the fly.

	  For details, take a look at <file:Documentation/cpufreq>.

	  If unsure, say N.

config CPU_FREQ_TABLE
	tristate "CPU frequency table helpers"
	depends on CPU_FREQ
	default y
	help
	  Many cpufreq drivers use these helpers, so only say N here if
	  the cpufreq driver of your choice doesn't need these helpers.

	  If unsure, say Y.

config SH_CPU_FREQ
	tristate "SuperH CPU Frequency driver"
	depends on CPU_FREQ
	help
	  This adds the cpufreq driver for SuperH. At present, only
	  the SH-4 is supported.

	  For details, take a look at <file:Documentation/cpufreq>.

	  If unsure, say N.

source "drivers/cpufreq/Kconfig"

# A board must have defined HD6446X_SERIES in order to see these
choice
	prompt "HD6446x options"
	depends HD6446X_SERIES
	default HD64461

config HD64461
	bool "Hitachi HD64461 companion chip support"
	depends on CPU_SUBTYPE_SH7709
	---help---
	  The Hitachi HD64461 provides an interface for
	  the SH7709 CPU, supporting a LCD controller,
	  CRT color controller, IrDA up to 4 Mbps, and a
	  PCMCIA controller supporting 2 slots.

	  More information is available at
	  <http://semiconductor.hitachi.com/windowsce/superh/sld013.htm>.

	  Say Y if you want support for the HD64461.
	  Otherwise, say N.

config HD64465
	bool "Hitachi HD64465 companion chip support"
	depends on CPU_SUBTYPE_SH7750
	---help---
	  The Hitachi HD64465 provides an interface for
	  the SH7750 CPU, supporting a LCD controller,
	  CRT color controller, IrDA, USB, PCMCIA,
	  keyboard controller, and a printer interface.

	  More information is available at
	  <http://global.hitachi.com/New/cnews/E/1998/981019B.html>.

	  Say Y if you want support for the HD64465.
	  Otherwise, say N.

endchoice

# These will also be split into the Kconfig's below
config HD64461_IRQ
	int "HD64461 IRQ"
	depends on HD64461
	default "36"
	help
	  The default setting of the HD64461 IRQ is 36.

	  Do not change this unless you know what you are doing.

config HD64461_ENABLER
	bool "HD64461 PCMCIA enabler"
	depends on HD64461
	help
	  Say Y here if you want to enable PCMCIA support
	  via the HD64461 companion chip.
	  Otherwise, say N.


config HD64465_IOBASE
	hex "HD64465 start address"
	depends on HD64465
	default "b0000000"
	help
	  The default setting of the HD64465 IO base address is 0xb0000000.

	  Do not change this unless you know what you are doing.

config HD64465_IRQ
	int "HD64465 IRQ"
	depends on HD64465
	default "5"
	help
	  The default setting of the HD64465 IRQ is 5.

	  Do not change this unless you know what you are doing.

endmenu


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

# Even on SuperH devices which don't have an ISA bus,
# this variable helps the PCMCIA modules handle
# IRQ requesting properly -- Greg Banks.
config ISA
	bool
	default y
	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
	---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 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

config PCI
	bool "PCI support"
	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
	default PCI_GOANY

config PCI_GOBIOS
	bool "BIOS"
	---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 "Any", the
	  kernel will try 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_GODIRECT
	bool "Direct"

config PCI_GOANY
	bool "Any"

endchoice

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

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

config SH_PCIDMA_NONCOHERENT
	bool "Cache and PCI noncoherent"
	depends on PCI
	help
	  Enable this option if your platform does not have a CPU cache which
	  remains coherent with PCI DMA. It is safest to say 'Y', although you
	  will see better performance if you can say 'N', because the PCI DMA
	  code will not have to flush the CPU's caches. If you have a PCI host
	  bridge integrated with your SH CPU, refer carefully to the chip specs
	  to see if you can say 'N' here. Otherwise, leave it as 'Y'.

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 "Executable file formats"

source "fs/Kconfig.binfmt"

endmenu

source "drivers/base/Kconfig"

source "drivers/mtd/Kconfig"

source "drivers/parport/Kconfig"

source "drivers/block/Kconfig"

source "drivers/ide/Kconfig"

source "drivers/scsi/Kconfig"

source "drivers/cdrom/Kconfig"

source "drivers/md/Kconfig"

source "drivers/ieee1394/Kconfig"

source "net/Kconfig"

source "drivers/isdn/Kconfig"

source "drivers/telephony/Kconfig"

#
# input - input/joystick depends on it. As does USB.
#
source "drivers/input/Kconfig"

#if [ "$CONFIG_SH_DREAMCAST" = "y" ]; then
#   source drivers/maple/Config.in
#fi

menu "Character devices"

config VT
	bool "Virtual terminal"
	---help---
	  If you say Y here, you will get support for terminal devices with
	  display and keyboard devices. These are called "virtual" because you
	  can run several virtual terminals (also called virtual consoles) on
	  one physical terminal. This is rather useful, for example one
	  virtual terminal can collect system messages and warnings, another
	  one can be used for a text-mode user session, and a third could run
	  an X session, all in parallel. Switching between virtual terminals
	  is done with certain key combinations, usually Alt-<function key>.

	  The setterm command ("man setterm") can be used to change the
	  properties (such as colors or beeping) of a virtual terminal. The
	  man page console_codes(4) ("man console_codes") contains the special
	  character sequences that can be used to change those properties
	  directly. The fonts used on virtual terminals can be changed with
	  the setfont ("man setfont") command and the key bindings are defined
	  with the loadkeys ("man loadkeys") command.

	  You need at least one virtual terminal device in order to make use
	  of your keyboard and monitor. Therefore, only people configuring an
	  embedded system would want to say N here in order to save some
	  memory; the only way to log into such a system is then via a serial
	  or network connection.

	  If unsure, say Y, or else you won't be able to do much with your new
	  shiny Linux system :-)

config VT_CONSOLE
	bool "Support for console on virtual terminal"
	depends on VT
	---help---
	  The system console is the device which receives all kernel messages
	  and warnings and which allows logins in single user mode. If you
	  answer Y here, a virtual terminal (the device used to interact with
	  a physical terminal) can be used as system console. This is the most
	  common mode of operations, so you should say Y here unless you want
	  the kernel messages be output only to a serial port (in which case
	  you should say Y to "Console on serial port", below).

	  If you do say Y here, by default the currently visible virtual
	  terminal (/dev/tty0) will be used as system console. You can change
	  that with a kernel command line option such as "console=tty3" which
	  would use the third virtual terminal as system console. (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 Y.

config HW_CONSOLE
	bool
	depends on VT && !S390 && !UM
	default y

config SERIAL
	tristate "Serial (8250, 16450, 16550 or compatible) support"
	---help---
	  This selects whether you want to include the driver for the standard
	  serial ports.  The standard answer is Y.  People who might say N
	  here are those that are setting up dedicated Ethernet WWW/FTP
	  servers, or users that have one of the various bus mice instead of a
	  serial mouse and don't intend to use their machine's standard serial
	  port for anything.  (Note that the Cyclades and Stallion multi
	  serial port drivers do not need this driver built in for them to
	  work.)

	  To compile this driver as a module, choose M here: the
	  module will be called serial.
	  [WARNING: Do not compile this driver as a module if you are using
	  non-standard serial ports, since the configuration information will
	  be lost when the driver is unloaded.  This limitation may be lifted
	  in the future.]

	  BTW1: If you have a mouseman serial mouse which is not recognized by
	  the X window system, try running gpm first.

	  BTW2: If you intend to use a software modem (also called Winmodem)
	  under Linux, forget it.  These modems are crippled and require
	  proprietary drivers which are only available under Windows.

	  Most people will say Y or M here, so that they can use serial mice,
	  modems and similar devices connecting to the standard serial ports.

config SH_SCI
	tristate "Serial (SCI, SCIF) support"
	help
	  Selecting this option will allow the Linux kernel to transfer data
	  over SCI (Serial Communication Interface) and/or SCIF (Serial
	  Communication Interface with FIFO) which are built into the Hitachi
	  SuperH processor.  The option provides 1 to 3 (depending
	  on the CPU model) standard Linux tty devices, /dev/ttySC[012]; one
	  of these is normally used as the system console.

	  If in doubt, press "y".

config SERIAL_CONSOLE
	bool "Support for console on serial port"
	depends on SERIAL=y || SH_SCI=y
	---help---
	  If you say Y here, it will be possible to use a serial port as the
	  system console (the system console is the device which receives all
	  kernel messages and warnings and which allows logins in single user
	  mode). This could be useful if some terminal or printer is connected
	  to that serial port.

	  Even if you say Y here, the currently visible virtual console
	  (/dev/tty0) will still be used as the system console by default, but
	  you can alter that using a kernel command line option such as
	  "console=ttyS1". (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 you don't have a VGA card installed and you say Y here, the
	  kernel will automatically use the first serial line, /dev/ttyS0, as
	  system console.

	  If unsure, say N.

comment "Unix 98 PTY support"

config UNIX98_PTYS
	bool "Unix98 PTY support"
	---help---
	  A pseudo terminal (PTY) is a software device consisting of two
	  halves: a master and a slave. The slave device behaves identical to
	  a physical terminal; the master device is used by a process to
	  read data from and write data to the slave, thereby emulating a
	  terminal. Typical programs for the master side are telnet servers
	  and xterms.

	  Linux has traditionally used the BSD-like names /dev/ptyxx for
	  masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
	  has a number of problems. The GNU C library glibc 2.1 and later,
	  however, supports the Unix98 naming standard: in order to acquire a
	  pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
	  terminal is then made available to the process and the pseudo
	  terminal slave can be accessed as /dev/pts/<number>. What was
	  traditionally /dev/ttyp2 will then be /dev/pts/2, for example.

	  The entries in /dev/pts/ are created on the fly by a virtual
	  file system; therefore, if you say Y here you should say Y to
	  "/dev/pts file system for Unix98 PTYs" as well.

	  If you want to say Y here, you need to have the C library glibc 2.1
	  or later (equal to libc-6.1, check with "ls -l /lib/libc.so.*").
	  Read the instructions in <file:Documentation/Changes> pertaining to
	  pseudo terminals. It's safe to say N.

config UNIX98_PTY_COUNT
	int "Maximum number of Unix98 PTYs in use (0-2048)"
	depends on UNIX98_PTYS
	default "256"
	help
	  The maximum number of Unix98 PTYs that can be used at any one time.
	  The default is 256, and should be enough for desktop systems. Server
	  machines which support incoming telnet/rlogin/ssh connections and/or
	  serve several X terminals may want to increase this: every incoming
	  connection and every xterm uses up one PTY.

	  When not in use, each additional set of 256 PTYs occupy
	  approximately 8 KB of kernel memory on 32-bit architectures.

config HEARTBEAT
	bool "Heartbeat LED"
	depends on SH_MPC1211 || SH_CAT68701 || SH_STB1_HARP || SH_STB1_OVERDRIVE || SH_BIGSUR || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE
	help
	  Use the power-on LED on your machine as a load meter.  The exact
	  behavior is platform-dependent, but normally the flash frequency is
	  a hyperbolic function of the 5-minute load average.


menu "Maple Bus input peripherals"
	depends on SH_DREAMCAST && MAPLE

config MAPLE_KEYBOARD
	tristate "Maple Bus keyboard support"
	depends on INPUT

config MAPLE_MOUSE
	tristate "Maple Bus mouse support"
	depends on INPUT

comment "Input core support is required for Maple input peripherals"
	depends on INPUT=n

endmenu

config PRINTER
	tristate "Parallel printer support"
	depends on PARPORT
	---help---
	  If you intend to attach a printer to the parallel port of your Linux
	  box (as opposed to using a serial printer; if the connector at the
	  printer has 9 or 25 holes ["female"], then it's serial), say Y.
	  Also read the Printing-HOWTO, available from
	  <http://www.tldp.org/docs.html#howto>.

	  It is possible to share one parallel port among several devices
	  (e.g. printer and ZIP drive) and it is safe to compile the
	  corresponding drivers into the kernel.
	  To compile this driver as a module, choose M here and read
	  <file:Documentation/parport.txt>.  The module will be called lp.

	  If you have several parallel ports, you can specify which ports to
	  use with the "lp" kernel command line option.  (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.)  The syntax of the
	  "lp" command line option can be found in <file:drivers/char/lp.c>.

	  If you have more than 8 printers, you need to increase the LP_NO
	  macro in lp.c and the PARPORT_MAX macro in parport.h.

config LP_CONSOLE
	bool "Support for console on line printer"
	depends on PRINTER
	---help---
	  If you want kernel messages to be printed out as they occur, you
	  can have a console on the printer. This option adds support for
	  doing that; to actually get it to happen you need to pass the
	  option "console=lp0" to the kernel at boot time.

	  If the printer is out of paper (or off, or unplugged, or too
	  busy..) the kernel will stall until the printer is ready again.
	  By defining CONSOLE_LP_STRICT to 0 (at your own risk) you
	  can make the kernel continue when this happens,
	  but it'll lose the kernel messages.

	  If unsure, say N.

config PPDEV
	tristate "Support for user-space parallel port device drivers"
	depends on PARPORT
	---help---
	  Saying Y to this adds support for /dev/parport device nodes.  This
	  is needed for programs that want portable access to the parallel
	  port, for instance deviceid (which displays Plug-and-Play device
	  IDs).

	  This is the parallel port equivalent of SCSI generic support (sg).
	  It is safe to say N to this -- it is not needed for normal printing
	  or parallel port CD-ROM/disk support.

	  To compile this support as a module, choose M here: the
	  module will be called ppdev.

	  If unsure, say N.

config PSMOUSE
	bool "PS/2 mouse (aka \"auxiliary device\") support"
	---help---
	  The PS/2 mouse connects to a special mouse port that looks much like
	  the keyboard port (small circular connector with 6 pins). This way,
	  the mouse does not use any serial ports. This port can also be used
	  for other input devices like light pens, tablets, keypads. Compaq,
	  AST and IBM all use this as their mouse port on currently shipping
	  machines. The trackballs of some laptops are PS/2 mice also. In
	  particular, the C&T 82C710 mouse on TI Travelmates is a PS/2 mouse.

	  Although PS/2 mice are not technically bus mice, they are explained
	  in detail in the Busmouse-HOWTO, available from
	  <http://www.tldp.org/docs.html#howto>.

	  When using a PS/2 mouse, you can get problems if you want to use the
	  mouse both on the Linux console and under X. Using the "-R" option
	  of the Linux mouse managing program gpm (available from
	  <ftp://gnu.systemy.it/pub/gpm/>) solves this problem, or you can get
	  the "mconv2" utility from <ftp://ibiblio.org/pub/Linux/system/mouse/>.


menu "Watchdog Cards"

config WATCHDOG
	bool "Watchdog Timer Support"
	---help---
	  If you say Y here (and to one of the following options) and create a
	  character special file /dev/watchdog with major number 10 and minor
	  number 130 using mknod ("man mknod"), you will get a watchdog, i.e.:
	  subsequently opening the file and then failing to write to it for
	  longer than 1 minute will result in rebooting the machine. This
	  could be useful for a networked machine that needs to come back
	  online as fast as possible after a lock-up. There's both a watchdog
	  implementation entirely in software (which can sometimes fail to
	  reboot the machine) and a driver for hardware watchdog boards, which
	  are more robust and can also keep track of the temperature inside
	  your computer. For details, read <file:Documentation/watchdog.txt>
	  in the kernel source.

	  The watchdog is usually used together with the watchdog daemon
	  which is available from
	  <ftp://ibiblio.org/pub/Linux/system/daemons/watchdog/>. This daemon can
	  also monitor NFS connections and can reboot the machine when the process
	  table is full.

	  If unsure, say N.

config WATCHDOG_NOWAYOUT
	bool "Disable watchdog shutdown on close"
	depends on WATCHDOG
	help
	  The default watchdog behaviour (which you get if you say N here) is
	  to stop the timer if the process managing it closes the file
	  /dev/watchdog. It's always remotely possible that this process might
	  get killed. If you say Y here, the watchdog cannot be stopped once
	  it has been started.

config SH_WDT
	tristate "SuperH Watchdog"
	depends on WATCHDOG
	help
	  This driver adds watchdog support for the integrated watchdog in the
	  SuperH processors. If you have one of these processors and wish
	  to have watchdog support enabled, say Y, otherwise say N.

	  As a side note, saying Y here will automatically boost HZ to 1000
	  so that the timer has a chance to clear the overflow counter. On
	  slower systems (such as the SH-2 and SH-3) this will likely yield
	  some performance issues. As such, the WDT should be avoided here
	  unless it is absolutely necessary.

	  To compile this driver as a module, choose M here: the
	  module will be called shwdt.

endmenu

config RTC
	tristate "Enhanced Real Time Clock Support"
	---help---
	  If you say Y here and create a character special file /dev/rtc with
	  major number 10 and minor number 135 using mknod ("man mknod"), you
	  will get access to the real time clock (or hardware clock) built
	  into your computer.

	  Every PC has such a clock built in. It can be used to generate
	  signals from as low as 1Hz up to 8192Hz, and can also be used
	  as a 24 hour alarm. It reports status information via the file
	  /proc/driver/rtc and its behaviour is set by various ioctls on
	  /dev/rtc.

	  If you run Linux on a multiprocessor machine and said Y to
	  "Symmetric Multi Processing" above, you should say Y here to read
	  and set the RTC in an SMP compatible fashion.

	  If you think you have a use for such a device (such as periodic data
	  sampling), then say Y here, and read <file:Documentation/rtc.txt>
	  for details.

	  To compile this driver as a module, choose M here: the
	  module will be called rtc.

source "drivers/char/pcmcia/Kconfig"

source "drivers/serial/Kconfig"

source "drivers/i2c/Kconfig"
 
endmenu

source "fs/Kconfig"

source "drivers/media/Kconfig"

source "drivers/video/Kconfig"

source "sound/Kconfig"

source "drivers/usb/Kconfig"


menu "Kernel hacking"

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 DEBUG_SPINLOCK
	bool "Spinlock debugging"
	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 SH_STANDARD_BIOS
	bool "Use LinuxSH standard BIOS"
	help
	  Say Y here if your target has the gdb-sh-stub
	  package from www.m17n.org (or any conforming standard LinuxSH BIOS)
	  in FLASH or EPROM.  The kernel will use standard BIOS calls during
	  boot for various housekeeping tasks (including calls to read and
	  write characters to a system console, get a MAC address from an
	  on-board Ethernet interface, and shut down the hardware).  Note this
	  does not work with machines with an existing operating system in
	  mask ROM and no flash (WindowsCE machines fall in this category).
	  If unsure, say N.

config SH_EARLY_PRINTK
	bool "Early printk support"
	depends on SH_STANDARD_BIOS
	help
	  Say Y here to redirect kernel printk messages to the serial port
	  used by the SH-IPL bootloader, starting very early in the boot
	  process and ending when the kernel's serial console is initialised.
	  This option is only useful porting the kernel to a new machine,
	  when the kernel may crash or hang before the serial console is
	  initialised. If unsure, say N.

endmenu

source "security/Kconfig"

source "crypto/Kconfig"

source "lib/Kconfig"