4419da5d5d
Some external debuggers do not handle reads/writes from/to DCC on secondary cores. 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, external debugger 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 debug 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. This is a debug feature to be used only in early stage development where debug serial console support would not be present. It disables PM feature like CPU hotplug and is not suitable for production environment. Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org> Acked-by: Adam Wallis <awallis@codeaurora.org> Signed-off-by: Timur Tabi <timur@codeaurora.org> Signed-off-by: Elliot Berman <eberman@codeaurora.org> Signed-off-by: Sai Prakash Ranjan <quic_saipraka@quicinc.com> Link: https://lore.kernel.org/r/20220428090858.14489-1-quic_saipraka@quicinc.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
135 lines
4.1 KiB
Plaintext
135 lines
4.1 KiB
Plaintext
# 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 CPU core 0"
|
|
depends on SMP && HVC_DCC
|
|
help
|
|
This is a DEBUG option to serialize all console input and output to CPU 0.
|
|
Some external debuggers, do not handle reads/writes from/to DCC on more
|
|
than one CPU core. Each core has its own DCC device registers, so when a
|
|
CPU core reads or writes from/to DCC, it only accesses its own DCC device.
|
|
Since kernel code can run on any CPU core, every time the kernel wants to
|
|
write to the console, it might write to a different DCC.
|
|
|
|
In SMP mode, external debuggers create 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.
|
|
|
|
Enable this option only if you are sure that you do not need features like
|
|
CPU hotplug to work. For example, during early chipset bringups without
|
|
debug serial console support. If unsure, say N.
|
|
|
|
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.
|