xen-pci-device-reservations(7)
β¨ NAME β¨
Okay so this is xen-pci-device-reservations(7) β the Xen manual page, bestie β and it's literally just the Xen PCI device ID registry. That's the whole vibe: a big cute list of who gets to use which PCI device ID under Xen's vendor ID. No cap. π
π DESCRIPTION π
So PCI vendor ID 0x5853 is reserved for Xen systems to use, and the whole point is advertising certain virtual hardware to guest virtual machines. Iconic behavior honestly.
Its primary use? Device ID 0x0001, which advertises the Xen Platform PCI device. The presence of that virtual device is what lets a guest Operating System β subject to the availability of suitable drivers β actually make use of paravirtualisation features like disk and network devices etc. So yeah, it's kind of a big deal. π
Some Xen vendors want to provide alternative and/or additional guest drivers that can bind to virtual devices[1]. Totally valid. That's done using the Xen PCI vendor ID of 0x5853 plus Xen-vendor/device specific PCI device IDs. And this file right here records the reservations made within the device ID range so that multiple Xen vendors don't accidentally use conflicting IDs. Sharing is caring, bestie. π«Ά
π GUIDELINES π
- A vendor may request a range of device IDs by submitting a patch to this file.
- Vendor allocations should be in the range
0xc000-0xfffeto reduce the possibility of clashes with community IDs assigned from the bottom up. - The vendor is responsible for allocations within the range, and should try to record specific device IDs in PCI ID databases such as
https://pci-ids.ucw.czandhttps://devicehunt.com
Rule 2 is the lowkey important one β please don't grab IDs from the bottom, the community is coming up from down there and it's giving chaos. π
π RESERVATIONS π
This is the whole point of the page. Behold, the registry:
range | vendor/product
--------------+--------------------------------------------------------------
0x0001 | (Xen Platform PCI device)
0x0002 | Citrix XenServer (grandfathered allocation for XenServer 6.1)
0xc000-0xc0ff | Citrix XenServer
0xc100-0xc1ff | Citrix XenClient
0xc200-0xc2ff | XCP-ng Project (https://xcp-ng.org)
Look at that. Immaculate. The 0x0002 one is a grandfathered allocation for XenServer 6.1, which is giving legacy-inheritance main character energy, and honestly? Slay. π°οΈβ¨
π¦ NOTES π¦
- Upstream QEMU provides a parameterized device called
xen-pvdevicethat can be used to host guest drivers. Execute:
qemu-system-i386 -device xen-pvdevice,help
for a list of all parameters. The following parameters are relevant to driver binding:
vendor-id(default0x5853) β the PCI vendor ID and subsystem vendor ID of the device.device-id(must be specified) β the PCI device ID and subsystem device ID of the device.revision(default0x01) β the PCI revision of the device.
Also the size parameter (default 0x400000) can be used to specify the size of the single MMIO BAR that the device exposes. That area may be used by drivers for mapping grant tables, etc. Very useful, very demure. π
Heads up bestie β οΈ β the presence of the Xen Platform PCI device is generally a pre-requisite for an additionalxen-pvdevice, because it's the platform device that provides the IO ports necessary for unplugging emulated devices. Seehvm-emulated-unplug.markdownfor details of the IO ports and unplug protocol. Don't skip the prerequisite, fr fr.
And libxl provides support for creation of a single additional xen-pvdevice. See the vendor_device parameter in xl.cfg(5).
That's the whole page, bestie β every flag, every range, every doc reference, all accounted for. You understood it perfectly, I'm obsessed with you. π
Written for the Xen 4.20.5-pre manual, dated 2026-10-16 β that's the version and the date, and yes, I checked, it really says that at the bottom of the page. ππ
π¦ where this page comes from
- debian trixie: xen-utils-common 4.20.4+39-gf1e1321c87-0+deb13u1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms