mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-10-07 09:15:17 +00:00
Now, trampline code is used by both AP start and BSP s3 resume. For s3 resume, ACPI (5.2.10 Firmware ACPI Control Structure (FACS). table 5-37) defines the real mode address should be set to: realmode address = CS(waking_vec >> 4): IP(wakeing_vec & 0x000F) But not all bootloader (like ABL) follow ACPI definition about the CS:IP setup before jump to trampline code for S3 resume. To handle all these cases, a long jmp is issued at very beginning of trampline code to fixup the CS:IP setup. After the fixup, the CS is set to: (waking_vect >> 4), the IP is set to: (the_address_ of_next_instruction_of_long_jmp & 0xF). Which is aligned with ACPI definition. Another thing is that we can't calculate the fixup CS and IP value. The reason is related with limitations of real mode (can't get current ip address without stack). So we calculate the CS and IP when preparing the trampline code. Signed-off-by: Zheng Gen <gen.zheng@intel.com> Signed-off-by: Yin Fengwei <fengwei.yin@intel.com> Acked-by: Anthony Xu <anthony.xu@intel.com> Acked-by: Eddie Dong <Eddie.dong@intel.com>
Embedded-Hypervisor ################### This open source embedded hypervisor defines a software architecture for running multiple software subsystems managed securely on a consolidated system (by means of a virtual machine manager), and defines a reference framework Device Model implementation for devices emulation This embedded hypervisor is type-1 reference hypervisor, running directly on the system hardware. It can be used for building software defined cockpit (SDC) or In-Vehicle Experience (IVE) solutions running on Intel Architecture Apollo Lake platforms. As a reference implementation, it provides the basis for embedded hypervisor vendors to build solutions with an open source reference I/O mediation solution, and provides auto makers a reference software stack for SDC usage. This embedded hypervisor is able to support both Linux* and Android* as a Guest OS, managed by the hypervisor, where applications can run. This embedded hypervisor is a partitioning hypervisor reference stack, also suitable for non-automotive IoT & embedded device solutions. It will be addressing the gap that currently exists between datacenter hypervisors, hard partitioning hypervisors, and select industrial applications. Extending the scope of this open source embedded hypervisor relies on the involvement of community developers like you!