-
Notifications
You must be signed in to change notification settings - Fork 530
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
doc: update release_2.1 with new docs
Signed-off-by: David B. Kinder <[email protected]>
- Loading branch information
Showing
28 changed files
with
544 additions
and
413 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
.. _mmio-device-passthrough: | ||
|
||
MMIO Device Passthrough | ||
######################## | ||
|
||
The ACRN Hypervisor supports both PCI and MMIO device passthrough. | ||
However there are some constraints on and hypervisor assumptions about | ||
MMIO devices: there can be no DMA access to the MMIO device and the MMIO | ||
device may not use IRQs. | ||
|
||
Here is how ACRN supports MMIO device passthrough: | ||
|
||
* For a pre-launched VM, the VM configuration tells the ACRN hypervisor | ||
the addresses of the physical MMIO device's regions and where they are | ||
mapped to in the pre-launched VM. The hypervisor then removes these | ||
MMIO regions from the Service VM and fills the vACPI table for this MMIO | ||
device based on the device's physical ACPI table. | ||
|
||
* For a post-launched VM, the same actions are done as in a | ||
pre-launched VM, plus we use the command line to tell which MMIO | ||
device we want to pass through to the post-launched VM. | ||
|
||
If the MMIO device has ACPI Tables, use ``--acpidev_pt HID`` and | ||
if not, use ``--mmiodev_pt MMIO_regions``. | ||
|
||
.. note:: | ||
Currently, the vTPM and PT TPM in the ACRN-DM have the same HID so we | ||
can't support them both at the same time. The VM will fail to boot if | ||
both are used. | ||
|
||
These issues remain to be implemented: | ||
|
||
* Save the MMIO regions in a field of the VM structure in order to | ||
release the resources when the post-launched VM shuts down abnormally. | ||
* Allocate the guest MMIO regions for the MMIO device in a guest-reserved | ||
MMIO region instead of being hard-coded. With this, we could add more | ||
passthrough MMIO devices. | ||
* De-assign the MMIO device from the Service VM first before passing | ||
through it to the post-launched VM and not only removing the MMIO | ||
regions from the Service VM. |
Oops, something went wrong.