/openbmc/qemu/hw/virtio/ |
H A D | meson.build | 2 system_virtio_ss.add(files('virtio-bus.c')) 3 system_virtio_ss.add(when: 'CONFIG_VIRTIO_PCI', if_true: files('virtio-pci.c')) 4 system_virtio_ss.add(when: 'CONFIG_VIRTIO_MMIO', if_true: files('virtio-mmio.c')) 5 system_virtio_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('virtio-crypto.c')) 6 system_virtio_ss.add(when: 'CONFIG_VHOST_VSOCK_COMMON', if_true: files('vhost-vsock-common.c')) 7 system_virtio_ss.add(when: 'CONFIG_VIRTIO_IOMMU', if_true: files('virtio-iommu.c')) 8 system_virtio_ss.add(when: 'CONFIG_VHOST_VDPA_DEV', if_true: files('vdpa-dev.c')) 11 specific_virtio_ss.add(files('virtio.c')) 12 specific_virtio_ss.add(files('virtio-config-io.c', 'virtio-qmp.c')) 16 specific_virtio_ss.add(files('vhost-backend.c', 'vhost-iova-tree.c')) [all …]
|
H A D | virtio-balloon-pci.c | 2 * Virtio balloon PCI Bindings 11 * Contributions after 2012-01-13 are licensed under the terms of the 17 #include "hw/virtio/virtio-pci.h" 18 #include "hw/qdev-properties.h" 19 #include "hw/virtio/virtio-balloon.h" 27 * virtio-balloon-pci: This extends VirtioPCIProxy. 29 #define TYPE_VIRTIO_BALLOON_PCI "virtio-balloon-pci-base" 41 DeviceState *vdev = DEVICE(&dev->vdev); in virtio_balloon_pci_realize() 43 vpci_dev->class_code = PCI_CLASS_OTHERS; in virtio_balloon_pci_realize() 44 qdev_realize(vdev, BUS(&vpci_dev->bus), errp); in virtio_balloon_pci_realize() [all …]
|
H A D | virtio-rng-pci.c | 2 * Virtio rng PCI Bindings 9 * top-level directory. 14 #include "hw/virtio/virtio-pci.h" 15 #include "hw/virtio/virtio-rng.h" 16 #include "hw/qdev-properties.h" 24 * virtio-rng-pci: This extends VirtioPCIProxy. 26 #define TYPE_VIRTIO_RNG_PCI "virtio-rng-pci-base" 46 DeviceState *vdev = DEVICE(&vrng->vdev); in virtio_rng_pci_realize() 48 if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) { in virtio_rng_pci_realize() 49 vpci_dev->nvectors = 2; in virtio_rng_pci_realize() [all …]
|
H A D | virtio-scsi-pci.c | 2 * Virtio scsi PCI Bindings 13 * top-level directory. 18 #include "hw/qdev-properties.h" 19 #include "hw/virtio/virtio-scsi.h" 21 #include "hw/virtio/virtio-pci.h" 27 * virtio-scsi-pci: This extends VirtioPCIProxy. 29 #define TYPE_VIRTIO_SCSI_PCI "virtio-scsi-pci-base" 49 DeviceState *vdev = DEVICE(&dev->vdev); in virtio_scsi_pci_realize() 51 VirtIOSCSIConf *conf = &dev->vdev.parent_obj.conf; in virtio_scsi_pci_realize() 54 if (conf->num_queues == VIRTIO_SCSI_AUTO_NUM_QUEUES) { in virtio_scsi_pci_realize() [all …]
|
H A D | virtio-net-pci.c | 2 * Virtio net PCI Bindings 12 * the COPYING file in the top-level directory. 14 * Contributions after 2012-01-13 are licensed under the terms of the 20 #include "hw/qdev-properties.h" 21 #include "hw/virtio/virtio-net.h" 22 #include "hw/virtio/virtio-pci.h" 30 * virtio-net-pci: This extends VirtioPCIProxy. 32 #define TYPE_VIRTIO_NET_PCI "virtio-net-pci-base" 53 DeviceState *vdev = DEVICE(&dev->vdev); in virtio_net_pci_realize() 56 if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) { in virtio_net_pci_realize() [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 19 module that selects this module must depend on PCI. 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 28 module must depend on PCI. 31 bool "Virtio drivers" [all …]
|
H A D | virtio_pci_legacy_dev.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 6 #include <linux/pci.h> 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() [all …]
|
/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 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 ------ 22 VirtIO can use various different buses, aka transports as described in the [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: 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` 77 vm.add_args('-device', '%s,id=devfortest' % (devtype)) [all …]
|
H A D | test_ppc64_tuxrun.py | 12 # SPDX-License-Identifier: GPL-2.0-or-later 26 self.extradev='spapr-vscsi' 29 self.vm.add_args('-netdev', 'user,id=vnet,hostfwd=:127.0.0.1:0-:22', 30 '-device', 'virtio-net,netdev=vnet') 31 self.vm.add_args('-netdev', '{"type":"user","id":"hostnet0"}', 32 '-device', '{"driver":"virtio-net-pci","netdev":' 34 '"bus":"pci.0","addr":"0x9"}') 35 self.vm.add_args('-device', '{"driver":"qemu-xhci","p2":15,"p3":15,' 36 '"id":"usb","bus":"pci.0","addr":"0x2"}') 37 self.vm.add_args('-device', '{"driver":"virtio-scsi-pci","id":"scsi0"' [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-iommu.c | 2 * libqos driver virtio-iommu-pci framework 10 * option) any later version. See the COPYING file in the top-level directory. 18 #include "virtio-iommu.h" 19 #include "hw/virtio/virtio-iommu.h" 23 /* virtio-iommu-device */ 27 if (!g_strcmp0(interface, "virtio-iommu")) { in qvirtio_iommu_get_driver() 30 if (!g_strcmp0(interface, "virtio")) { in qvirtio_iommu_get_driver() 31 return v_iommu->vdev; in qvirtio_iommu_get_driver() 34 fprintf(stderr, "%s not present in virtio-iommu-device\n", interface); in qvirtio_iommu_get_driver() 40 qvirtqueue_cleanup(interface->vdev->bus, interface->vq, alloc); in virtio_iommu_cleanup() [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 …]
|
H A D | virtio-blk.c | 22 #include "standard-headers/linux/virtio_blk.h" 24 #include "virtio-blk.h" 29 /* virtio-blk-device */ 33 if (!g_strcmp0(interface, "virtio-blk")) { in qvirtio_blk_get_driver() 36 if (!g_strcmp0(interface, "virtio")) { in qvirtio_blk_get_driver() 37 return v_blk->vdev; in qvirtio_blk_get_driver() 40 fprintf(stderr, "%s not present in virtio-blk-device\n", interface); in qvirtio_blk_get_driver() 48 return qvirtio_blk_get_driver(&v_blk->blk, interface); in qvirtio_blk_device_get_driver() 56 QVirtioBlk *interface = &virtio_blk->blk; in virtio_blk_device_create() 58 interface->vdev = virtio_dev; in virtio_blk_device_create() [all …]
|
H A D | meson.build | 7 'pci.c', 9 'libqos-malloc.c', 11 'sdhci-cmd.c', 14 'malloc-spapr.c', 15 'libqos-spapr.c', 17 'pci-spapr.c', 20 'pci-pc.c', 21 'malloc-pc.c', 22 'libqos-pc.c', 31 'i2c-imx.c', [all …]
|
H A D | virtio-net.c | 23 #include "virtio-net.h" 24 #include "hw/virtio/virtio-net.h" 33 for (i = 0; i < interface->n_queues; i++) { in virtio_net_cleanup() 34 qvirtqueue_cleanup(interface->vdev->bus, interface->queues[i], alloc); in virtio_net_cleanup() 36 g_free(interface->queues); in virtio_net_cleanup() 41 QVirtioDevice *vdev = interface->vdev; in virtio_net_setup() 52 interface->n_queues = qvirtio_config_readw(vdev, 8) * 2; in virtio_net_setup() 54 interface->n_queues = 2; in virtio_net_setup() 56 interface->n_queues++; /* Account for the ctrl queue */ in virtio_net_setup() 58 interface->queues = g_new(QVirtQueue *, interface->n_queues); in virtio_net_setup() [all …]
|
H A D | virtio-9p.c | 27 #include "standard-headers/linux/virtio_ids.h" 28 #include "virtio-9p.h" 49 char *template = concat_path(pwd, "qtest-9p-local-XXXXXX"); in virtio_9p_create_local_test_dir() 67 g_autofree char *cmd = g_strdup_printf("rm -fr '%s'\n", local_test_path); in virtio_9p_remove_local_test_dir() 84 qvirtqueue_cleanup(interface->vdev->bus, interface->vq, alloc); in virtio_9p_cleanup() 91 features = qvirtio_get_features(interface->vdev); in virtio_9p_setup() 93 qvirtio_set_features(interface->vdev, features); in virtio_9p_setup() 95 interface->vq = qvirtqueue_setup(interface->vdev, alloc, 0); in virtio_9p_setup() 96 qvirtio_set_driver_ok(interface->vdev); in virtio_9p_setup() 99 /* virtio-9p-device */ [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 14 Types") of the virtio spec (`[1]`_). Originally developed as a standard 20 devices provided by the hypervisor, which exposes them as virtio devices 21 via standard mechanisms such as PCI. 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 30 orthogonal to the device itself. The virtio spec defines these transport [all …]
|
/openbmc/qemu/tests/qtest/ |
H A D | device-plug-test.c | 10 * See the COPYING file in the top-level directory. 71 if (!qtest_has_device("virtio-mouse-pci")) { in test_pci_unplug_request() 72 g_test_skip("Device virtio-mouse-pci not available"); in test_pci_unplug_request() 77 machine_addition = "-machine pc"; in test_pci_unplug_request() 80 qtest = qtest_initf("%s -device virtio-mouse-pci,id=dev0", in test_pci_unplug_request() 92 if (!qtest_has_device("virtio-mouse-pci")) { in test_q35_pci_unplug_request() 93 g_test_skip("Device virtio-mouse-pci not available"); in test_q35_pci_unplug_request() 97 qtest = qtest_initf("-machine q35 " in test_q35_pci_unplug_request() 98 "-device pcie-root-port,id=p1 " in test_q35_pci_unplug_request() 99 "-device pcie-pci-bridge,bus=p1,id=b1 " in test_q35_pci_unplug_request() [all …]
|
/openbmc/qemu/docs/specs/ |
H A D | pci-ids.rst | 2 PCI IDs for QEMU 12 -------------- 14 The 1000 -> 10ff device ID range is used as follows for virtio-pci devices. 15 Note that this allocation is separate from the virtio device IDs, which are 16 maintained as part of the virtio specification. 36 ID range for modern virtio devices. The PCI device 37 ID is calculated from the virtio device ID by adding the 38 0x1040 offset. The virtio IDs are defined in the virtio 40 defines for all virtio IDs (``linux/virtio_ids.h``); QEMU has a 41 copy in ``include/standard-headers/``. [all …]
|
/openbmc/qemu/docs/devel/ |
H A D | virtio-backends.rst | 5 Writing VirtIO backends for QEMU 10 implementing VirtIO devices. For VirtIO the frontend is the driver 12 do to handle the emulation of the VirtIO device. This can be done 15 (vhost-user). 17 VirtIO Transports 18 ----------------- 20 VirtIO supports a number of different transports. While the details of 23 transport they use. For example -device virtio-foo represents the foo 24 device using mmio and -device virtio-foo-pci is the same class of 25 device using the PCI transport. [all …]
|
/openbmc/qemu/hw/display/ |
H A D | virtio-gpu-pci-gl.c | 2 * Virtio video device 10 * See the COPYING file in the top-level directory. 17 #include "hw/pci/pci.h" 18 #include "hw/qdev-properties.h" 19 #include "hw/virtio/virtio.h" 20 #include "hw/virtio/virtio-bus.h" 21 #include "hw/virtio/virtio-gpu-pci.h" 24 #define TYPE_VIRTIO_GPU_GL_PCI "virtio-gpu-gl-pci" 38 virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev), in virtio_gpu_gl_initfn() 40 VIRTIO_GPU_PCI_BASE(obj)->vgpu = VIRTIO_GPU_BASE(&dev->vdev); in virtio_gpu_gl_initfn() [all …]
|
H A D | meson.build | 3 system_ss.add(when: 'CONFIG_DDC', if_true: files('i2c-ddc.c')) 4 system_ss.add(when: 'CONFIG_EDID', if_true: files('edid-generate.c', 'edid-region.c')) 6 system_ss.add(when: 'CONFIG_FW_CFG_DMA', if_true: files('ramfb.c'), if_false: files('ramfb-stubs.c'… 7 system_ss.add(when: 'CONFIG_FW_CFG_DMA', if_true: files('ramfb-standalone.c')) 19 system_ss.add(when: 'CONFIG_VGA_PCI', if_true: files('vga-pci.c')) 20 system_ss.add(when: 'CONFIG_VGA_ISA', if_true: files('vga-isa.c')) 21 system_ss.add(when: 'CONFIG_VGA_MMIO', if_true: files('vga-mmio.c')) 23 system_ss.add(when: 'CONFIG_BOCHS_DISPLAY', if_true: files('bochs-display.c')) 33 system_ss.add(when: 'CONFIG_NEXTCUBE', if_true: files('next-fb.c')) 36 system_ss.add(when: 'CONFIG_VIRTIO', if_true: files('virtio-dmabuf.c')) [all …]
|