1# SPDX-License-Identifier: GPL-2.0+
2#
3# Copyright (C) 2018, Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
4# Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
5#
6# VirtIO is a virtualization standard for network and disk device drivers
7# where just the guest's device driver "knows" it is running in a virtual
8# environment, and cooperates with the hypervisor. This enables guests to
9# get high performance network and disk operations, and gives most of the
10# performance benefits of paravirtualization. In the U-Boot case, the guest
11# is U-Boot itself, while the virtual environment are normally QEMU targets
12# like ARM, RISC-V and x86.
13#
14# See http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf for
15# the VirtIO specification v1.0.
16
17menu "VirtIO Drivers"
18
19config VIRTIO
20	bool
21	help
22	  This option is selected by any driver which implements the virtio
23	  transport, such as CONFIG_VIRTIO_MMIO or CONFIG_VIRTIO_PCI.
24
25config VIRTIO_MMIO
26	bool "Platform bus driver for memory mapped virtio devices"
27	select VIRTIO
28	help
29	  This driver provides support for memory mapped virtio
30	  platform device driver.
31
32config VIRTIO_PCI
33	bool "PCI driver for virtio devices"
34	depends on DM_PCI
35	select VIRTIO
36	help
37	  This driver provides support for virtio based paravirtual device
38	  drivers over PCI.
39
40config VIRTIO_SANDBOX
41	bool "Sandbox driver for virtio devices"
42	depends on SANDBOX
43	select VIRTIO
44	help
45	  This driver provides support for Sandbox implementation of virtio
46	  transport driver which is used for testing purpose only.
47
48config VIRTIO_NET
49	bool "virtio net driver"
50	depends on VIRTIO
51	help
52	  This is the virtual net driver for virtio. It can be used with
53	  QEMU based targets.
54
55config VIRTIO_BLK
56	bool "virtio block driver"
57	depends on VIRTIO
58	depends on BLK
59	help
60	  This is the virtual block driver for virtio. It can be used with
61	  QEMU based targets.
62
63config VIRTIO_RNG
64	bool "virtio rng driver"
65	depends on DM_RNG
66	depends on VIRTIO
67	default y
68	help
69	  This is the virtual random number generator driver. It can be used
70	  with QEMU based targets.
71endmenu
72