freebsd-nq/sys/amd64/vmm/io
John Baldwin ffe1b10d95 Enable I/O MMU when PCI pass through is first used.
Rather than enabling the I/O MMU when the vmm module is loaded,
defer initialization until the first attempt to pass a PCI device
through to a guest.  If the I/O MMU fails to initialize or is not
present, than fail the attempt to pass a PCI device through to a
guest.

The hw.vmm.force_iommu tunable has been removed since the I/O MMU is
no longer enabled during boot.  However, the I/O MMU support can be
disabled by setting the hw.vmm.iommu.enable tunable to 0 to prevent
use of the I/O MMU on any systems where it is buggy.

Reviewed by:	grehan
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D7448
2016-08-26 20:15:22 +00:00
..
iommu.c Enable I/O MMU when PCI pass through is first used. 2016-08-26 20:15:22 +00:00
iommu.h Enable I/O MMU when PCI pass through is first used. 2016-08-26 20:15:22 +00:00
ppt.c Restructure memory allocation in bhyve to support "devmem". 2015-06-18 06:00:17 +00:00
ppt.h There is no need to initialize the IOMMU if no passthru devices have been 2014-01-21 03:01:34 +00:00
vatpic.c Don't require <sys/cpuset.h> to be always included before <machine/vmm.h>. 2015-04-30 22:23:22 +00:00
vatpic.h Change the type of the first argument to the I/O emulation handlers to 2014-10-26 19:03:06 +00:00
vatpit.c CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
vatpit.h Change the type of the first argument to the I/O emulation handlers to 2014-10-26 19:03:06 +00:00
vhpet.c Increase number of I/O APIC pins from 24 to 32 to give PCI up to 16 IRQs. 2016-07-14 14:35:25 +00:00
vhpet.h
vioapic.c Increase number of I/O APIC pins from 24 to 32 to give PCI up to 16 IRQs. 2016-07-14 14:35:25 +00:00
vioapic.h
vlapic_priv.h Fix a race wherein the source of an interrupt vector is wrongly 2014-03-15 23:09:34 +00:00
vlapic.c vmm(4): Small spelling fixes. 2016-05-03 22:07:18 +00:00
vlapic.h Add reserved bit checking when doing %CR8 emulation and inject #GP if required. 2014-06-09 20:51:08 +00:00
vpmtmr.c Don't require <sys/cpuset.h> to be always included before <machine/vmm.h>. 2015-04-30 22:23:22 +00:00
vpmtmr.h Change the type of the first argument to the I/O emulation handlers to 2014-10-26 19:03:06 +00:00
vrtc.c Don't require <sys/cpuset.h> to be always included before <machine/vmm.h>. 2015-04-30 22:23:22 +00:00
vrtc.h Replace bhyve's minimal RTC emulation with a fully featured one in vmm.ko. 2014-12-30 22:19:34 +00:00