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 PCI
35	select VIRTIO
36	help
37	  This driver provides support for virtio based paravirtual device
38	  drivers over PCI.
39
40config VIRTIO_PCI_LEGACY
41	bool "PCI driver for legacy virtio devices"
42	depends on PCI
43	select VIRTIO
44	default VIRTIO_PCI
45	help
46	  This driver provides support for legacy virtio based paravirtual
47	  device drivers over PCI.
48
49config VIRTIO_SANDBOX
50	bool "Sandbox driver for virtio devices"
51	depends on SANDBOX
52	select VIRTIO
53	help
54	  This driver provides support for Sandbox implementation of virtio
55	  transport driver which is used for testing purpose only.
56
57config VIRTIO_NET
58	bool "virtio net driver"
59	depends on VIRTIO
60	help
61	  This is the virtual net driver for virtio. It can be used with
62	  QEMU based targets.
63
64config VIRTIO_BLK
65	bool "virtio block driver"
66	depends on VIRTIO
67	help
68	  This is the virtual block driver for virtio. It can be used with
69	  QEMU based targets.
70
71config VIRTIO_RNG
72	bool "virtio rng driver"
73	depends on DM_RNG
74	depends on VIRTIO
75	default y
76	help
77	  This is the virtual random number generator driver. It can be used
78	  with QEMU based targets.
79endmenu
80