/qemu/docs/ |
H A D | pcie.txt | 1 PCI EXPRESS GUIDELINES 6 The doc proposes best practices on how to use PCI Express (PCIe) / PCI 7 devices in PCI Express based machines and explains the reasoning behind 17 (2) A comparison between PCI and PCI Express technologies. 26 and allows any PCI/PCI Express device to be plugged into any 27 PCI/PCI Express slot. 28 Plugging a PCI device into a PCI Express slot might not always work and 30 Plugging a PCI Express device into a PCI slot will hide the Extended 33 The recommendation is to separate the PCI Express and PCI hierarchies. 34 PCI Express devices should be plugged only into PCI Express Root Ports and [all …]
|
H A D | pcie_pci_bridge.txt | 1 Generic PCI Express to PCI Bridge 6 PCIE-to-PCI bridge is a new method for legacy PCI 9 Previously Intel DMI-to-PCI bridge was used for this purpose. 12 PCIE-to-PCI bridge should now be used for any legacy PCI device usage 13 with PCI Express machine. 15 This generic PCIE-PCI bridge is a cross-platform device, 17 see 'PCIE-PCI bridge hot-plug' section), 21 Hot-plug of legacy PCI devices into the bridge 25 PCIE-PCI bridge hot-plug 27 Guest OSes require extra efforts to enable PCIE-PCI bridge hot-plug. [all …]
|
H A D | pci_expander_bridge.txt | 1 PCI EXPANDER BRIDGE (PXB) 6 PXB is a "light-weight" host bridge in the same PCI domain 8 the main host bridge to support multiple PCI root buses. 10 on bus 0 (pci.0). 12 As opposed to PCI-2-PCI bridge's secondary bus, PXB's bus 26 -device pxb,id=bridge1,bus=pci.0,numa_node=1,bus_nr=4 -netdev user,id=nd -device e1000,bus=bridge1,… 27 -device pxb,id=bridge2,bus=pci.0,numa_node=0,bus_nr=8 -device e1000,bus=bridge2,addr=0x3 28 -device pxb,id=bridge3,bus=pci.0,bus_nr=40 -drive if=none,id=drive0,file=[img] -device virtio-blk-p… 38 Please observe that we specified the bus "pci.0" for the second and third pxb. 46 The host bridge allows to register and query the PXB's PCI root bus in QEMU. [all …]
|
H A D | qemupciserial.inf | 4 ; just an inf file to tell windows which pci id the serial pci card 8 ; Installing the driver: Go to device manager. You should find a "pci 14 ; This file covers all options: pci-serial, pci-serial-2x, pci-serial-4x 29 %QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1, PCI\VEN_1B36&DEV_0002 30 %QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, PCI\VEN_1B36&DEV_0003 31 %QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, PCI\VEN_1B36&DEV_0004 34 %QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1, PCI\VEN_1B36&DEV_0002 35 %QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, PCI\VEN_1B36&DEV_0003 36 %QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, PCI\VEN_1B36&DEV_0004 100 QEMU-PCI_SERIAL_1_PORT="1x QEMU PCI Serial Card" [all …]
|
/qemu/hw/scsi/ |
H A D | esp-pci.c | 27 #include "hw/pci/pci_device.h" 80 static void esp_pci_update_irq(PCIESPState *pci) in esp_pci_update_irq() argument 82 int scsi_level = !!(pci->dma_regs[DMA_STAT] & DMA_STAT_SCSIINT); in esp_pci_update_irq() 83 int dma_level = (pci->dma_regs[DMA_CMD] & DMA_CMD_INTE_D) ? in esp_pci_update_irq() 84 !!(pci->dma_regs[DMA_STAT] & DMA_STAT_DONE) : 0; in esp_pci_update_irq() 87 pci_set_irq(PCI_DEVICE(pci), level); in esp_pci_update_irq() 92 PCIESPState *pci = PCI_ESP(opaque); in esp_irq_handler() local 95 pci->dma_regs[DMA_STAT] |= DMA_STAT_SCSIINT; in esp_irq_handler() 104 if ((pci->dma_regs[DMA_CMD] & DMA_CMD_MASK) == 0x3 && in esp_irq_handler() 105 pci->dma_regs[DMA_WBC] == 0) { in esp_irq_handler() [all …]
|
/qemu/hw/pci-host/ |
H A D | ppc4xx_pci.c | 20 * This file implements emulation of the 32-bit PCI controller found in some 27 #include "hw/pci-host/ppc4xx.h" 31 #include "hw/pci/pci_device.h" 32 #include "hw/pci/pci_host.h" 71 * PCI accesses. 87 * PCI Target Map (PTM) registers specify which PCI addresses are translated to 102 struct PPC4xxPCIState *pci = opaque; in ppc4xx_pci_reg_write4() local 105 * We ignore all target attempts at PCI configuration, effectively in ppc4xx_pci_reg_write4() 106 * assuming a bidirectional 1:1 mapping of PLB and PCI space. in ppc4xx_pci_reg_write4() 110 pci->pmm[0].la = value; in ppc4xx_pci_reg_write4() [all …]
|
H A D | mv64361.c | 15 #include "hw/pci/pci_device.h" 16 #include "hw/pci/pci_host.h" 24 #include "hw/pci-host/mv64361.h" 38 * PCI-facing part of the host bridge, in mv64361_pcibridge_class_init() 86 name = g_strdup_printf("pci%d-io", s->index); in mv64361_pcihost_realize() 89 name = g_strdup_printf("pci%d-mem", s->index); in mv64361_pcihost_realize() 92 name = g_strdup_printf("pci.%d", s->index); in mv64361_pcihost_realize() 136 MV64361PCIState pci[2]; member 215 return PCI_HOST_BRIDGE(&mv->pci[n])->bus; in mv64361_get_pci_bus() 252 p = &s->pci[0]; in set_mem_windows() [all …]
|
H A D | Kconfig | 11 select PCI 15 select PCI 19 select PCI 23 select PCI 28 select PCI 33 select PCI 37 select PCI 41 select PCI 46 select PCI 68 select PCI [all …]
|
H A D | ppce500.c | 2 * QEMU PowerPC E500 embedded processors pci controller emulation 21 #include "hw/pci/pci_device.h" 22 #include "hw/pci/pci_host.h" 24 #include "hw/pci-host/ppce500.h" 129 PPCE500PCIState *pci = opaque; in pci_reg_read4() local 144 value = pci->pob[idx].potar; in pci_reg_read4() 147 value = pci->pob[idx].potear; in pci_reg_read4() 150 value = pci->pob[idx].powbar; in pci_reg_read4() 153 value = pci->pob[idx].powar; in pci_reg_read4() 166 value = pci->pib[idx].pitar; in pci_reg_read4() [all …]
|
H A D | remote.c | 2 * Remote PCI host device 4 * Unlike PCI host devices that model physical hardware, the purpose 5 * of this PCI host is to host multi-process QEMU devices. 7 * Multi-process QEMU extends the PCI host of a QEMU machine into a 8 * remote process. Any PCI device attached to the remote process is 12 * This PCI host is purely a container for PCI devices. It's fake in the 13 * sense that the guest never sees this PCI host and has no way of 15 * PCI device models need when running in a remote process. 26 #include "hw/pci/pci.h" 27 #include "hw/pci/pci_host.h" [all …]
|
/qemu/docs/specs/ |
H A D | pci-ids.rst | 2 PCI IDs for QEMU 14 The 1000 -> 10ff device ID range is used as follows for virtio-pci devices. 36 ID range for modern virtio devices. The PCI device 49 Used as PCI Subsystem ID for existing hardware devices emulated 61 PCI devices (other than virtio): 64 PCI-PCI bridge 66 PCI serial port (16550A) adapter (:doc:`pci-serial`) 68 PCI Dual-port 16550A adapter (:doc:`pci-serial`) 70 PCI Quad-port 16550A adapter (:doc:`pci-serial`) 72 PCI test device (:doc:`pci-testdev`) [all …]
|
H A D | standard-vga.rst | 5 Exists in two variants, for isa and pci. 10 picks isa for -M isapc, otherwise pci 12 pci variant 16 legacy-free pci variant 19 PCI spec 22 Applies to the pci variant only for obvious reasons. 24 PCI ID 27 PCI Region 0 31 PCI Region 1 34 PCI Region 2 [all …]
|
H A D | pci-serial.rst | 2 QEMU PCI serial devices 5 QEMU implements some PCI serial devices which are simple PCI 17 ``pci-serial`` 18 PCI ID: 20 PCI Region 0: 30 ``pci-serial-2x``, ``pci-serial-4x`` 31 PCI ID: 33 PCI Region 0:
|
/qemu/hw/char/ |
H A D | diva-gsp.c | 4 * The Diva PCI boards are Remote Management cards for PA-RISC machines. 22 #include "hw/pci/pci_device.h" 59 PCIDivaSerialState *pci = DO_UPCAST(PCIDivaSerialState, dev, dev); in diva_pci_exit() local 63 for (i = 0; i < pci->ports; i++) { in diva_pci_exit() 64 s = pci->state + i; in diva_pci_exit() 66 memory_region_del_subregion(&pci->membar, &s->io); in diva_pci_exit() 67 g_free(pci->name[i]); in diva_pci_exit() 69 qemu_free_irqs(pci->irqs, pci->ports); in diva_pci_exit() 74 PCIDivaSerialState *pci = opaque; in multi_serial_irq_mux() local 77 pci->level[n] = level; in multi_serial_irq_mux() [all …]
|
H A D | serial-pci-multi.c | 28 /* see docs/specs/pci-serial.rst */ 34 #include "hw/pci/pci_device.h" 53 PCIMultiSerialState *pci = DO_UPCAST(PCIMultiSerialState, dev, dev); in multi_serial_pci_exit() local 57 for (i = 0; i < pci->ports; i++) { in multi_serial_pci_exit() 58 s = pci->state + i; in multi_serial_pci_exit() 60 memory_region_del_subregion(&pci->iobar, &s->io); in multi_serial_pci_exit() 61 g_free(pci->name[i]); in multi_serial_pci_exit() 67 PCIMultiSerialState *pci = opaque; in multi_serial_irq_mux() local 70 pci->level[n] = level; in multi_serial_irq_mux() 71 for (i = 0; i < pci->ports; i++) { in multi_serial_irq_mux() [all …]
|
/qemu/hw/virtio/ |
H A D | meson.build | 4 system_virtio_ss.add(when: 'CONFIG_VIRTIO_PCI', if_true: files('virtio-pci.c')) 31 # PCI Stubs 32 system_virtio_ss.add(when: 'CONFIG_VIRTIO_PCI', if_true: files('vhost-user-device-pci.c')) 34 if_true: files('vhost-user-gpio-pci.c')) 36 if_true: files('vhost-user-i2c-pci.c')) 38 if_true: files('vhost-user-rng-pci.c')) 40 if_true: files('vhost-user-snd-pci.c')) 42 if_true: files('vhost-user-input-pci.c')) 61 …add(when: ['CONFIG_VIRTIO_PCI', 'CONFIG_VHOST_USER_SCMI'], if_true: files('vhost-user-scmi-pci.c')) 64 virtio_pci_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-vsock-pci.c')) [all …]
|
/qemu/tests/functional/ |
H A D | test_virtio_version.py | 54 interfaces = ('pci-express-device', 'conventional-pci-device') 69 Run QEMU with `-device DEVTYPE`, return device info from `query-pci` 79 pcibuses = vm.cmd('query-pci') 120 #TODO: check if plugging on a PCI Express bus will make the 131 self.assertIn('conventional-pci-device', generic_ifaces) 132 self.assertIn('pci-express-device', generic_ifaces) 134 self.assertIn('conventional-pci-device', nt_ifaces) 135 self.assertIn('pci-express-device', nt_ifaces) 137 self.assertIn('conventional-pci-device', trans_ifaces) 138 self.assertNotIn('pci-express-device', trans_ifaces) [all …]
|
H A D | test_ppc64_tuxrun.py | 33 '-device', '{"driver":"virtio-net-pci","netdev":' 35 '"bus":"pci.0","addr":"0x9"}') 37 '"id":"usb","bus":"pci.0","addr":"0x2"}') 38 self.vm.add_args('-device', '{"driver":"virtio-scsi-pci","id":"scsi0"' 39 ',"bus":"pci.0","addr":"0x3"}') 40 self.vm.add_args('-device', '{"driver":"virtio-serial-pci","id":' 41 '"virtio-serial0","bus":"pci.0","addr":"0x4"}') 45 self.vm.add_args('-device', '{"driver":"virtio-balloon-pci",' 46 '"id":"balloon0","bus":"pci.0","addr":"0x6"}') 53 '"vgamem_mb":16,"bus":"pci.0","addr":"0x7"}') [all …]
|
/qemu/docs/devel/testing/ |
H A D | qgraph.rst | 167 # src='virtio-net-pci' 169 # src='pci-bus' 170 # |-> dest='virtio-net-pci' type=2 (node=0x55914210d880) 171 # src='pci-bus-pc' 172 # |-> dest='pci-bus' type=1 (node=0x559142103f40) 174 # |-> dest='pci-bus-pc' type=0 (node=0x55914210ac70) 191 'i440FX-pcihost' -> 'pci-bus-pc' -> 'pci-bus' -> 'virtio-net-pci' -> 226 ``pci-bus`` architecture so it ``contains`` a PCI driver, 227 ``pci-bus-pc``. The actual path is 230 pci-bus-pc --produces--> pci-bus``. [all …]
|
/qemu/hw/acpi/ |
H A D | viot.c | 10 #include "hw/pci/pci.h" 11 #include "hw/pci/pci_host.h" 22 build_append_int_noprefix(table_data, 1 /* PCI range */, 1); in build_pci_host_range() 29 /* PCI Segment start */ in build_pci_host_range() 31 /* PCI Segment end */ in build_pci_host_range() 33 /* PCI BDF start */ in build_pci_host_range() 35 /* PCI BDF end */ in build_pci_host_range() 43 /* Build PCI range for a given PCI host bridge */ 82 * Generate a VIOT table with one PCI-based virtio-iommu that manages PCI 100 /* Build the list of PCI ranges that this viommu manages */ in build_viot() [all …]
|
/qemu/ui/ |
H A D | util.c | 20 #include "hw/pci/pci_device.h" 21 #include "hw/pci/pci_bus.h" 26 * Recursively (in reverse order) appends addresses of PCI devices as it moves 27 * up in the PCI hierarchy. 31 static bool append_pci_address(char *buf, size_t buf_size, const PCIDevice *pci) in append_pci_address() argument 33 PCIBus *bus = pci_get_bus(pci); in append_pci_address() 44 PCI_SLOT(pci->devfn), PCI_FUNC(pci->devfn)); in append_pci_address() 57 PCIDevice *pci = (PCIDevice *) object_dynamic_cast(OBJECT(dev), in qemu_console_fill_device_address() local 60 if (pci == NULL) { in qemu_console_fill_device_address() 62 "Not a PCI device."); in qemu_console_fill_device_address() [all …]
|
/qemu/tests/qtest/libqos/ |
H A D | riscv-iommu.c | 2 * libqos driver riscv-iommu-pci framework 15 #include "pci.h" 22 if (!g_strcmp0(interface, "pci-device")) { in riscv_iommu_pci_get_driver() 32 QRISCVIOMMU *pci = (QRISCVIOMMU *)obj; in riscv_iommu_pci_start_hw() local 33 qpci_device_enable(&pci->dev); in riscv_iommu_pci_start_hw() 38 QRISCVIOMMU *pci = (QRISCVIOMMU *)obj; in riscv_iommu_pci_destructor() local 39 qpci_iounmap(&pci->dev, pci->reg_bar); in riscv_iommu_pci_destructor() 71 qos_node_create_driver("riscv-iommu-pci", riscv_iommu_pci_create); in riscv_iommu_pci_register_nodes() 72 qos_node_produces("riscv-iommu-pci", "pci-device"); in riscv_iommu_pci_register_nodes() 73 qos_node_consumes("riscv-iommu-pci", "pci-bus", &opts); in riscv_iommu_pci_register_nodes()
|
/qemu/hw/net/ |
H A D | Kconfig | 10 depends on PCI 16 depends on PCI 22 depends on PCI 31 depends on PCI 40 depends on PCI 55 depends on PCI 60 depends on PCI 120 depends on PCI 140 depends on PCI && MSI_NONBROKEN 153 depends on PCI && CAN_SJA1000 [all …]
|
/qemu/qapi/ |
H A D | pci.json | 9 # = PCI 15 # A PCI device memory region 28 # Information about a PCI device I/O region. 53 # Information about a bus of a PCI Bridge device 82 # Information about a PCI Bridge device 96 # Information about the Class of a PCI device 111 # Information about the Id of a PCI device 113 # @device: the PCI device id 115 # @vendor: the PCI vendor id 117 # @subsystem: the PCI subsystem id (since 3.1) [all …]
|
/qemu/tests/qtest/ |
H A D | device-plug-test.c | 62 if (!qtest_has_device("virtio-mouse-pci")) { in test_pci_unplug_request() 63 g_test_skip("Device virtio-mouse-pci not available"); in test_pci_unplug_request() 71 qtest = qtest_initf("%s -device virtio-mouse-pci,id=dev0", in test_pci_unplug_request() 83 if (!qtest_has_device("virtio-mouse-pci")) { in test_q35_pci_unplug_request() 84 g_test_skip("Device virtio-mouse-pci not available"); in test_q35_pci_unplug_request() 90 "-device pcie-pci-bridge,bus=p1,id=b1 " in test_q35_pci_unplug_request() 91 "-device virtio-mouse-pci,bus=b1,id=dev0"); in test_q35_pci_unplug_request() 104 if (!qtest_has_device("virtio-mouse-pci")) { in test_pci_unplug_json_request() 105 g_test_skip("Device virtio-mouse-pci not available"); in test_pci_unplug_json_request() 114 "%s -device \"{'driver': 'virtio-mouse-pci', 'id': 'dev0'}\"", in test_pci_unplug_json_request() [all …]
|