1*0c0e21d1SPeter Maydell================ 2*0c0e21d1SPeter MaydellPCI IDs for QEMU 3*0c0e21d1SPeter Maydell================ 4*0c0e21d1SPeter Maydell 5*0c0e21d1SPeter MaydellRed Hat, Inc. donates a part of its device ID range to QEMU, to be used for 6*0c0e21d1SPeter Maydellvirtual devices. The vendor IDs are 1af4 (formerly Qumranet ID) and 1b36. 7*0c0e21d1SPeter Maydell 8*0c0e21d1SPeter MaydellContact Gerd Hoffmann <kraxel@redhat.com> to get a device ID assigned 9*0c0e21d1SPeter Maydellfor your devices. 10*0c0e21d1SPeter Maydell 11*0c0e21d1SPeter Maydell1af4 vendor ID 12*0c0e21d1SPeter Maydell-------------- 13*0c0e21d1SPeter Maydell 14*0c0e21d1SPeter MaydellThe 1000 -> 10ff device ID range is used as follows for virtio-pci devices. 15*0c0e21d1SPeter MaydellNote that this allocation is separate from the virtio device IDs, which are 16*0c0e21d1SPeter Maydellmaintained as part of the virtio specification. 17*0c0e21d1SPeter Maydell 18*0c0e21d1SPeter Maydell1af4:1000 19*0c0e21d1SPeter Maydell network device (legacy) 20*0c0e21d1SPeter Maydell1af4:1001 21*0c0e21d1SPeter Maydell block device (legacy) 22*0c0e21d1SPeter Maydell1af4:1002 23*0c0e21d1SPeter Maydell balloon device (legacy) 24*0c0e21d1SPeter Maydell1af4:1003 25*0c0e21d1SPeter Maydell console device (legacy) 26*0c0e21d1SPeter Maydell1af4:1004 27*0c0e21d1SPeter Maydell SCSI host bus adapter device (legacy) 28*0c0e21d1SPeter Maydell1af4:1005 29*0c0e21d1SPeter Maydell entropy generator device (legacy) 30*0c0e21d1SPeter Maydell1af4:1009 31*0c0e21d1SPeter Maydell 9p filesystem device (legacy) 32*0c0e21d1SPeter Maydell1af4:1012 33*0c0e21d1SPeter Maydell vsock device (bug compatibility) 34*0c0e21d1SPeter Maydell 35*0c0e21d1SPeter Maydell1af4:1040 to 1af4:10ef 36*0c0e21d1SPeter Maydell ID range for modern virtio devices. The PCI device 37*0c0e21d1SPeter Maydell ID is calculated from the virtio device ID by adding the 38*0c0e21d1SPeter Maydell 0x1040 offset. The virtio IDs are defined in the virtio 39*0c0e21d1SPeter Maydell specification. The Linux kernel has a header file with 40*0c0e21d1SPeter Maydell defines for all virtio IDs (``linux/virtio_ids.h``); QEMU has a 41*0c0e21d1SPeter Maydell copy in ``include/standard-headers/``. 42*0c0e21d1SPeter Maydell 43*0c0e21d1SPeter Maydell1af4:10f0 to 1a4f:10ff 44*0c0e21d1SPeter Maydell Available for experimental usage without registration. Must get 45*0c0e21d1SPeter Maydell official ID when the code leaves the test lab (i.e. when seeking 46*0c0e21d1SPeter Maydell upstream merge or shipping a distro/product) to avoid conflicts. 47*0c0e21d1SPeter Maydell 48*0c0e21d1SPeter Maydell1af4:1100 49*0c0e21d1SPeter Maydell Used as PCI Subsystem ID for existing hardware devices emulated 50*0c0e21d1SPeter Maydell by QEMU. 51*0c0e21d1SPeter Maydell 52*0c0e21d1SPeter Maydell1af4:1110 53*0c0e21d1SPeter Maydell ivshmem device (shared memory, ``docs/specs/ivshmem-spec.txt``) 54*0c0e21d1SPeter Maydell 55*0c0e21d1SPeter MaydellAll other device IDs are reserved. 56*0c0e21d1SPeter Maydell 57*0c0e21d1SPeter Maydell1b36 vendor ID 58*0c0e21d1SPeter Maydell-------------- 59*0c0e21d1SPeter Maydell 60*0c0e21d1SPeter MaydellThe 0000 -> 00ff device ID range is used as follows for QEMU-specific 61*0c0e21d1SPeter MaydellPCI devices (other than virtio): 62*0c0e21d1SPeter Maydell 63*0c0e21d1SPeter Maydell1b36:0001 64*0c0e21d1SPeter Maydell PCI-PCI bridge 65*0c0e21d1SPeter Maydell1b36:0002 66*0c0e21d1SPeter Maydell PCI serial port (16550A) adapter (``docs/specs/pci-serial.txt``) 67*0c0e21d1SPeter Maydell1b36:0003 68*0c0e21d1SPeter Maydell PCI Dual-port 16550A adapter (``docs/specs/pci-serial.txt``) 69*0c0e21d1SPeter Maydell1b36:0004 70*0c0e21d1SPeter Maydell PCI Quad-port 16550A adapter (``docs/specs/pci-serial.txt``) 71*0c0e21d1SPeter Maydell1b36:0005 72*0c0e21d1SPeter Maydell PCI test device (``docs/specs/pci-testdev.txt``) 73*0c0e21d1SPeter Maydell1b36:0006 74*0c0e21d1SPeter Maydell PCI Rocker Ethernet switch device 75*0c0e21d1SPeter Maydell1b36:0007 76*0c0e21d1SPeter Maydell PCI SD Card Host Controller Interface (SDHCI) 77*0c0e21d1SPeter Maydell1b36:0008 78*0c0e21d1SPeter Maydell PCIe host bridge 79*0c0e21d1SPeter Maydell1b36:0009 80*0c0e21d1SPeter Maydell PCI Expander Bridge (-device pxb) 81*0c0e21d1SPeter Maydell1b36:000a 82*0c0e21d1SPeter Maydell PCI-PCI bridge (multiseat) 83*0c0e21d1SPeter Maydell1b36:000b 84*0c0e21d1SPeter Maydell PCIe Expander Bridge (-device pxb-pcie) 85*0c0e21d1SPeter Maydell1b36:000d 86*0c0e21d1SPeter Maydell PCI xhci usb host adapter 87*0c0e21d1SPeter Maydell1b36:000f 88*0c0e21d1SPeter Maydell mdpy (mdev sample device), ``linux/samples/vfio-mdev/mdpy.c`` 89*0c0e21d1SPeter Maydell1b36:0010 90*0c0e21d1SPeter Maydell PCIe NVMe device (``-device nvme``) 91*0c0e21d1SPeter Maydell1b36:0011 92*0c0e21d1SPeter Maydell PCI PVPanic device (``-device pvpanic-pci``) 93*0c0e21d1SPeter Maydell1b36:0012 94*0c0e21d1SPeter Maydell PCI ACPI ERST device (``-device acpi-erst``) 95*0c0e21d1SPeter Maydell 96*0c0e21d1SPeter MaydellAll these devices are documented in :doc:`index`. 97*0c0e21d1SPeter Maydell 98*0c0e21d1SPeter MaydellThe 0100 device ID is used for the QXL video card device. 99