10c0e21d1SPeter Maydell================ 20c0e21d1SPeter MaydellPCI IDs for QEMU 30c0e21d1SPeter Maydell================ 40c0e21d1SPeter Maydell 50c0e21d1SPeter MaydellRed Hat, Inc. donates a part of its device ID range to QEMU, to be used for 60c0e21d1SPeter Maydellvirtual devices. The vendor IDs are 1af4 (formerly Qumranet ID) and 1b36. 70c0e21d1SPeter Maydell 80c0e21d1SPeter MaydellContact Gerd Hoffmann <kraxel@redhat.com> to get a device ID assigned 90c0e21d1SPeter Maydellfor your devices. 100c0e21d1SPeter Maydell 110c0e21d1SPeter Maydell1af4 vendor ID 120c0e21d1SPeter Maydell-------------- 130c0e21d1SPeter Maydell 140c0e21d1SPeter MaydellThe 1000 -> 10ff device ID range is used as follows for virtio-pci devices. 150c0e21d1SPeter MaydellNote that this allocation is separate from the virtio device IDs, which are 160c0e21d1SPeter Maydellmaintained as part of the virtio specification. 170c0e21d1SPeter Maydell 180c0e21d1SPeter Maydell1af4:1000 190c0e21d1SPeter Maydell network device (legacy) 200c0e21d1SPeter Maydell1af4:1001 210c0e21d1SPeter Maydell block device (legacy) 220c0e21d1SPeter Maydell1af4:1002 230c0e21d1SPeter Maydell balloon device (legacy) 240c0e21d1SPeter Maydell1af4:1003 250c0e21d1SPeter Maydell console device (legacy) 260c0e21d1SPeter Maydell1af4:1004 270c0e21d1SPeter Maydell SCSI host bus adapter device (legacy) 280c0e21d1SPeter Maydell1af4:1005 290c0e21d1SPeter Maydell entropy generator device (legacy) 300c0e21d1SPeter Maydell1af4:1009 310c0e21d1SPeter Maydell 9p filesystem device (legacy) 320c0e21d1SPeter Maydell1af4:1012 330c0e21d1SPeter Maydell vsock device (bug compatibility) 340c0e21d1SPeter Maydell 350c0e21d1SPeter Maydell1af4:1040 to 1af4:10ef 360c0e21d1SPeter Maydell ID range for modern virtio devices. The PCI device 370c0e21d1SPeter Maydell ID is calculated from the virtio device ID by adding the 380c0e21d1SPeter Maydell 0x1040 offset. The virtio IDs are defined in the virtio 390c0e21d1SPeter Maydell specification. The Linux kernel has a header file with 400c0e21d1SPeter Maydell defines for all virtio IDs (``linux/virtio_ids.h``); QEMU has a 410c0e21d1SPeter Maydell copy in ``include/standard-headers/``. 420c0e21d1SPeter Maydell 430c0e21d1SPeter Maydell1af4:10f0 to 1a4f:10ff 440c0e21d1SPeter Maydell Available for experimental usage without registration. Must get 450c0e21d1SPeter Maydell official ID when the code leaves the test lab (i.e. when seeking 460c0e21d1SPeter Maydell upstream merge or shipping a distro/product) to avoid conflicts. 470c0e21d1SPeter Maydell 480c0e21d1SPeter Maydell1af4:1100 490c0e21d1SPeter Maydell Used as PCI Subsystem ID for existing hardware devices emulated 500c0e21d1SPeter Maydell by QEMU. 510c0e21d1SPeter Maydell 520c0e21d1SPeter Maydell1af4:1110 53bb1cff6eSPeter Maydell ivshmem device (:doc:`ivshmem-spec`) 540c0e21d1SPeter Maydell 550c0e21d1SPeter MaydellAll other device IDs are reserved. 560c0e21d1SPeter Maydell 570c0e21d1SPeter Maydell1b36 vendor ID 580c0e21d1SPeter Maydell-------------- 590c0e21d1SPeter Maydell 600c0e21d1SPeter MaydellThe 0000 -> 00ff device ID range is used as follows for QEMU-specific 610c0e21d1SPeter MaydellPCI devices (other than virtio): 620c0e21d1SPeter Maydell 630c0e21d1SPeter Maydell1b36:0001 640c0e21d1SPeter Maydell PCI-PCI bridge 650c0e21d1SPeter Maydell1b36:0002 663669b594SPeter Maydell PCI serial port (16550A) adapter (:doc:`pci-serial`) 670c0e21d1SPeter Maydell1b36:0003 683669b594SPeter Maydell PCI Dual-port 16550A adapter (:doc:`pci-serial`) 690c0e21d1SPeter Maydell1b36:0004 703669b594SPeter Maydell PCI Quad-port 16550A adapter (:doc:`pci-serial`) 710c0e21d1SPeter Maydell1b36:0005 724d583093SPeter Maydell PCI test device (:doc:`pci-testdev`) 730c0e21d1SPeter Maydell1b36:0006 740c0e21d1SPeter Maydell PCI Rocker Ethernet switch device 750c0e21d1SPeter Maydell1b36:0007 760c0e21d1SPeter Maydell PCI SD Card Host Controller Interface (SDHCI) 770c0e21d1SPeter Maydell1b36:0008 780c0e21d1SPeter Maydell PCIe host bridge 790c0e21d1SPeter Maydell1b36:0009 807e7085daSGeorge Matsumura PCI Expander Bridge (``-device pxb``) 810c0e21d1SPeter Maydell1b36:000a 820c0e21d1SPeter Maydell PCI-PCI bridge (multiseat) 830c0e21d1SPeter Maydell1b36:000b 847e7085daSGeorge Matsumura PCIe Expander Bridge (``-device pxb-pcie``) 856e717a72SGeorge Matsumura1b36:000c 866e717a72SGeorge Matsumura PCIe Root Port (``-device pcie-root-port``) 870c0e21d1SPeter Maydell1b36:000d 880c0e21d1SPeter Maydell PCI xhci usb host adapter 896e717a72SGeorge Matsumura1b36:000e 906e717a72SGeorge Matsumura PCIe-to-PCI bridge (``-device pcie-pci-bridge``) 910c0e21d1SPeter Maydell1b36:000f 920c0e21d1SPeter Maydell mdpy (mdev sample device), ``linux/samples/vfio-mdev/mdpy.c`` 930c0e21d1SPeter Maydell1b36:0010 940c0e21d1SPeter Maydell PCIe NVMe device (``-device nvme``) 950c0e21d1SPeter Maydell1b36:0011 960c0e21d1SPeter Maydell PCI PVPanic device (``-device pvpanic-pci``) 970c0e21d1SPeter Maydell1b36:0012 980c0e21d1SPeter Maydell PCI ACPI ERST device (``-device acpi-erst``) 99bc4e68d3SJeuk Kim1b36:0013 100bc4e68d3SJeuk Kim PCI UFS device (``-device ufs``) 101*3c445dacSDaniel Henrique Barboza1b36:0014 102*3c445dacSDaniel Henrique Barboza PCI RISC-V IOMMU device 1030c0e21d1SPeter Maydell 1040c0e21d1SPeter MaydellAll these devices are documented in :doc:`index`. 1050c0e21d1SPeter Maydell 1060c0e21d1SPeter MaydellThe 0100 device ID is used for the QXL video card device. 107