[Xen-devel] [RFC][PATCH 0/6] HVM PCI Passthrough (non-IOMMU)
The following patches can be applied cleanly to C/S 15011 (unstable).
They provide HVM PCI Pass-through for non-IOMMU based machines.
In order to support DMA, a single HVM, called NativeDom, has its P2M
populated in a 1:1 fashion, where each gpfn==mfn.
* Tested on 32bit Windows and Linux operating systems based HVMs.
* Dom0/Xen is compiled in x86_32 mode.
* Only level-triggered interrupts are supported in this version, this is
for most PCI devices.
* Edge-triggered interrupts should be easily supported by just asserting
when they are raised - this is not implemented in this patch.
To test the patches, you'll have to change some hard-coded parts in the
* The bus, device and function of the device that you are going to
for NativeDom (pass-through.h)
* The pt_init() function (pass-through.c) currently programmed to do
pass-through for 3 USB devices on the DQ965GF desktop,
change it as you wish.
* You'll have to hide the device that you are giving to the HVM so
doesn't use it. Use the pciback kernel parameter in order to do
The files are organized as follows:
1) conf.patch - Some changes to the general configuration files.
2) misc.patch - Some global changes & fixes
3) 1to1.patch - Provides the new memory layout and the allocator that
4) int.patch - Interrupts binding / injecting.
5) ioemu.patch - Changes to the device model, provides PCI
updates, BAR emulation and PIO/MMIO access functions,
should be moved to the Hypervisor, but we suggest to
them for debugging purposes)
6) libpci.patch - A library to access the PCI config space, probe the
devices, etc. It is basically a copy & paste from the
app, with some additions.
Please see our presentation:
Xen-devel mailing list
|<Prev in Thread]
||[Next in Thread>|
- [Xen-devel] [RFC][PATCH 0/6] HVM PCI Passthrough (non-IOMMU),
Guy Zana <=