mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Describe the usage of devices 5853:0002 and 5853:C000. Signed-off-by: Frediano Ziglio <frediano.ziglio@cloud.com> Reviewed-by: Alejandro Vallejo <alejandro.vallejo@cloud.com>
97 lines
3.2 KiB
INI
97 lines
3.2 KiB
INI
=head1 NAME
|
|
|
|
xen-pci-device-reservations - Xen PCI device ID registry
|
|
|
|
=head1 Description
|
|
|
|
PCI vendor ID 0x5853 has been reserved for use by Xen systems in order to
|
|
advertise certain virtual hardware to guest virtual machines. The primary
|
|
use of this is with device ID 0x0001 to advertise the Xen Platform PCI
|
|
device - the presence of this virtual device enables a guest Operating
|
|
System (subject to the availability of suitable drivers) to make use of
|
|
paravirtualisation features such as disk and network devices etc.
|
|
XenServer, for Windows machines, may present Xen Platform device with device
|
|
ID 0x0002 instead of 0x0001. Device 0x0001 and 0x0002 should be mutually
|
|
exclusive.
|
|
|
|
Some Xen vendors wish to provide alternative and/or additional guest drivers
|
|
that can bind to virtual devices[1]. This may be done using the Xen PCI
|
|
vendor ID of 0x5853 and Xen-vendor/device specific PCI device IDs. This file
|
|
records reservations made within the device ID range in order to avoid
|
|
multiple Xen vendors using conflicting IDs.
|
|
|
|
=head1 Guidelines
|
|
|
|
=over 4
|
|
|
|
=item 1. A vendor may request a range of device IDs by submitting a patch to
|
|
this file.
|
|
|
|
=item 2. Vendor allocations should be in the range 0xc000-0xfffe to reduce the
|
|
possibility of clashes with community IDs assigned from the bottom up.
|
|
|
|
=item 3. 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.cz and https://devicehunt.com
|
|
|
|
=back
|
|
|
|
=head1 Reservations
|
|
|
|
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)
|
|
|
|
=head1 Notes
|
|
|
|
=over 4
|
|
|
|
=item 1.
|
|
|
|
Upstream QEMU provides a parameterized device called xen-pvdevice that
|
|
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:
|
|
|
|
=over 4
|
|
|
|
=item vendor-id (default 0x5853)
|
|
|
|
The PCI vendor ID and subsystem vendor ID of the device.
|
|
|
|
=item device-id (must be specified)
|
|
|
|
The PCI device ID and subsystem device ID of the device.
|
|
|
|
=item revision (default 0x01)
|
|
|
|
The PCI revision of the device
|
|
|
|
=back
|
|
|
|
Also the size parameter (default 0x400000) can be used to specify the
|
|
size of the single MMIO BAR that the device exposes. This area may be
|
|
used by drivers for mapping grant tables, etc.
|
|
|
|
Note that the presence of the Xen Platform PCI device is generally a
|
|
pre-requisite for an additional xen-pvdevice as it is the platform
|
|
device that provides that IO ports necessary for unplugging emulated
|
|
devices. See hvm-emulated-unplug.markdown for details of the IO ports
|
|
and unplug protocol.
|
|
|
|
libxl provides support for creation of a single additional xen-pvdevice.
|
|
See the vendor_device parameter in xl.cfg(5).
|
|
|
|
XenServer might present a xen-pvdevice device with ID 0xC000.
|
|
Such device is a placeholder for Windows update usage and is always exposed
|
|
in conjunction with a Xen Platform PCI device, usually with ID 0x0002
|
|
|
|
=back
|