acrn-hypervisor/hypervisor
Liu,Junming 041a7dec98 hv: refine the VMCS io bitmap handling when pass-thru PIO bar
In current design, when pass-thru dev,
for the PIO bar, need to ensure the guest PIO start address
equals to host PIO start address.
Then set the VMCS io bitmap to pass-thru the corresponding
port io to guest for performance.

But malicious guest may reprogram the PIO bar,
then hv will pass-thru the reprogramed PIO address to guest.
This isn't safe behavior.

Here only pass-thru the host physical device PIO to guest.
If guest regrogram the PIO bar, just update the virtual bar only.
Currently, we don't support PIO bar reprogramming,
if guest reprogram the PIO bar, guest should take responsibility itself

When init the pass-thru dev PIO bars, set the VMCS io bitmap.
setup_io_bitmap is called before init pass-thru dev to
initiailize the io bitmap, so don't need to
call deny_guest_pio_access when deinit pass-thru dev.

v1 -> v2:
	* set the VMCS io bitmap when init pass-thru devices
	to migrate redoing allow_guest_pio_access()/deny_guest_pio_access().

Tracked-On: #6508

Signed-off-by: Liu,Junming <junming.liu@intel.com>
2021-09-01 15:31:55 +08:00
..
acpi_parser hv: dm: Use new power management data structures 2021-07-15 11:53:54 +08:00
arch/x86 hv: Add check to ensure vcpu_make_request and signal_event are 2021-08-27 16:16:52 +08:00
boot HV: Add implements of 32bit and 64bit elf loader 2021-08-18 13:30:48 +08:00
bsp/ld HV: add a specific stack space used in CPU booting 2020-04-29 13:56:40 +08:00
common hv: GSI of hcall_set_irqline should be checked against target_vm 2021-08-25 08:49:03 +08:00
debug ACRN:hv: Fix vcpu_dumpreg command hang issue 2021-08-25 08:50:31 +08:00
dm hv: refine the VMCS io bitmap handling when pass-thru PIO bar 2021-09-01 15:31:55 +08:00
hw hv: ensure PTM root is always enabled in hw 2021-05-27 09:00:50 +08:00
include hv: Add check to ensure vcpu_make_request and signal_event are 2021-08-27 16:16:52 +08:00
lib HV: replace merge_cmdline api with strncat_s 2020-06-08 13:30:04 +08:00
quirks hv: quirks: SMBIOS passthrough for prelaunched-VM 2021-08-23 14:52:36 +08:00
release hv: debug: Add hv console callback to VM-exit event 2021-07-22 10:08:23 +08:00
scripts config_tools: remove obsolete kconfig files 2021-08-09 09:25:02 +08:00
MAINTAINERS update home page information 2018-05-15 17:19:39 +08:00
Makefile HV: Add elf loader sketch 2021-08-18 13:30:48 +08:00
README.rst doc: fix utf-8 punctuation, branding, spelling 2019-03-14 09:13:58 -07:00

ACRN Hypervisor
###############

The open source `Project ACRN`_ defines a device hypervisor reference stack and
an architecture for running multiple software subsystems, managed securely, on
a consolidated system by means of a virtual machine manager. It also defines a
reference framework implementation for virtual device emulation, called the
"ACRN Device Model".

The ACRN Hypervisor is a Type 1 reference hypervisor stack, running directly on
the bare-metal hardware, and is suitable for a variety of IoT and embedded
device solutions. The ACRN hypervisor addresses the gap that currently exists
between datacenter hypervisors, and hard partitioning hypervisors. The ACRN
hypervisor architecture partitions the system into different functional
domains, with carefully selected guest OS sharing optimizations for IoT and
embedded devices.

You can find out more about Project ACRN on the `Project ACRN documentation`_
website.

.. _`Project ACRN`: https://projectacrn.org
.. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor
.. _`Project ACRN documentation`: https://projectacrn.github.io/