/openbmc/u-boot/doc/ |
H A D | README.virtio | 1 # SPDX-License-Identifier: GPL-2.0+ 5 VirtIO Support 8 This document describes the information about U-Boot support for VirtIO [1] 11 What's VirtIO? 12 -------------- 13 VirtIO is a virtualization standard for network and disk device drivers where 14 just the guest's device driver "knows" it is running in a virtual environment, 17 paravirtualization. In the U-Boot case, the guest is U-Boot itself, while the 18 virtual environment are normally QEMU [2] targets like ARM, RISC-V and x86. 21 ------ [all …]
|
/openbmc/linux/drivers/virtio/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 5 config VIRTIO config 9 This option is selected by any driver which implements the virtio 16 Modern PCI device implementation. This module implements the 18 PCI device with possible vendor specific extensions. Any 24 Legacy PCI device (Virtio PCI Card 0.9.x Draft and older device) 27 which are based on legacy PCI device. Any module that selects this 31 bool "Virtio drivers" 37 bool "Harden virtio notification" 40 Enable this to harden the device notifications and suppress [all …]
|
H A D | virtio_pci_legacy_dev.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 10 * vp_legacy_probe: probe the legacy virtio pci device, note that the 11 * caller is required to enable PCI device before calling this function. 12 * @ldev: the legacy virtio-pci device 18 struct pci_dev *pci_dev = ldev->pci_dev; in vp_legacy_probe() 22 if (pci_dev->device < 0x1000 || pci_dev->device > 0x103f) in vp_legacy_probe() 23 return -ENODEV; in vp_legacy_probe() 25 if (pci_dev->revision != VIRTIO_PCI_ABI_VERSION) in vp_legacy_probe() 26 return -ENODEV; in vp_legacy_probe() 28 rc = dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(64)); in vp_legacy_probe() [all …]
|
/openbmc/linux/Documentation/driver-api/virtio/ |
H A D | virtio.rst | 1 .. SPDX-License-Identifier: GPL-2.0 6 Virtio on Linux 12 Virtio is an open standard that defines a protocol for communication 13 between drivers and devices of different types, see Chapter 5 ("Device 14 Types") of the virtio spec (`[1]`_). Originally developed as a standard 16 to interface any compliant device (real or emulated) with a driver. 20 devices provided by the hypervisor, which exposes them as virtio devices 24 Device - Driver communication: virtqueues 27 Although the virtio devices are really an abstraction layer in the 29 using a specific transport method -- PCI, MMIO or CCW -- that is [all …]
|
H A D | writing_virtio_drivers.rst | 1 .. SPDX-License-Identifier: GPL-2.0 6 Writing Virtio Drivers 13 need to hack a new virtio driver or understand the essentials of the 14 existing ones. See :ref:`Virtio on Linux <virtio>` for a general 15 overview of virtio. 21 As a bare minimum, a virtio driver needs to register in the virtio bus 22 and configure the virtqueues for the device according to its spec, the 24 virtqueue definitions in the device. A basic driver skeleton could look 27 #include <linux/virtio.h> 32 /* device private data (one per device) */ [all …]
|
/openbmc/qemu/tests/qtest/fuzz/ |
H A D | generic_fuzz_configs.h | 2 * Generic Virtual-Device Fuzzing Target Configs 10 * See the COPYING file in the top-level directory. 23 g_autofree char *tmpdir = g_dir_make_tmp("qemu-fuzz.XXXXXX", NULL); in generic_fuzzer_virtio_9p_args() 26 return g_strdup_printf("-machine q35 -nodefaults " in generic_fuzzer_virtio_9p_args() 27 "-device virtio-9p,fsdev=hshare,mount_tag=hshare " in generic_fuzzer_virtio_9p_args() 28 "-fsdev local,id=hshare,path=%s,security_model=mapped-xattr," in generic_fuzzer_virtio_9p_args() 34 .name = "virtio-net-pci-slirp", 35 .args = "-M q35 -nodefaults " 36 "-device virtio-net,netdev=net0 -netdev user,id=net0", 37 .objects = "virtio*", [all …]
|
/openbmc/qemu/docs/system/devices/ |
H A D | virtio-pmem.rst | 3 virtio pmem 6 This document explains the setup and usage of the virtio pmem device. 7 The virtio pmem device is a paravirtualized persistent memory device 8 on regular (i.e non-NVDIMM) storage. 11 ------- 13 Virtio pmem allows to bypass the guest page cache and directly use 17 How does virtio-pmem compare to the nvdimm emulation? 18 ----------------------------------------------------- 20 NVDIMM emulation on regular (i.e. non-NVDIMM) host storage does not 21 persist the guest writes as there are no defined semantics in the device [all …]
|
H A D | virtio-gpu.rst | 2 SPDX-License-Identifier: GPL-2.0-or-later 4 virtio-gpu 7 This document explains the setup and usage of the virtio-gpu device. 8 The virtio-gpu device paravirtualizes the GPU and display controller. 11 -------------------- 13 virtio-gpu requires a guest Linux kernel built with the 16 QEMU virtio-gpu variants 17 ------------------------ 19 QEMU virtio-gpu device variants come in the following form: 21 * ``virtio-vga[-BACKEND]`` [all …]
|
H A D | virtio-snd.rst | 1 virtio sound 4 This document explains the setup and usage of the Virtio sound device. 5 The Virtio sound device is a paravirtualized sound card device. 8 -------------------- 10 Virtio sound requires a guest Linux kernel built with the 14 ----------- 16 Virtio sound implements capture and playback from inside a guest using the 19 Device properties 20 ----------------- 22 The Virtio sound device can be configured with the following properties: [all …]
|
/openbmc/linux/drivers/crypto/virtio/ |
H A D | virtio_crypto_mgr.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* Management for virtio crypto devices (refer to adf_dev_mgr.c) 24 * virtcrypto_devmgr_add_dev() - Add vcrypto_dev to the acceleration 26 * @vcrypto_dev: Pointer to virtio crypto device. 28 * Function adds virtio crypto device to the global list. 29 * To be used by virtio crypto device specific drivers. 42 return -EFAULT; in virtcrypto_devmgr_add_dev() 51 return -EEXIST; in virtcrypto_devmgr_add_dev() 54 atomic_set(&vcrypto_dev->ref_count, 0); in virtcrypto_devmgr_add_dev() 55 list_add_tail(&vcrypto_dev->list, &virtio_crypto_table); in virtcrypto_devmgr_add_dev() [all …]
|
/openbmc/qemu/tests/qtest/ |
H A D | virtio-ccw-test.c | 2 * QTest testcase for VirtIO CCW 8 * See the COPYING file in the top-level directory. 11 /* Until we have a full libqos implementation of virtio-ccw (which requires 17 #include "libqtest-single.h" 18 #include "libqos/virtio.h" 22 global_qtest = qtest_initf("-device virtio-serial-ccw,id=vser0 " in virtconsole_nop() 23 "-device virtconsole,bus=vser0.0"); in virtconsole_nop() 29 global_qtest = qtest_initf("-device virtio-serial-ccw,id=vser0 " in virtserialport_nop() 30 "-device virtserialport,bus=vser0.0"); in virtserialport_nop() 36 global_qtest = qtest_initf("-device virtio-serial-ccw"); in virtio_serial_nop() [all …]
|
H A D | drive_del-test.c | 4 * Copyright (C) 2013-2014 Red Hat Inc. 10 * See the COPYING.LIB file in the top-level directory. 15 #include "libqos/virtio.h" 34 QDict *entry_dict = qobject_to(QDict, entry->value); in look_for_drive0() 46 * This covers the possible absence of a device due to QEMU build 51 gchar *device = g_strdup_printf("%s-%s", dev, qvirtio_get_dev_type()); in has_device_builtin() local 52 bool rc = qtest_has_device(device); in has_device_builtin() 54 g_free(device); in has_device_builtin() 60 return look_for_drive0(qts, "query-block", "device"); in has_drive() 65 return look_for_drive0(qts, "query-named-block-nodes", "node-name"); in has_blockdev() [all …]
|
H A D | cdrom-test.c | 2 * Various tests for emulated CD-ROM drives. 10 * or later. See the COPYING file in the top-level directory. 15 #include "boot-sector.h" 18 static char isoimage[] = "cdrom-boot-iso-XXXXXX"; 23 gint exit_status = -1; in exec_xorrisofs() 30 return -ENOENT; in exec_xorrisofs() 42 char srcdir[] = "cdrom-test-dir-XXXXXX"; in prepare_image() 44 int ifh, ret = -1; in prepare_image() 46 "xorrisofs", "-quiet", "-l", "-no-emul-boot", in prepare_image() 47 "-b", NULL, "-o", isoimagepath, srcdir, NULL in prepare_image() [all …]
|
/openbmc/qemu/tests/qtest/libqos/ |
H A D | virtio-rng.c | 23 #include "virtio-rng.h" 25 /* virtio-rng-device */ 29 if (!g_strcmp0(interface, "virtio-rng")) { in qvirtio_rng_get_driver() 32 if (!g_strcmp0(interface, "virtio")) { in qvirtio_rng_get_driver() 33 return v_rng->vdev; in qvirtio_rng_get_driver() 36 fprintf(stderr, "%s not present in virtio-rng-device\n", interface); in qvirtio_rng_get_driver() 44 return qvirtio_rng_get_driver(&v_rng->rng, interface); in qvirtio_rng_device_get_driver() 52 QVirtioRng *interface = &virtio_rdevice->rng; in virtio_rng_device_create() 54 interface->vdev = virtio_dev; in virtio_rng_device_create() 56 virtio_rdevice->obj.get_driver = qvirtio_rng_device_get_driver; in virtio_rng_device_create() [all …]
|
H A D | virtio-balloon.c | 23 #include "virtio-balloon.h" 25 /* virtio-balloon-device */ 29 if (!g_strcmp0(interface, "virtio-balloon")) { in qvirtio_balloon_get_driver() 32 if (!g_strcmp0(interface, "virtio")) { in qvirtio_balloon_get_driver() 33 return v_balloon->vdev; in qvirtio_balloon_get_driver() 36 fprintf(stderr, "%s not present in virtio-balloon-device\n", interface); in qvirtio_balloon_get_driver() 44 return qvirtio_balloon_get_driver(&v_balloon->balloon, interface); in qvirtio_balloon_device_get_driver() 52 QVirtioBalloon *interface = &virtio_bdevice->balloon; in virtio_balloon_device_create() 54 interface->vdev = virtio_dev; in virtio_balloon_device_create() 56 virtio_bdevice->obj.get_driver = qvirtio_balloon_device_get_driver; in virtio_balloon_device_create() [all …]
|
H A D | virtio-serial.c | 23 #include "virtio-serial.h" 28 if (!g_strcmp0(interface, "virtio-serial")) { in qvirtio_serial_get_driver() 31 if (!g_strcmp0(interface, "virtio")) { in qvirtio_serial_get_driver() 32 return v_serial->vdev; in qvirtio_serial_get_driver() 35 fprintf(stderr, "%s not present in virtio-serial-device\n", interface); in qvirtio_serial_get_driver() 43 return qvirtio_serial_get_driver(&v_serial->serial, interface); in qvirtio_serial_device_get_driver() 51 QVirtioSerial *interface = &virtio_device->serial; in virtio_serial_device_create() 53 interface->vdev = virtio_dev; in virtio_serial_device_create() 55 virtio_device->obj.get_driver = qvirtio_serial_device_get_driver; in virtio_serial_device_create() 57 return &virtio_device->obj; in virtio_serial_device_create() [all …]
|
H A D | virtio-scsi.c | 22 #include "standard-headers/linux/virtio_ids.h" 24 #include "virtio-scsi.h" 26 /* virtio-scsi-device */ 30 if (!g_strcmp0(interface, "virtio-scsi")) { in qvirtio_scsi_get_driver() 33 if (!g_strcmp0(interface, "virtio")) { in qvirtio_scsi_get_driver() 34 return v_scsi->vdev; in qvirtio_scsi_get_driver() 37 fprintf(stderr, "%s not present in virtio-scsi-device\n", interface); in qvirtio_scsi_get_driver() 45 return qvirtio_scsi_get_driver(&v_scsi->scsi, interface); in qvirtio_scsi_device_get_driver() 53 QVirtioSCSI *interface = &virtio_bdevice->scsi; in virtio_scsi_device_create() 55 interface->vdev = virtio_dev; in virtio_scsi_device_create() [all …]
|
/openbmc/qemu/qapi/ |
H A D | virtio.json | 1 # -*- Mode: Python -*- 6 # = Virtio devices 25 # @x-query-virtio: 37 # .. qmp-example:: 39 # -> { "execute": "x-query-virtio" } 40 # <- { "return": [ 42 # "name": "virtio-input", 43 # "path": "/machine/peripheral-anon/device[4]/virtio-backend" 46 # "name": "virtio-crypto", 47 # "path": "/machine/peripheral/crypto0/virtio-backend" [all …]
|
/openbmc/u-boot/include/ |
H A D | virtio.h | 1 /* SPDX-License-Identifier: GPL-2.0+ */ 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 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. 14 * See http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf for 15 * the VirtIO specification v1.0. 23 #define VIRTIO_ID_NET 1 /* virtio net */ 24 #define VIRTIO_ID_BLOCK 2 /* virtio block */ [all …]
|
/openbmc/qemu/tests/functional/ |
H A D | test_virtio_version.py | 3 Check compatibility of virtio device types 11 # later. See the COPYING file in the top-level directory. 18 # Virtio Device IDs: 36 # Device IDs for legacy/transitional devices: 53 vm.cmd('qom-list-types', implements=implements)] 56 interfaces = ('pci-express-device', 'conventional-pci-device') 61 Check if virtio-version-specific device types result in the 62 same device tree created by `disable-modern` and 63 `disable-legacy`. 71 Run QEMU with `-device DEVTYPE`, return device info from `query-pci` [all …]
|
/openbmc/u-boot/drivers/virtio/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0+ 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 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. 14 # See http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf for 15 # the VirtIO specification v1.0. 17 menu "VirtIO Drivers" 19 config VIRTIO config [all …]
|
/openbmc/qemu/system/ |
H A D | qdev-monitor.c | 2 * Dynamic device configuration and creation. 28 #include "qapi/qapi-commands-qdev.h" 33 #include "qapi/qobject-input-visitor.h" 34 #include "qemu/config-file.h" 35 #include "qemu/error-report.h" 38 #include "qemu/qemu-print.h" 40 #include "sysemu/block-backend.h" 43 #include "hw/qdev-properties.h" 58 /* default virtio transport per architecture */ 76 { "AC97", "ac97" }, /* -soundhw name */ [all …]
|
/openbmc/qemu/docs/system/ |
H A D | virtio-net-failover.rst | 2 QEMU virtio-net standby (net_failover) 5 This document explains the setup and usage of virtio-net standby feature which 8 The general idea is that we have a pair of devices, a (vfio-)pci and a 9 virtio-net device. Before migration the vfio device is unplugged and data flows 10 through the virtio-net device, on the target side another vfio-pci device is 11 plugged in to take over the data-path. In the guest the net_failover kernel 14 The two devices are called primary and standby device. The fast hardware based 15 networking device is called the primary device and the virtio-net device is the 16 standby device. 19 ------------ [all …]
|
/openbmc/qemu/docs/devel/migration/ |
H A D | virtio.rst | 2 Virtio device migration 8 the COPYING file in the top-level directory. 10 Saving and restoring the state of virtio devices is a bit of a twisty maze, 13 - state is distributed between several parts: 15 - virtio core, for common fields like features, number of queues, ... 17 - virtio transport (pci, ccw, ...), for the different proxy devices and 20 - virtio device (net, blk, ...), for the different device types and their 23 - most fields are saved via the stream interface; subsequently, subsections 24 have been added to make cross-version migration possible 34 virtio core virtio transport virtio device [all …]
|
/openbmc/qemu/docs/system/s390x/ |
H A D | css.rst | 5 functionless) channel paths, and channel devices (virtio-ccw, 3270, and 6 devices passed via vfio-ccw). It supports multiple subchannel sets (MSS) and 7 multiple channel subsystems extended (MCSS-E). 10 in the form ``<cssid>.<ssid>.<device number>``. 14 enable MCSS-E. Note that devices with a different cssid will not be visible 15 if the guest OS does not enable MCSS-E (which is true for all supported guest 18 Supported values for the subchannel set id (``<ssid>``) range from ``0-3``. 20 does not enable MSS (any Linux version that supports virtio also enables MSS). 21 Any device may be put into any subchannel set, there is no restriction by 22 device type. [all …]
|