Loading...
# SPDX-License-Identifier: GPL-2.0+
#
# Copyright (C) 2018, Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
# Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
#
# VirtIO is a virtualization standard for network and disk device drivers
# where just the guest's device driver "knows" it is running in a virtual
# environment, and cooperates with the hypervisor. This enables guests to
# get high performance network and disk operations, and gives most of the
# performance benefits of paravirtualization. In the U-Boot case, the guest
# is U-Boot itself, while the virtual environment are normally QEMU targets
# like ARM, RISC-V and x86.
#
# See http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf for
# the VirtIO specification v1.0.

menu "VirtIO Drivers"

config VIRTIO
	bool
	help
	  This option is selected by any driver which implements the virtio
	  transport, such as CONFIG_VIRTIO_MMIO or CONFIG_VIRTIO_PCI.

config VIRTIO_MMIO
	bool "Platform bus driver for memory mapped virtio devices"
	select VIRTIO
	help
	  This driver provides support for memory mapped virtio
	  platform device driver.

config VIRTIO_PCI
	bool "PCI driver for virtio devices"
	depends on PCI
	select VIRTIO
	help
	  This driver provides support for virtio based paravirtual device
	  drivers over PCI.

config VIRTIO_PCI_LEGACY
	bool "PCI driver for legacy virtio devices"
	depends on PCI
	select VIRTIO
	default VIRTIO_PCI
	help
	  This driver provides support for legacy virtio based paravirtual
	  device drivers over PCI.

config VIRTIO_SANDBOX
	bool "Sandbox driver for virtio devices"
	depends on SANDBOX
	select VIRTIO
	help
	  This driver provides support for Sandbox implementation of virtio
	  transport driver which is used for testing purpose only.

config VIRTIO_SANDBOX_EMUL
	bool "Sandbox MMIO emulator for virtio devices"
	depends on SANDBOX
	select VIRTIO
	help
	  This driver provides an MMIO interface to an emulation of a block
	  device. It is used for testing purpose only.

config VIRTIO_NET
	bool "virtio net driver"
	depends on VIRTIO && NETDEVICES
	help
	  This is the virtual net driver for virtio. It can be used with
	  QEMU based targets.

config VIRTIO_BLK
	bool "virtio block driver"
	depends on VIRTIO
	select BLK
	help
	  This is the virtual block driver for virtio. It can be used with
	  QEMU based targets.

config VIRTIO_RNG
	bool "virtio rng driver"
	depends on DM_RNG
	depends on VIRTIO
	default y
	help
	  This is the virtual random number generator driver. It can be used
	  with QEMU based targets.

config VIRTIO_FS
	bool "virtio filesystem driver"
	depends on VIRTIO && FS
	default y
	help
	  Provides support for virtio-fs which provides access to host files
	  within the guest OS. This needs a user-space helper (virtiofsd) when
	  running QEMU - see https://virtio-fs.gitlab.io/ for details.

	  A specification for the protocol is available at
	  https://docs.oasis-open.org/virtio/virtio/v1.3/virtio-v1.3.html

config VIRTIO_SCSI
	bool "SCSI driver for virtio devices"
	depends on SCSI
	select VIRTIO
	default y
	help
	  This driver provides support for virtio-based paravirtual SCSI. It
	  allows access to storage devices using the

	  A specification for the protocol is available at
	  https://docs.oasis-open.org/virtio/virtio/v1.3/virtio-v1.3.html

endmenu