1# SPDX-License-Identifier: GPL-2.0 2 3config HVC_DRIVER 4 bool 5 help 6 Generic "hypervisor virtual console" infrastructure for various 7 hypervisors (pSeries, iSeries, Xen). 8 It will automatically be selected if one of the back-end console drivers 9 is selected. 10 11config HVC_IRQ 12 bool 13 14config HVC_CONSOLE 15 bool "pSeries Hypervisor Virtual Console support" 16 depends on PPC_PSERIES 17 select HVC_DRIVER 18 select HVC_IRQ 19 help 20 pSeries machines when partitioned support a hypervisor virtual 21 console. This driver allows each pSeries partition to have a console 22 which is accessed via the HMC. 23 24config HVC_OLD_HVSI 25 bool "Old driver for pSeries serial port (/dev/hvsi*)" 26 depends on HVC_CONSOLE 27 28config HVC_OPAL 29 bool "OPAL Console support" 30 depends on PPC_POWERNV 31 select HVC_DRIVER 32 select HVC_IRQ 33 default y 34 help 35 PowerNV machines running under OPAL need that driver to get a console 36 37config HVC_RTAS 38 bool "IBM RTAS Console support" 39 depends on PPC_RTAS 40 select HVC_DRIVER 41 help 42 IBM Console device driver which makes use of RTAS 43 44config HVC_IUCV 45 bool "z/VM IUCV Hypervisor console support (VM only)" 46 depends on S390 && NET 47 select HVC_DRIVER 48 select IUCV 49 default y 50 help 51 This driver provides a Hypervisor console (HVC) back-end to access 52 a Linux (console) terminal via a z/VM IUCV communication path. 53 54config HVC_XEN 55 bool "Xen Hypervisor Console support" 56 depends on XEN 57 select HVC_DRIVER 58 select HVC_IRQ 59 default y 60 help 61 Xen virtual console device driver 62 63config HVC_XEN_FRONTEND 64 bool "Xen Hypervisor Multiple Consoles support" 65 depends on HVC_XEN 66 select XEN_XENBUS_FRONTEND 67 default y 68 help 69 Xen driver for secondary virtual consoles 70 71config HVC_UDBG 72 bool "udbg based fake hypervisor console" 73 depends on PPC 74 select HVC_DRIVER 75 help 76 This is meant to be used during HW bring up or debugging when 77 no other console mechanism exist but udbg, to get you a quick 78 console for userspace. Do NOT enable in production kernels. 79 80config HVC_DCC 81 bool "ARM JTAG DCC console" 82 depends on ARM || ARM64 83 select HVC_DRIVER 84 select SERIAL_CORE_CONSOLE 85 help 86 This console uses the JTAG DCC on ARM to create a console under the HVC 87 driver. This console is used through a JTAG only on ARM. If you don't have 88 a JTAG then you probably don't want this option. 89 90config HVC_DCC_SERIALIZE_SMP 91 bool "Use DCC only on core 0" 92 depends on SMP && HVC_DCC 93 help 94 Some debuggers, such as Trace32 from Lauterbach GmbH, do not handle 95 reads/writes from/to DCC on more than one core. Each core has its 96 own DCC device registers, so when a core reads or writes from/to DCC, 97 it only accesses its own DCC device. Since kernel code can run on 98 any core, every time the kernel wants to write to the console, it 99 might write to a different DCC. 100 101 In SMP mode, Trace32 only uses the DCC on core 0. In AMP mode, it 102 creates multiple windows, and each window shows the DCC output 103 only from that core's DCC. The result is that console output is 104 either lost or scattered across windows. 105 106 Selecting this option will enable code that serializes all console 107 input and output to core 0. The DCC driver will create input and 108 output FIFOs that all cores will use. Reads and writes from/to DCC 109 are handled by a workqueue that runs only core 0. 110 111config HVC_RISCV_SBI 112 bool "RISC-V SBI console support" 113 depends on RISCV_SBI_V01 114 select HVC_DRIVER 115 help 116 This enables support for console output via RISC-V SBI calls, which 117 is normally used only during boot to output printk. 118 119 If you don't know what do to here, say Y. 120 121config HVCS 122 tristate "IBM Hypervisor Virtual Console Server support" 123 depends on PPC_PSERIES && HVC_CONSOLE 124 help 125 Partitionable IBM Power5 ppc64 machines allow hosting of 126 firmware virtual consoles from one Linux partition by 127 another Linux partition. This driver allows console data 128 from Linux partitions to be accessed through TTY device 129 interfaces in the device tree of a Linux partition running 130 this driver. 131 132 To compile this driver as a module, choose M here: the 133 module will be called hvcs. Additionally, this module 134 will depend on arch specific APIs exported from hvcserver.ko 135 which will also be compiled when this driver is built as a 136 module. 137