mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00

For platforms using the Arm Generic Timer, add precise cross-timestamping support to virtio_rtc. Always report the CP15 virtual counter as the HW counter in use by arm_arch_timer, since the Linux kernel's usage of the Arm Generic Timer should always be compatible with this. Signed-off-by: Peter Hilber <quic_philber@quicinc.com> Message-Id: <20250509160734.1772-4-quic_philber@quicinc.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
239 lines
6.9 KiB
Text
239 lines
6.9 KiB
Text
# SPDX-License-Identifier: GPL-2.0-only
|
|
config VIRTIO_ANCHOR
|
|
bool
|
|
|
|
config VIRTIO
|
|
tristate
|
|
select VIRTIO_ANCHOR
|
|
help
|
|
This option is selected by any driver which implements the virtio
|
|
bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG
|
|
or CONFIG_S390_GUEST.
|
|
|
|
config VIRTIO_PCI_LIB
|
|
tristate
|
|
help
|
|
Modern PCI device implementation. This module implements the
|
|
basic probe and control for devices which are based on modern
|
|
PCI device with possible vendor specific extensions. Any
|
|
module that selects this module must depend on PCI.
|
|
|
|
config VIRTIO_PCI_LIB_LEGACY
|
|
tristate
|
|
help
|
|
Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device)
|
|
implementation.
|
|
This module implements the basic probe and control for devices
|
|
which are based on legacy PCI device. Any module that selects this
|
|
module must depend on PCI.
|
|
|
|
menuconfig VIRTIO_MENU
|
|
bool "Virtio drivers"
|
|
default y
|
|
|
|
if VIRTIO_MENU
|
|
|
|
config VIRTIO_HARDEN_NOTIFICATION
|
|
bool "Harden virtio notification"
|
|
depends on BROKEN
|
|
help
|
|
Enable this to harden the device notifications and suppress
|
|
those that happen at a time where notifications are illegal.
|
|
|
|
Experimental: Note that several drivers still have issues that
|
|
may cause crashes or hangs when correct handling of
|
|
notifications is enforced; depending on the subset of
|
|
drivers and devices you use, this may or may not work.
|
|
|
|
If unsure, say N.
|
|
|
|
config VIRTIO_PCI
|
|
tristate "PCI driver for virtio devices"
|
|
depends on PCI
|
|
select VIRTIO_PCI_LIB
|
|
select VIRTIO
|
|
help
|
|
This driver provides support for virtio based paravirtual device
|
|
drivers over PCI. This requires that your VMM has appropriate PCI
|
|
virtio backends. Most QEMU based VMMs should support these devices
|
|
(like KVM or Xen).
|
|
|
|
If unsure, say M.
|
|
|
|
config VIRTIO_PCI_ADMIN_LEGACY
|
|
bool
|
|
depends on VIRTIO_PCI && (X86 || COMPILE_TEST)
|
|
default y
|
|
|
|
config VIRTIO_PCI_LEGACY
|
|
bool "Support for legacy virtio draft 0.9.X and older devices"
|
|
default y
|
|
depends on VIRTIO_PCI
|
|
select VIRTIO_PCI_LIB_LEGACY
|
|
help
|
|
Virtio PCI Card 0.9.X Draft (circa 2014) and older device support.
|
|
|
|
This option enables building a transitional driver, supporting
|
|
both devices conforming to Virtio 1 specification, and legacy devices.
|
|
If disabled, you get a slightly smaller, non-transitional driver,
|
|
with no legacy compatibility.
|
|
|
|
So look out into your driveway. Do you have a flying car? If
|
|
so, you can happily disable this option and virtio will not
|
|
break. Otherwise, leave it set. Unless you're testing what
|
|
life will be like in The Future.
|
|
|
|
If unsure, say Y.
|
|
|
|
config VIRTIO_VDPA
|
|
tristate "vDPA driver for virtio devices"
|
|
depends on VDPA
|
|
select VIRTIO
|
|
help
|
|
This driver provides support for virtio based paravirtual
|
|
device driver over vDPA bus. For this to be useful, you need
|
|
an appropriate vDPA device implementation that operates on a
|
|
physical device to allow the datapath of virtio to be
|
|
offloaded to hardware.
|
|
|
|
If unsure, say M.
|
|
|
|
config VIRTIO_PMEM
|
|
tristate "Support for virtio pmem driver"
|
|
depends on VIRTIO
|
|
depends on LIBNVDIMM
|
|
help
|
|
This driver provides access to virtio-pmem devices, storage devices
|
|
that are mapped into the physical address space - similar to NVDIMMs
|
|
- with a virtio-based flushing interface.
|
|
|
|
If unsure, say Y.
|
|
|
|
config VIRTIO_BALLOON
|
|
tristate "Virtio balloon driver"
|
|
depends on VIRTIO
|
|
select MEMORY_BALLOON
|
|
select PAGE_REPORTING
|
|
help
|
|
This driver supports increasing and decreasing the amount
|
|
of memory within a KVM guest.
|
|
|
|
If unsure, say M.
|
|
|
|
config VIRTIO_MEM
|
|
tristate "Virtio mem driver"
|
|
depends on X86_64 || ARM64 || RISCV || S390
|
|
depends on VIRTIO
|
|
depends on MEMORY_HOTPLUG
|
|
depends on MEMORY_HOTREMOVE
|
|
depends on CONTIG_ALLOC
|
|
depends on EXCLUSIVE_SYSTEM_RAM
|
|
help
|
|
This driver provides access to virtio-mem paravirtualized memory
|
|
devices, allowing to hotplug and hotunplug memory.
|
|
|
|
This driver currently supports x86-64, arm64, riscv and s390.
|
|
Although it should compile on other architectures that implement
|
|
memory hot(un)plug, architecture-specific and/or common
|
|
code changes may be required for virtio-mem, kdump and kexec to
|
|
work as expected.
|
|
|
|
If unsure, say M.
|
|
|
|
config VIRTIO_INPUT
|
|
tristate "Virtio input driver"
|
|
depends on VIRTIO
|
|
depends on INPUT
|
|
help
|
|
This driver supports virtio input devices such as
|
|
keyboards, mice and tablets.
|
|
|
|
If unsure, say M.
|
|
|
|
config VIRTIO_MMIO
|
|
tristate "Platform bus driver for memory mapped virtio devices"
|
|
depends on HAS_IOMEM && HAS_DMA
|
|
select VIRTIO
|
|
help
|
|
This drivers provides support for memory mapped virtio
|
|
platform device driver.
|
|
|
|
If unsure, say N.
|
|
|
|
config VIRTIO_MMIO_CMDLINE_DEVICES
|
|
bool "Memory mapped virtio devices parameter parsing"
|
|
depends on VIRTIO_MMIO
|
|
help
|
|
Allow virtio-mmio devices instantiation via the kernel command line
|
|
or module parameters. Be aware that using incorrect parameters (base
|
|
address in particular) can crash your system - you have been warned.
|
|
See Documentation/admin-guide/kernel-parameters.rst for details.
|
|
|
|
If unsure, say 'N'.
|
|
|
|
config VIRTIO_DMA_SHARED_BUFFER
|
|
tristate
|
|
depends on DMA_SHARED_BUFFER
|
|
help
|
|
This option adds a flavor of dma buffers that are backed by
|
|
virtio resources.
|
|
|
|
config VIRTIO_DEBUG
|
|
bool "Debug facilities"
|
|
depends on VIRTIO
|
|
help
|
|
Enable this to expose debug facilities over debugfs.
|
|
This allows to debug features, to see what features the device
|
|
advertises and to set filter for features used by driver.
|
|
|
|
If unsure, say N.
|
|
|
|
config VIRTIO_RTC
|
|
tristate "Virtio RTC driver"
|
|
depends on VIRTIO
|
|
depends on PTP_1588_CLOCK_OPTIONAL
|
|
help
|
|
This driver provides current time from a Virtio RTC device. The driver
|
|
provides the time through one or more clocks. The Virtio RTC PTP
|
|
clocks must be enabled to expose the clocks to userspace.
|
|
|
|
To compile this code as a module, choose M here: the module will be
|
|
called virtio_rtc.
|
|
|
|
If unsure, say M.
|
|
|
|
if VIRTIO_RTC
|
|
|
|
comment "WARNING: Consider enabling VIRTIO_RTC_PTP."
|
|
depends on !VIRTIO_RTC_PTP
|
|
|
|
comment "Enable PTP_1588_CLOCK in order to enable VIRTIO_RTC_PTP."
|
|
depends on PTP_1588_CLOCK=n
|
|
|
|
config VIRTIO_RTC_PTP
|
|
bool "Virtio RTC PTP clocks"
|
|
default y
|
|
depends on PTP_1588_CLOCK
|
|
help
|
|
This exposes any Virtio RTC clocks as PTP Hardware Clocks (PHCs) to
|
|
userspace. The PHC sysfs attribute "clock_name" describes the clock
|
|
type.
|
|
|
|
If unsure, say Y.
|
|
|
|
config VIRTIO_RTC_ARM
|
|
bool "Virtio RTC cross-timestamping using Arm Generic Timer"
|
|
default y
|
|
depends on VIRTIO_RTC_PTP && ARM_ARCH_TIMER
|
|
help
|
|
This enables Virtio RTC cross-timestamping using the Arm Generic Timer.
|
|
It only has an effect if the Virtio RTC device also supports this. The
|
|
cross-timestamp is available through the PTP clock driver precise
|
|
cross-timestamp ioctl (PTP_SYS_OFFSET_PRECISE2 aka
|
|
PTP_SYS_OFFSET_PRECISE).
|
|
|
|
If unsure, say Y.
|
|
|
|
endif # VIRTIO_RTC
|
|
|
|
endif # VIRTIO_MENU
|