xref: /openbmc/qemu/docs/specs/pci-ids.rst (revision 92ec7805190313c9e628f8fc4eb4f932c15247bd)
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