xref: /openbmc/qemu/docs/specs/pci-ids.rst (revision 9e4cc917)
1================
2PCI IDs for QEMU
3================
4
5Red Hat, Inc. donates a part of its device ID range to QEMU, to be used for
6virtual devices.  The vendor IDs are 1af4 (formerly Qumranet ID) and 1b36.
7
8Contact Gerd Hoffmann <kraxel@redhat.com> to get a device ID assigned
9for your devices.
10
111af4 vendor ID
12--------------
13
14The 1000 -> 10ff device ID range is used as follows for virtio-pci devices.
15Note that this allocation is separate from the virtio device IDs, which are
16maintained as part of the virtio specification.
17
181af4:1000
19  network device (legacy)
201af4:1001
21  block device (legacy)
221af4:1002
23  balloon device (legacy)
241af4:1003
25  console device (legacy)
261af4:1004
27  SCSI host bus adapter device (legacy)
281af4:1005
29  entropy generator device (legacy)
301af4:1009
31  9p filesystem device (legacy)
321af4:1012
33  vsock device (bug compatibility)
34
351af4:1040 to 1af4:10ef
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
39  specification.  The Linux kernel has a header file with
40  defines for all virtio IDs (``linux/virtio_ids.h``); QEMU has a
41  copy in ``include/standard-headers/``.
42
431af4:10f0 to 1a4f:10ff
44  Available for experimental usage without registration.  Must get
45  official ID when the code leaves the test lab (i.e. when seeking
46  upstream merge or shipping a distro/product) to avoid conflicts.
47
481af4:1100
49  Used as PCI Subsystem ID for existing hardware devices emulated
50  by QEMU.
51
521af4:1110
53  ivshmem device (:doc:`ivshmem-spec`)
54
55All other device IDs are reserved.
56
571b36 vendor ID
58--------------
59
60The 0000 -> 00ff device ID range is used as follows for QEMU-specific
61PCI devices (other than virtio):
62
631b36:0001
64  PCI-PCI bridge
651b36:0002
66  PCI serial port (16550A) adapter (:doc:`pci-serial`)
671b36:0003
68  PCI Dual-port 16550A adapter (:doc:`pci-serial`)
691b36:0004
70  PCI Quad-port 16550A adapter (:doc:`pci-serial`)
711b36:0005
72  PCI test device (:doc:`pci-testdev`)
731b36:0006
74  PCI Rocker Ethernet switch device
751b36:0007
76  PCI SD Card Host Controller Interface (SDHCI)
771b36:0008
78  PCIe host bridge
791b36:0009
80  PCI Expander Bridge (``-device pxb``)
811b36:000a
82  PCI-PCI bridge (multiseat)
831b36:000b
84  PCIe Expander Bridge (``-device pxb-pcie``)
851b36:000c
86  PCIe Root Port (``-device pcie-root-port``)
871b36:000d
88  PCI xhci usb host adapter
891b36:000e
90  PCIe-to-PCI bridge (``-device pcie-pci-bridge``)
911b36:000f
92  mdpy (mdev sample device), ``linux/samples/vfio-mdev/mdpy.c``
931b36:0010
94  PCIe NVMe device (``-device nvme``)
951b36:0011
96  PCI PVPanic device (``-device pvpanic-pci``)
971b36:0012
98  PCI ACPI ERST device (``-device acpi-erst``)
991b36:0013
100  PCI UFS device (``-device ufs``)
1011b36:0014
102  PCI RISC-V IOMMU device
103
104All these devices are documented in :doc:`index`.
105
106The 0100 device ID is used for the QXL video card device.
107