Merge tag 'pull-loongarch-20241016' of https://gitlab.com/gaosong/qemu into staging
[qemu/armbru.git] / docs / specs / pci-ids.rst
blob328ab31fe8206fe5d4b995f8c4fe8c29efbb5bfe
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:000c
86   PCIe Root Port (``-device pcie-root-port``)
87 1b36:000d
88   PCI xhci usb host adapter
89 1b36:000e
90   PCIe-to-PCI bridge (``-device pcie-pci-bridge``)
91 1b36:000f
92   mdpy (mdev sample device), ``linux/samples/vfio-mdev/mdpy.c``
93 1b36:0010
94   PCIe NVMe device (``-device nvme``)
95 1b36:0011
96   PCI PVPanic device (``-device pvpanic-pci``)
97 1b36:0012
98   PCI ACPI ERST device (``-device acpi-erst``)
99 1b36:0013
100   PCI UFS device (``-device ufs``)
102 All these devices are documented in :doc:`index`.
104 The 0100 device ID is used for the QXL video card device.