acrn-hypervisor/hypervisor
Zide Chen cf1515d63c hv: optimize the assignment of load addresses for multiboot images
bootargs_load_addr (GPA) and zero page which locates at one page follows it:
- SOS: currently it's fixed at 0x24EFC000. Theoretically, this address may
  not exist if the system has small memory size.
- pre-launched VMs: currently it's at (vm_config->memory.size - 8KB).
  It doesn't work if the guest has been assigned for more than 4GB memory
  size, because zero page must be under 4GB.
- This patch reserves 8KB for bootargs_load_addr right before kernel_load_addr
  for either SOS or pre-launched VMs.

ramdisk_load_addr (GPA):
- pre-launched VMs: currently it doesn't allow ramdisk.
- SOS: currently it's assigned at mods[].mm_mod_start. It's a bug because it
  misses the hpa2gpa() conversion.
- This patch puts ramdisk_load_addr right after (kernel_load_addr + kernel_size),
  which has 2 benefits:
  - for pre-launched VMs, mods[].mm_mod_start may be out of its GPA range.
  - it may be better to consolidate everything (bootarg, kernel, ramdisk) in
    consecutive GPA, other than spread them out in different places.

Tracked-On: #2587
Signed-off-by: Zide Chen <zide.chen@intel.com>
Reviewed-by: Eddie Dong <eddie.dong@intel.com>
Reviewed-by: Victor Sun <victor.sun@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
2019-02-27 09:54:42 +08:00
..
arch/x86 HV: remove default folder in configs 2019-02-26 17:04:49 +08:00
boot hv: optimize the assignment of load addresses for multiboot images 2019-02-27 09:54:42 +08:00
bsp HV: Modularize vtd.c to remove acrn_vm usage 2019-02-06 08:53:46 +08:00
common HV: return an error code when REQ state mismatch in acrn_insert_request 2019-02-26 09:23:24 +08:00
debug hv: code style fix for partition mode specific code 2019-02-26 14:00:32 +08:00
dm HV: remove pbdf from struct pci_vdev 2019-02-25 09:03:09 +08:00
hw HV: define function bdf_is_equal() to compare bdf 2019-02-25 09:03:09 +08:00
include HV: vpci_vdev_array cleanup 2019-02-26 17:04:49 +08:00
lib hv: fix identifier reuse violations in sha256.c 2019-01-16 10:24:49 +08:00
release hv: shell & vuart: Change interrupt pin to uint32_t 2019-01-10 23:52:25 +08:00
scripts Makefile: separate PLATFORM into BOARD+FIRMWARE 2018-12-12 13:23:28 +08:00
Kconfig HV: config: add Kconfig and defconfigs for sbl & uefi 2018-06-08 17:21:13 +08:00
MAINTAINERS update home page information 2018-05-15 17:19:39 +08:00
Makefile HV: remove default folder in configs 2019-02-26 17:04:49 +08:00
README.rst Documentation: clean-up of isolated README.rst files 2018-11-20 11:09:53 -08: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/