xref: /qemu/docs/specs/pci-ids.rst (revision bc4e68d362ec4be9cd54fea181dca2b5b0435865)
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
530c0e21d1SPeter Maydell  ivshmem device (shared memory, ``docs/specs/ivshmem-spec.txt``)
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
800c0e21d1SPeter Maydell  PCI Expander Bridge (-device pxb)
810c0e21d1SPeter Maydell1b36:000a
820c0e21d1SPeter Maydell  PCI-PCI bridge (multiseat)
830c0e21d1SPeter Maydell1b36:000b
840c0e21d1SPeter Maydell  PCIe Expander Bridge (-device pxb-pcie)
850c0e21d1SPeter Maydell1b36:000d
860c0e21d1SPeter Maydell  PCI xhci usb host adapter
870c0e21d1SPeter Maydell1b36:000f
880c0e21d1SPeter Maydell  mdpy (mdev sample device), ``linux/samples/vfio-mdev/mdpy.c``
890c0e21d1SPeter Maydell1b36:0010
900c0e21d1SPeter Maydell  PCIe NVMe device (``-device nvme``)
910c0e21d1SPeter Maydell1b36:0011
920c0e21d1SPeter Maydell  PCI PVPanic device (``-device pvpanic-pci``)
930c0e21d1SPeter Maydell1b36:0012
940c0e21d1SPeter Maydell  PCI ACPI ERST device (``-device acpi-erst``)
95*bc4e68d3SJeuk Kim1b36:0013
96*bc4e68d3SJeuk Kim  PCI UFS device (``-device ufs``)
970c0e21d1SPeter Maydell
980c0e21d1SPeter MaydellAll these devices are documented in :doc:`index`.
990c0e21d1SPeter Maydell
1000c0e21d1SPeter MaydellThe 0100 device ID is used for the QXL video card device.
101