-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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]>
- Loading branch information
1 parent
e13b3fa
commit ee86c5f
Showing
24 changed files
with
1,141 additions
and
224 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
Oops, something went wrong.