freebsd-skq/usr.sbin/bhyve
neel 4626d164b8 Simplify APIC mode switching from MMIO to x2APIC. In part this is done to
simplify the implementation of the x2APIC virtualization assist in VT-x.

Prior to this change the vlapic allowed the guest to change its mode from
xAPIC to x2APIC. We don't allow that any more and the vlapic mode is locked
when the virtual machine is created. This is not very constraining because
operating systems already have to deal with BIOS setting up the APIC in
x2APIC mode at boot.

Fix a bug in the CPUID emulation where the x2APIC capability was leaking
from the host to the guest.

Ignore MMIO reads and writes to the vlapic in x2APIC mode. Similarly, ignore
MSR accesses to the vlapic when it is in xAPIC mode.

The default configuration of the vlapic is xAPIC. The "-x" option to bhyve(8)
can be used to change the mode to x2APIC instead.

Discussed with:	grehan@
2014-02-20 01:48:25 +00:00
..
acpi.c Allow PCI devices to be configured on all valid bus numbers from 0 to 255. 2014-02-14 21:34:08 +00:00
acpi.h Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
ahci.h Import Zhixiang Yu's GSoC'13 AHCI emulation: 2013-10-04 18:31:38 +00:00
atpic.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
bhyve.8 Update bhyve(8) man page to describe the usage of the "-s" option to assign 2014-02-14 21:46:04 +00:00
bhyverun.c Simplify APIC mode switching from MMIO to x2APIC. In part this is done to 2014-02-20 01:48:25 +00:00
bhyverun.h Changes required for OpenBSD/amd64: 2013-10-17 22:01:17 +00:00
block_if.c Increase the block-layer backend maximum number of requests to match 2014-01-22 01:56:49 +00:00
block_if.h Block-layer backend interface for bhyve block-io device emulations. 2013-10-04 16:52:03 +00:00
consport.c Mark the I/O ports used by the bhyve console and debug devices as system 2014-02-07 20:53:41 +00:00
dbgport.c Mark the I/O ports used by the bhyve console and debug devices as system 2014-02-07 20:53:41 +00:00
dbgport.h Change the behavior of bhyve such that the gdb listening port is opt-in 2013-10-08 16:36:17 +00:00
elcr.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
inout.c Add support for PCI-to-ISA LPC bridge emulation. If the LPC bus is attached 2013-10-29 00:18:11 +00:00
inout.h Support soft power-off via the ACPI S5 state for bhyve guests. 2013-12-24 16:14:19 +00:00
ioapic.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
ioapic.h Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
Makefile Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
mem.c Remove obsolete comment about lack of locking for MMIO range lookup. 2013-04-10 18:53:14 +00:00
mem.h Improve PCI BAR emulation: 2013-04-10 02:12:39 +00:00
mevent_test.c Add simplistic periodic timer support to mevent using kqueue's 2013-09-19 04:48:26 +00:00
mevent.c Extend the ACPI power management support to wire a virtual power button up 2013-12-28 04:01:05 +00:00
mevent.h Extend the ACPI power management support to wire a virtual power button up 2013-12-28 04:01:05 +00:00
mptbl.c Allow PCI devices to be configured on all valid bus numbers from 0 to 255. 2014-02-14 21:34:08 +00:00
mptbl.h Make the virtual ioapic available unconditionally in a bhyve virtual machine. 2013-10-31 05:44:45 +00:00
pci_ahci.c Provide an indication a "PIO Setup Device to Host FIS" occurred while executing 2014-02-12 00:32:14 +00:00
pci_emul.c Add a check to validate that memory BARs of passthru devices are 4KB aligned. 2014-02-18 19:00:15 +00:00
pci_emul.h Add a check to validate that memory BARs of passthru devices are 4KB aligned. 2014-02-18 19:00:15 +00:00
pci_hostbridge.c Changes required for OpenBSD/amd64: 2013-10-17 22:01:17 +00:00
pci_lpc.c Allow PCI devices to be configured on all valid bus numbers from 0 to 255. 2014-02-14 21:34:08 +00:00
pci_lpc.h Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
pci_passthru.c Add a check to validate that memory BARs of passthru devices are 4KB aligned. 2014-02-18 19:00:15 +00:00
pci_uart.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
pci_virtio_block.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
pci_virtio_net.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
pit_8254.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
pit_8254.h
pm.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
pmtmr.c Extend the ACPI power management support to wire a virtual power button up 2013-12-28 04:01:05 +00:00
post.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
rtc.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
rtc.h Implement RTC CMOS nvram. Init some fields that are used 2013-07-11 03:54:35 +00:00
spinup_ap.c Add a new capability, VM_CAP_ENABLE_INVPCID, that can be enabled to expose 2013-10-16 18:20:27 +00:00
spinup_ap.h
uart_emul.c Allow bhyve and bhyveload to attach to tty devices. 2013-11-27 00:21:37 +00:00
uart_emul.h Add support for PCI-to-ISA LPC bridge emulation. If the LPC bus is attached 2013-10-29 00:18:11 +00:00
virtio.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
virtio.h Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
xmsr.c Add an option to ignore accesses by the guest to unimplemented MSRs. 2013-12-19 22:27:28 +00:00
xmsr.h Add an option to ignore accesses by the guest to unimplemented MSRs. 2013-12-19 22:27:28 +00:00