xref: /qemu/docs/specs/pci-ids.rst (revision 0c0e21d1c1e2dde4f7437bcd5c53127013cc25f7)
1*0c0e21d1SPeter Maydell================
2*0c0e21d1SPeter MaydellPCI IDs for QEMU
3*0c0e21d1SPeter Maydell================
4*0c0e21d1SPeter Maydell
5*0c0e21d1SPeter MaydellRed Hat, Inc. donates a part of its device ID range to QEMU, to be used for
6*0c0e21d1SPeter Maydellvirtual devices.  The vendor IDs are 1af4 (formerly Qumranet ID) and 1b36.
7*0c0e21d1SPeter Maydell
8*0c0e21d1SPeter MaydellContact Gerd Hoffmann <kraxel@redhat.com> to get a device ID assigned
9*0c0e21d1SPeter Maydellfor your devices.
10*0c0e21d1SPeter Maydell
11*0c0e21d1SPeter Maydell1af4 vendor ID
12*0c0e21d1SPeter Maydell--------------
13*0c0e21d1SPeter Maydell
14*0c0e21d1SPeter MaydellThe 1000 -> 10ff device ID range is used as follows for virtio-pci devices.
15*0c0e21d1SPeter MaydellNote that this allocation is separate from the virtio device IDs, which are
16*0c0e21d1SPeter Maydellmaintained as part of the virtio specification.
17*0c0e21d1SPeter Maydell
18*0c0e21d1SPeter Maydell1af4:1000
19*0c0e21d1SPeter Maydell  network device (legacy)
20*0c0e21d1SPeter Maydell1af4:1001
21*0c0e21d1SPeter Maydell  block device (legacy)
22*0c0e21d1SPeter Maydell1af4:1002
23*0c0e21d1SPeter Maydell  balloon device (legacy)
24*0c0e21d1SPeter Maydell1af4:1003
25*0c0e21d1SPeter Maydell  console device (legacy)
26*0c0e21d1SPeter Maydell1af4:1004
27*0c0e21d1SPeter Maydell  SCSI host bus adapter device (legacy)
28*0c0e21d1SPeter Maydell1af4:1005
29*0c0e21d1SPeter Maydell  entropy generator device (legacy)
30*0c0e21d1SPeter Maydell1af4:1009
31*0c0e21d1SPeter Maydell  9p filesystem device (legacy)
32*0c0e21d1SPeter Maydell1af4:1012
33*0c0e21d1SPeter Maydell  vsock device (bug compatibility)
34*0c0e21d1SPeter Maydell
35*0c0e21d1SPeter Maydell1af4:1040 to 1af4:10ef
36*0c0e21d1SPeter Maydell  ID range for modern virtio devices.  The PCI device
37*0c0e21d1SPeter Maydell  ID is calculated from the virtio device ID by adding the
38*0c0e21d1SPeter Maydell  0x1040 offset.  The virtio IDs are defined in the virtio
39*0c0e21d1SPeter Maydell  specification.  The Linux kernel has a header file with
40*0c0e21d1SPeter Maydell  defines for all virtio IDs (``linux/virtio_ids.h``); QEMU has a
41*0c0e21d1SPeter Maydell  copy in ``include/standard-headers/``.
42*0c0e21d1SPeter Maydell
43*0c0e21d1SPeter Maydell1af4:10f0 to 1a4f:10ff
44*0c0e21d1SPeter Maydell  Available for experimental usage without registration.  Must get
45*0c0e21d1SPeter Maydell  official ID when the code leaves the test lab (i.e. when seeking
46*0c0e21d1SPeter Maydell  upstream merge or shipping a distro/product) to avoid conflicts.
47*0c0e21d1SPeter Maydell
48*0c0e21d1SPeter Maydell1af4:1100
49*0c0e21d1SPeter Maydell  Used as PCI Subsystem ID for existing hardware devices emulated
50*0c0e21d1SPeter Maydell  by QEMU.
51*0c0e21d1SPeter Maydell
52*0c0e21d1SPeter Maydell1af4:1110
53*0c0e21d1SPeter Maydell  ivshmem device (shared memory, ``docs/specs/ivshmem-spec.txt``)
54*0c0e21d1SPeter Maydell
55*0c0e21d1SPeter MaydellAll other device IDs are reserved.
56*0c0e21d1SPeter Maydell
57*0c0e21d1SPeter Maydell1b36 vendor ID
58*0c0e21d1SPeter Maydell--------------
59*0c0e21d1SPeter Maydell
60*0c0e21d1SPeter MaydellThe 0000 -> 00ff device ID range is used as follows for QEMU-specific
61*0c0e21d1SPeter MaydellPCI devices (other than virtio):
62*0c0e21d1SPeter Maydell
63*0c0e21d1SPeter Maydell1b36:0001
64*0c0e21d1SPeter Maydell  PCI-PCI bridge
65*0c0e21d1SPeter Maydell1b36:0002
66*0c0e21d1SPeter Maydell  PCI serial port (16550A) adapter (``docs/specs/pci-serial.txt``)
67*0c0e21d1SPeter Maydell1b36:0003
68*0c0e21d1SPeter Maydell  PCI Dual-port 16550A adapter (``docs/specs/pci-serial.txt``)
69*0c0e21d1SPeter Maydell1b36:0004
70*0c0e21d1SPeter Maydell  PCI Quad-port 16550A adapter (``docs/specs/pci-serial.txt``)
71*0c0e21d1SPeter Maydell1b36:0005
72*0c0e21d1SPeter Maydell  PCI test device (``docs/specs/pci-testdev.txt``)
73*0c0e21d1SPeter Maydell1b36:0006
74*0c0e21d1SPeter Maydell  PCI Rocker Ethernet switch device
75*0c0e21d1SPeter Maydell1b36:0007
76*0c0e21d1SPeter Maydell  PCI SD Card Host Controller Interface (SDHCI)
77*0c0e21d1SPeter Maydell1b36:0008
78*0c0e21d1SPeter Maydell  PCIe host bridge
79*0c0e21d1SPeter Maydell1b36:0009
80*0c0e21d1SPeter Maydell  PCI Expander Bridge (-device pxb)
81*0c0e21d1SPeter Maydell1b36:000a
82*0c0e21d1SPeter Maydell  PCI-PCI bridge (multiseat)
83*0c0e21d1SPeter Maydell1b36:000b
84*0c0e21d1SPeter Maydell  PCIe Expander Bridge (-device pxb-pcie)
85*0c0e21d1SPeter Maydell1b36:000d
86*0c0e21d1SPeter Maydell  PCI xhci usb host adapter
87*0c0e21d1SPeter Maydell1b36:000f
88*0c0e21d1SPeter Maydell  mdpy (mdev sample device), ``linux/samples/vfio-mdev/mdpy.c``
89*0c0e21d1SPeter Maydell1b36:0010
90*0c0e21d1SPeter Maydell  PCIe NVMe device (``-device nvme``)
91*0c0e21d1SPeter Maydell1b36:0011
92*0c0e21d1SPeter Maydell  PCI PVPanic device (``-device pvpanic-pci``)
93*0c0e21d1SPeter Maydell1b36:0012
94*0c0e21d1SPeter Maydell  PCI ACPI ERST device (``-device acpi-erst``)
95*0c0e21d1SPeter Maydell
96*0c0e21d1SPeter MaydellAll these devices are documented in :doc:`index`.
97*0c0e21d1SPeter Maydell
98*0c0e21d1SPeter MaydellThe 0100 device ID is used for the QXL video card device.
99