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 CPU core 0" 92 depends on SMP && HVC_DCC 93 help 94 This is a DEBUG option to serialize all console input and output to CPU 0. 95 Some external debuggers, do not handle reads/writes from/to DCC on more 96 than one CPU core. Each core has its own DCC device registers, so when a 97 CPU core reads or writes from/to DCC, it only accesses its own DCC device. 98 Since kernel code can run on any CPU core, every time the kernel wants to 99 write to the console, it might write to a different DCC. 100 101 In SMP mode, external debuggers create multiple windows, and each window 102 shows the DCC output only from that core's DCC. The result is that 103 console output is either lost or scattered across windows. 104 105 Enable this option only if you are sure that you do not need features like 106 CPU hotplug to work. For example, during early chipset bringups without 107 debug serial console support. If unsure, say N. 108 109config HVC_RISCV_SBI 110 bool "RISC-V SBI console support" 111 depends on RISCV_SBI 112 select HVC_DRIVER 113 help 114 This enables support for console output via RISC-V SBI calls, which 115 is normally used only during boot to output printk. 116 117 If you don't know what do to here, say Y. 118 119config HVCS 120 tristate "IBM Hypervisor Virtual Console Server support" 121 depends on PPC_PSERIES && HVC_CONSOLE 122 help 123 Partitionable IBM Power5 ppc64 machines allow hosting of 124 firmware virtual consoles from one Linux partition by 125 another Linux partition. This driver allows console data 126 from Linux partitions to be accessed through TTY device 127 interfaces in the device tree of a Linux partition running 128 this driver. 129 130 To compile this driver as a module, choose M here: the 131 module will be called hvcs. Additionally, this module 132 will depend on arch specific APIs exported from hvcserver.ko 133 which will also be compiled when this driver is built as a 134 module. 135