diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 8d4330329e..f325c3c08c 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -2369,7 +2369,22 @@
the device as can be found with the lspci or
with virsh
nodedev-list. See above for
- more details on the address element.
+ more details on the address element.
+
driver
+
+ PCI devices can have an optional driver
+ subelement that specifies which backend driver to use for PCI
+ device assignment. Use the name attribute to
+ select either "vfio" (for the new VFIO device assignment
+ backend, which is compatible with UEFI SecureBoot) or "kvm"
+ (for the legacy device assignment handled directly by the KVM
+ kernel module)Since 1.0.5 (QEMU and KVM
+ only, requires kernel 3.6 or newer). Currently, "kvm"
+ is the default used by libvirt when not explicitly provided,
+ but since the two are functionally equivalent, this default
+ could be changed in the future with no impact to domains that
+ don't specify anything.
+
@@ -2975,6 +2990,18 @@
Since 0.9.11
+
+ To use VFIO device assignment rather than traditional/legacy KVM
+ device assignment (VFIO is a new method of device assignment
+ that is compatible with UEFI Secure Boot), a type='hostdev'
+ interface can have an optional driver sub-element
+ with a name attribute set to "vfio". To use legacy
+ KVM device assignment you can set name to "kvm" (or
+ simply omit the <driver> element, since "kvm"
+ is currently the default).
+ Since 1.0.5 (QEMU and KVM only, requires kernel 3.6 or newer)
+
+
Note that this "intelligent passthrough" of network devices is
very similar to the functionality of a standard <hostdev>
@@ -2993,6 +3020,7 @@
...
<devices>
<interface type='hostdev'>
+ <driver name='vfio'/>
<source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</source>
@@ -3124,6 +3152,19 @@ qemu-kvm -net nic,model=? /dev/null
to 'qemu' without error.
Since 0.8.8 (QEMU and KVM only)
+
+ For interfaces of type='hostdev' (PCI passthrough devices)
+ the name attribute can optionally be set to
+ "vfio" or "kvm". "vfio" tells libvirt to use VFIO device
+ assignment rather than traditional KVM device assignment (VFIO
+ is a new method of device assignment that is compatible with
+ UEFI Secure Boot), and "kvm" tells libvirt to use the legacy
+ device assignment performed directly by the kvm kernel module
+ (the default is currently "kvm", but is subject to change).
+ Since 1.0.5 (QEMU and KVM only, requires
+ kernel 3.6 or newer)
+
+
txmode
The txmode attribute specifies how to handle
diff --git a/docs/formatnetwork.html.in b/docs/formatnetwork.html.in
index 4dd0415df4..b1888968a6 100644
--- a/docs/formatnetwork.html.in
+++ b/docs/formatnetwork.html.in
@@ -279,6 +279,20 @@
use the traditional < hostdev> device
definition. Since 0.10.0
+
+ To use VFIO device assignment rather than
+ traditional/legacy KVM device assignment (VFIO is a new
+ method of device assignment that is compatible with UEFI
+ Secure Boot), a <forward type='hostdev'> interface
+ can have an optional driver sub-element
+ with a name attribute set to "vfio". To use
+ legacy KVM device assignment you can
+ set name to "kvm" (or simply omit the
+ <driver> element, since "kvm" is currently the
+ default).
+ Since 1.0.5 (QEMU and KVM only, requires kernel 3.6 or newer)
+
+
Note that this "intelligent passthrough" of network
devices is very similar to the functionality of a
standard < hostdev> device, the
@@ -360,6 +374,7 @@