# SPDX-License-Identifier: GPL-2.0 
 | 
  
 | 
config HVC_DRIVER 
 | 
    bool 
 | 
    help 
 | 
      Generic "hypervisor virtual console" infrastructure for various 
 | 
      hypervisors (pSeries, iSeries, Xen). 
 | 
      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 
 | 
  
 | 
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_IUCV 
 | 
    bool "z/VM IUCV Hypervisor console support (VM only)" 
 | 
    depends on S390 && NET 
 | 
    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 
 | 
    select HVC_DRIVER 
 | 
    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 || ARM64 
 | 
    select HVC_DRIVER 
 | 
    select SERIAL_CORE_CONSOLE 
 | 
    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_DCC_SERIALIZE_SMP 
 | 
    bool "Use DCC only on core 0" 
 | 
    depends on SMP && HVC_DCC 
 | 
    help 
 | 
      Some debuggers, such as Trace32 from Lauterbach GmbH, do not handle 
 | 
      reads/writes from/to DCC on more than one core. Each core has its 
 | 
      own DCC device registers, so when a core reads or writes from/to DCC, 
 | 
      it only accesses its own DCC device. Since kernel code can run on 
 | 
      any core, every time the kernel wants to write to the console, it 
 | 
      might write to a different DCC. 
 | 
  
 | 
      In SMP mode, Trace32 only uses the DCC on core 0. In AMP mode, it 
 | 
      creates multiple windows, and each window shows the DCC output 
 | 
      only from that core's DCC. The result is that console output is 
 | 
      either lost or scattered across windows. 
 | 
  
 | 
      Selecting this option will enable code that serializes all console 
 | 
      input and output to core 0. The DCC driver will create input and 
 | 
      output FIFOs that all cores will use. Reads and writes from/to DCC 
 | 
      are handled by a workqueue that runs only core 0. 
 | 
  
 | 
config HVC_RISCV_SBI 
 | 
    bool "RISC-V SBI console support" 
 | 
    depends on RISCV_SBI_V01 
 | 
    select HVC_DRIVER 
 | 
    help 
 | 
      This enables support for console output via RISC-V SBI calls, which 
 | 
      is normally used only during boot to output printk. 
 | 
  
 | 
      If you don't know what do to here, say Y. 
 | 
  
 | 
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. 
 |