Merge tag 'sdmmc-20240716' of https://github.com/philmd/qemu into staging
[qemu/armbru.git] / docs / specs / pci-ids.rst
blobc0a3dec2e7a7d2a4ad6c7cfbefc3fb5d85de729a
1 ================
2 PCI IDs for QEMU
3 ================
5 Red Hat, Inc. donates a part of its device ID range to QEMU, to be used for
6 virtual devices.  The vendor IDs are 1af4 (formerly Qumranet ID) and 1b36.
8 Contact Gerd Hoffmann <kraxel@redhat.com> to get a device ID assigned
9 for your devices.
11 1af4 vendor ID
12 --------------
14 The 1000 -> 10ff device ID range is used as follows for virtio-pci devices.
15 Note that this allocation is separate from the virtio device IDs, which are
16 maintained as part of the virtio specification.
18 1af4:1000
19   network device (legacy)
20 1af4:1001
21   block device (legacy)
22 1af4:1002
23   balloon device (legacy)
24 1af4:1003
25   console device (legacy)
26 1af4:1004
27   SCSI host bus adapter device (legacy)
28 1af4:1005
29   entropy generator device (legacy)
30 1af4:1009
31   9p filesystem device (legacy)
32 1af4:1012
33   vsock device (bug compatibility)
35 1af4: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/``.
43 1af4: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.
48 1af4:1100
49   Used as PCI Subsystem ID for existing hardware devices emulated
50   by QEMU.
52 1af4:1110
53   ivshmem device (:doc:`ivshmem-spec`)
55 All other device IDs are reserved.
57 1b36 vendor ID
58 --------------
60 The 0000 -> 00ff device ID range is used as follows for QEMU-specific
61 PCI devices (other than virtio):
63 1b36:0001
64   PCI-PCI bridge
65 1b36:0002
66   PCI serial port (16550A) adapter (:doc:`pci-serial`)
67 1b36:0003
68   PCI Dual-port 16550A adapter (:doc:`pci-serial`)
69 1b36:0004
70   PCI Quad-port 16550A adapter (:doc:`pci-serial`)
71 1b36:0005
72   PCI test device (:doc:`pci-testdev`)
73 1b36:0006
74   PCI Rocker Ethernet switch device
75 1b36:0007
76   PCI SD Card Host Controller Interface (SDHCI)
77 1b36:0008
78   PCIe host bridge
79 1b36:0009
80   PCI Expander Bridge (-device pxb)
81 1b36:000a
82   PCI-PCI bridge (multiseat)
83 1b36:000b
84   PCIe Expander Bridge (-device pxb-pcie)
85 1b36:000d
86   PCI xhci usb host adapter
87 1b36:000f
88   mdpy (mdev sample device), ``linux/samples/vfio-mdev/mdpy.c``
89 1b36:0010
90   PCIe NVMe device (``-device nvme``)
91 1b36:0011
92   PCI PVPanic device (``-device pvpanic-pci``)
93 1b36:0012
94   PCI ACPI ERST device (``-device acpi-erst``)
95 1b36:0013
96   PCI UFS device (``-device ufs``)
98 All these devices are documented in :doc:`index`.
100 The 0100 device ID is used for the QXL video card device.