8b79d4e994
The new SBI console has the same problem as the old one: there's only
one shared backing hardware and no synchronization, so the two drivers
end up stepping on each other. This was the same issue the old SBI-0.1
console drivers had, but that was disabled by default when SBI-0.1 was.
So just mark the new driver as nonportable.
Reported-by: Emil Renner Berthing <kernel@esmil.dk>
Fixes: 88ead68e76
("tty: Add SBI debug console support to HVC SBI driver")
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Reviewed-by: Paul Walmsley <paul.walmsley@sifive.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20240214153429.16484-2-palmer@rivosinc.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
137 lines
4.2 KiB
Plaintext
137 lines
4.2 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 && NONPORTABLE
|
|
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. This driver
|
|
conflicts with real console drivers and should not be enabled on
|
|
systems that directly access the console.
|
|
|
|
If you don't know what do to here, say N.
|
|
|
|
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.
|