Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dornerworks x64 VM patch #5

Merged
merged 4 commits into from
May 12, 2021

Commits on Apr 9, 2021

  1. 64-bit-vms: Add 64-bit VM support to VMM

    This large commit combines a number of smaller commits in order to add
    64-bit VM support to the VMM. The commits do the following:
    
        * Load elfs of the same architecture size
        * Support reading 64-bit vaddrs from elf files
        * Create initial address space based on guest architecture
        * Allow instruction decoding of 4-level paging scheme
        * Do not exit VMX state based on CR3 load/store in 64-bit mode
        * Use seL4_Word for vmcs and user context fields
        * Handle additional general purpose registers
        * Handle 64-bit MSRs
        * Configure 64-bit guests to boot in long mode
        * Let guest know about 64-bit hardware features in 64-bit mode
        * Add FADT and DSDT tables
        * Track guest state for additional 64-bit registers
        * Add new function to print 64-bit guest context
        * Properly emulate 64-bit trampoline code
        * Define access rights macros for vmcs initialization
        * Hardcode FADT table information
        * Set an initial stack pointer before running guest
        * Handle fetching cross-page instructions
        * Add additional x86 instruction prefixes
    
    CCDC-GVSC DISTRIBUTION A.  Approved for public release; distribution
    unlimited. OPSEC#4481.
    
    Co-authored-by: Chris Guikema <[email protected]>
    Signed-off-by: Damon Lee <[email protected]>
    2 people authored and Damon Lee committed Apr 9, 2021
    Configuration menu
    Copy the full SHA
    a956dfa View commit details
    Browse the repository at this point in the history
  2. trivial: Fix compiler warnings

    Signed-off-by: Damon Lee <[email protected]>
    Damon Lee authored and Damon Lee committed Apr 9, 2021
    Configuration menu
    Copy the full SHA
    adf3588 View commit details
    Browse the repository at this point in the history
  3. libsel4vm: Force optimisation level for release

    As the comment in the file explains, optimisation level -O3 on gcc 8.4
    is too aggressive and causes issues for the guest VM. The problem isn't
    limited to a single function or group of functions but rather the entire
    file for some reason that requires extra investigation (but is not worth
    the time to do so).
    
    Signed-off-by: Damon Lee <[email protected]>
    Damon Lee authored and Damon Lee committed Apr 9, 2021
    Configuration menu
    Copy the full SHA
    0f9286d View commit details
    Browse the repository at this point in the history

Commits on Apr 15, 2021

  1. acpi: track vaddr of ACPI tables

    Previously, the physical address of the ACPI tables were being
    tracked. This caused a Linux error while parsing the ACPI tables. Since
    Linux does not have access to those memory regions, they would appear
    empty, causing an Invalid Table Length bug print. By tracking the
    virtual address that Linux expects and placing the vaddr into the ACPI
    tables, Linux can parse the tables properly.
    
    Signed-off-by: Chris Guikema <[email protected]>
    chrisguikema authored and Damon Lee committed Apr 15, 2021
    Configuration menu
    Copy the full SHA
    6c21c8a View commit details
    Browse the repository at this point in the history