config HVC_DRIVER
	bool
	help
	  Generic "hypervisor virtual console" infrastructure for various
	  hypervisors (pSeries, iSeries, Xen, lguest).
	  It will automatically be selected if one of the back-end console drivers
	  is selected.

config HVC_IRQ
	bool

config HVC_CONSOLE
	bool "pSeries Hypervisor Virtual Console support"
	depends on PPC_PSERIES
	select HVC_DRIVER
	select HVC_IRQ
	help
	  pSeries machines when partitioned support a hypervisor virtual
	  console. This driver allows each pSeries partition to have a console
	  which is accessed via the HMC.

config HVC_OLD_HVSI
	bool "Old driver for pSeries serial port (/dev/hvsi*)"
	depends on HVC_CONSOLE
	default n

config HVC_OPAL
	bool "OPAL Console support"
	depends on PPC_POWERNV
	select HVC_DRIVER
	select HVC_IRQ
	default y
	help
	  PowerNV machines running under OPAL need that driver to get a console

config HVC_RTAS
	bool "IBM RTAS Console support"
	depends on PPC_RTAS
	select HVC_DRIVER
	help
	  IBM Console device driver which makes use of RTAS

config HVC_BEAT
	bool "Toshiba's Beat Hypervisor Console support"
	depends on PPC_CELLEB
	select HVC_DRIVER
	help
	  Toshiba's Cell Reference Set Beat Console device driver

config HVC_IUCV
	bool "z/VM IUCV Hypervisor console support (VM only)"
	depends on S390
	select HVC_DRIVER
	select IUCV
	default y
	help
	  This driver provides a Hypervisor console (HVC) back-end to access
	  a Linux (console) terminal via a z/VM IUCV communication path.

config HVC_XEN
	bool "Xen Hypervisor Console support"
	depends on XEN
	select HVC_DRIVER
	select HVC_IRQ
	default y
	help
	  Xen virtual console device driver

config HVC_XEN_FRONTEND
	bool "Xen Hypervisor Multiple Consoles support"
	depends on HVC_XEN
	select XEN_XENBUS_FRONTEND
	default y
	help
	  Xen driver for secondary virtual consoles

config HVC_UDBG
       bool "udbg based fake hypervisor console"
       depends on PPC && EXPERIMENTAL
       select HVC_DRIVER
       default n
       help
         This is meant to be used during HW bring up or debugging when
	 no other console mechanism exist but udbg, to get you a quick
	 console for userspace. Do NOT enable in production kernels. 

config HVC_DCC
       bool "ARM JTAG DCC console"
       depends on ARM
       select HVC_DRIVER
       help
         This console uses the JTAG DCC on ARM to create a console under the HVC
	 driver. This console is used through a JTAG only on ARM. If you don't have
	 a JTAG then you probably don't want this option.

config HVC_BFIN_JTAG
	bool "Blackfin JTAG console"
	depends on BLACKFIN
	select HVC_DRIVER
	help
	 This console uses the Blackfin JTAG to create a console under the
	 the HVC driver.  If you don't have JTAG, then you probably don't
	 want this option.

config HVCS
	tristate "IBM Hypervisor Virtual Console Server support"
	depends on PPC_PSERIES && HVC_CONSOLE
	help
	  Partitionable IBM Power5 ppc64 machines allow hosting of
	  firmware virtual consoles from one Linux partition by
	  another Linux partition.  This driver allows console data
	  from Linux partitions to be accessed through TTY device
	  interfaces in the device tree of a Linux partition running
	  this driver.

	  To compile this driver as a module, choose M here: the
	  module will be called hvcs.  Additionally, this module
	  will depend on arch specific APIs exported from hvcserver.ko
	  which will also be compiled when this driver is built as a
	  module.

