Project ACRN™ Logo
2.6
Project ACRN v: 2.6
Document Versions
latest
2.5
2.4
2.3
2.2
2.1
2.0
1.6.1
1.6
1.5
1.4
1.0
projectacrn.org links
Project Home
Wiki
  • Documentation Home
  • What Is ACRN
    • Introduction
    • Licensing
    • Key Capabilities
    • Background
    • High-Level Architecture
    • ACRN Device Model Architecture
    • Device Passthrough
      • Hardware Support for Device Passthrough
      • Hypervisor Support for Device Passthrough
    • Static Configuration Based on Scenarios
    • Predefined Sample Scenarios
    • Boot Sequence
    • Learn More
  • Getting Started
    • Supported Hardware
      • Minimum System Requirements for Installing ACRN
      • Minimum Requirements for Processor
      • Known Limitations
      • Tested Platforms by ACRN Release
      • Tested Hardware Specifications Detail
    • Configuration and Development Overview
      • Development Environment
      • General Process for Building an ACRN Hypervisor
      • Step 1: Select Hardware and Scenario
        • Select Your Hardware
        • Select Your Scenario
      • Step 2: Prepare the Development Computer
      • Step 3: Generate a Board Configuration File
        • Configure BIOS Settings
        • Use the Board Inspector to Generate a Board Configuration File
      • Step 4: Generate a Scenario Configuration File and Launch Scripts
        • Generate a Scenario Configuration File
        • Generate Launch Scripts
      • Step 5: Build ACRN
      • Step 6: Install and Run ACRN
      • Next Steps
    • Getting Started Guide
      • Prerequisites
      • Set Up the Hardware
      • Prepare the Development Computer
      • Prepare the Target and Generate a Board Configuration File
        • Install OS on the Target
        • Configure Target BIOS Settings
        • Generate a Board Configuration File
      • Generate a Scenario Configuration File and Launch Script
      • Build ACRN
      • Install ACRN
      • Run ACRN and the Service VM
      • Launch the User VM
      • Next Steps
  • Advanced Guides
    • Advanced Scenario Tutorials
      • Getting Started Guide for ACRN Hybrid Mode
        • Set-up base installation
        • Prepare the Zephyr image
        • Set-up ACRN on your device
        • Update Ubuntu GRUB
        • Hybrid Scenario Startup Check
      • Getting Started Guide for ACRN Logical Partition Mode
        • Validated Versions
        • Prerequisites
        • Update Kernel Image and Modules of Pre-Launched VM
        • Update ACRN Hypervisor Image
        • Update Ubuntu GRUB to Boot Hypervisor and Load Kernel Image
        • Logical Partition Scenario Startup Check
    • Service VM Tutorials
      • Run Debian as the Service VM
        • Prerequisites
        • Validated Versions
        • Install ACRN on the Debian VM
        • Enable Network Sharing to Give Network Access to the User VM
      • Using Yocto Project With ACRN
        • The meta-acrn Layer
    • User VM Tutorials
      • Launch Windows as the Guest VM on ACRN
        • ACRN Service VM Setup
        • Setup for Using Windows as the Guest VM
        • ACRN Windows Verified Feature List
        • Explanation for acrn-dm Popular Command Lines
        • Secure Boot Enabling
        • Activate Windows 10
      • Run Ubuntu as the User VM
        • Prerequisites
        • Build the Ubuntu KVM Image
        • Launch the Ubuntu Image as the User VM
        • Enable the Ubuntu Console Instead of the User Interface
      • Run Debian as the User VM
        • Prerequisites
        • Build the Debian KVM Image
        • Launch the Debian Image as the User VM
        • Enable the ttyS0 Console on the Debian VM
      • Run Xenomai as the User VM OS (Real-Time VM)
        • Build the Xenomai Kernel
        • Launch the RTVM
        • Install the Xenomai Libraries and Tools
      • Run VxWorks as the User VM
        • Steps for Using VxWorks as User VM
      • Run Zephyr as the User VM
        • Introduction to Zephyr
        • Steps for Using Zephyr as User VM
    • Configuration Tutorials
      • Introduction to ACRN Configuration
        • Types of Configurations
        • Using ACRN Configuration Toolset
        • ACRN Configuration Data
      • Board Inspector Tool
        • About the Board Inspector Tool
        • Generate a Board Configuration File
        • Command-Line Options
      • ACRN Configurator Tool
        • About the ACRN Configurator Tool
        • Generate a Scenario Configuration File and Launch Scripts
      • Scenario Configuration Options
        • Common Option Value Types
        • hv
        • vm
      • Launch Configuration Options
      • Hypervisor Makefile Options
        • Build Options and Targets
        • Makefile Targets for Configuration
      • ACRN Hypervisor Parameters
        • Generic Hypervisor Parameters
      • ACRN Kernel Parameters
        • Generic Kernel Parameters
      • Device Model Parameters
      • ACRN Installation via Debian Packages
        • Set Up Prerequisites
        • Configure Debian Packaging Details
        • Run the Package-Building Script
        • Prepare Your Target System With Ubuntu 18.04
        • Install Debian Packages on Your Target System
        • Boot ACRN Using the Multiboot2 Grub Choice
        • Verify ACRN Is Running
    • Advanced Features
      • Enable SGX Virtualization
        • High Level ACRN SGX Virtualization Design
        • Enable SGX Support for Guest
        • SGX Capability Exposure
        • Enclave System Function Handling
        • Other VMExit Control
        • Future Development
      • Enable Nested Virtualization
        • High Level ACRN Nested Virtualization Design
        • Restrictions and Constraints
        • Service OS VM configuration
        • Prepare for Service VM Kernel and rootfs
        • Launch a Nested Guest VM
      • Enable vUART Configurations
        • Introduction
        • Console Enable List
        • How to Configure a Console Port
        • How to Configure a Communication Port
        • Communication vUART Enable List
        • Launch Script
        • Test the Communication Port
        • vUART Design
        • COM Port Configurations for Post-Launched VMs
      • Use PCI-vUART
        • PCI Interface of ACRN vUART
        • Index of vUART
        • Setup ACRN vUART Using Configuration Tools
        • Kernel Config for Legacy vUART
        • Kernel Cmdline for PCI-vUART Console
      • Enable RDT Configuration
        • RDT Detection and Resource Capabilities
        • Tuning RDT Resources in HV Debug Shell
        • Configure RDT for VM Using VM Configuration
      • Enable Secure Boot in Windows
        • Generate Platform Key (PK)
        • Download KEK and DB From Microsoft
        • Compile OVMF With Secure Boot Support
        • Use QEMU to Inject Secure Boot Keys Into OVMF
      • Enable S5 in ACRN
        • Introduction
        • S5 Architecture
        • Enable S5
        • How to Test
        • System Shutdown
      • Enable CPU Sharing in ACRN
        • Introduction
        • Scheduling Framework
        • CPU Affinity
        • Thread Object State
        • Scheduler
        • Example
      • Enable SR-IOV Virtualization
        • SR-IOV Architectural Overview
      • Enable GVT-d in ACRN
        • Introduction
        • Verified Version
        • Prerequisites
        • Supported Hardware Platform
        • BIOS Settings
        • Passthrough the GPU to Guest
        • Enable the GVT-d GOP Driver
      • Run Kata Containers on a Service VM
        • Prerequisites
        • Install Docker
        • Install Kata Containers
        • Run a Kata Container With ACRN
      • Trusty and Security Services Reference
        • Trusty Architecture
        • Trusty Services
        • Trusty in ACRN
      • Real-Time VM Application Design Guidelines
        • Run RTVM With Dedicated Resources/Devices
        • RTVM With Virtio PMD (Polling Mode Driver) for I/O Sharing
        • RTVM With HV Emulated Device
        • DM Emulated Device (Except PMD)
      • Configure ACRN Using OpenStack and Libvirt
        • Introduction
        • Install ACRN
        • Set Up and Launch LXC/LXD
        • Set Up ACRN Prerequisites Inside the Container
        • Set Up Libvirt
        • Set Up OpenStack
        • Configure and Create OpenStack Instance
        • Final Steps
      • Enable ACRN Over QEMU/KVM
        • Prerequisites
        • Prepare Service VM (L1 Guest)
        • Install ACRN Hypervisor
        • Bring-Up User VM (L2 Guest)
      • Using GRUB to Boot ACRN
        • Using Pre-Installed GRUB
        • Installing Self-Built GRUB
      • Enable ACRN Secure Boot With GRUB
        • ACRN Secure Boot Sequence
        • Generate GPG Key
        • Setup Standalone GRUB EFI Binary
        • Enable UEFI Secure Boot
      • Enable ACRN Secure Boot With EFI-Stub
        • Introduction
        • Verified Configurations
        • Building
        • Installing (without SB for testing)
        • Signing
      • Pre-Launched Preempt-Rt Linux Mode in ACRN
        • Prerequisites
        • Example of Pre-Launched RT
      • Enable Inter-VM Communication Based on Ivshmem
        • Enable Ivshmem Support
        • Ivshmem DM-Land Usage
        • Ivshmem HV-Land Usage
        • Ivshmem Notification Mechanism
        • Inter-VM Communication Examples
    • Debug
      • Enable Serial Port on NUC
        • Option 1: Using the Serial Port on TGL Intel NUC
        • Option 2: Enabling PCIe Serial Port on TGL Intel NUC
      • ACRN Debugging Tools
        • ACRN Console Command
        • An Example
        • ACRN Log
        • ACRN Trace
      • ACRN Real-Time (RT) Performance Analysis
        • vmexit Analysis for ACRN RT Performance
        • Collecting Performance Monitoring Counters Data
      • ACRN Real-Time VM Performance Tips
        • Background
        • Mandatory Options for an RTVM
        • Avoid VM-exit Latency
        • Isolating the Impact of Neighbor VMs
        • Miscellaneous
      • ACRN Shell Commands
        • Command Examples
      • ACRN-Crashlog
        • Introduction
        • Building
        • Installing
        • Enabling/Disabling
        • Usage
        • Source Code
      • Acrnprobe
        • Description
        • Usage
        • Architecture
        • Source Files
        • Configuration Files
      • Acrnprobe Configuration
        • Description
        • Layout
        • Properties of Group Members
        • Crash Tree in Acrnprobe
        • Sections
      • Usercrash
        • Description
        • Design
        • Usage
        • Source Code
      • Acrnlog
        • Description
        • Usage
        • Build and Install
      • Acrntrace
        • Description
        • Usage
        • Build and Install
      • Acrnctl and Acrnd
        • Description
        • Acrnd
        • Build and Install
  • Developer Reference
    • Design Guides
      • ACRN Hypervisor: Modular Design
        • Overview
        • Principles
        • Architecture
        • References
      • High-Level Design Guides
        • Overview
        • Hypervisor
        • Device Model
        • Emulated Devices
        • Virtio Devices
        • Power Management
        • Tracing and Logging
        • Security
      • Software Design Guidelines
        • Error Detection and Error Handling
        • Module Level Configuration Design Guidelines
        • References
      • Trusty TEE
        • Introduction
        • Trusty Architecture
        • Trusty Specific Hypercalls
        • Trusty Boot Flow
        • EPT Hierarchy
      • L1 Terminal Fault Mitigation
        • Overview
        • L1TF Problem in ACRN
        • L1TF Mitigation in ACRN
        • Mitigation Recommendations
        • Mitigation Status
      • VBS-K Framework Virtualization Overhead Analysis
        • Introduction
        • Architecture of VIRTIO-ECHO
        • Virtualization Overhead Analysis
        • Conclusion
    • Contribute Guides
      • Contribution Guidelines
        • Licensing
        • Developer Certification of Origin (DCO)
        • Prerequisites
        • Repository Layout
        • Submitting Issues
        • Contribution Tools and Git Setup
        • Coding Style
        • Contribution Workflow
        • Commit Guidelines
      • Coding Guidelines
        • C Programming Language Coding Guidelines
        • Assembly Language Coding Guidelines
      • Documentation Guidelines
        • Headings
        • Content Highlighting
        • Lists
        • Multi-Column Lists
        • Tables
        • File Names and Commands
        • Branch-Specific File Links
        • Internal Cross-Reference Linking
        • Non-ASCII Characters
        • Code and Command Examples
        • Images
        • Tabs, Spaces, and Indenting
        • Drawings
        • Alternative Tabbed Content
        • Instruction Steps
        • First Instruction Step
        • Second Instruction Step
        • Configuration Option Documentation
        • Documentation Generation
      • Drawings Using Graphviz
        • Simple Directed Graph
        • Adding Edge Labels
        • Tables
        • Finite-State Machine
      • ACRN Documentation Generation
        • Documentation Overview
        • Set Up the Documentation Working Folders
        • Install the Documentation Tools
        • Documentation Presentation Theme
        • Run the Documentation Processors
        • Publish Content
        • Document Versioning
        • Filter Expected Warnings
    • API Documentation
      • API Documentation
        • Hypercall APIs
        • Device Model APIs
  • Release Notes
    • ACRN v2.6 (Sep 2021)
      • What’s New in v2.6
      • Upgrading to v2.6 From Previous Releases
        • Generate New Board XML
        • Add New Configuration Options
      • Document Updates
      • Fixed Issues Details
      • Known Issues
    • ACRN v2.5.1 (Aug 2021)
      • What’s New in v2.5.1
      • Fixed Issues Details
    • ACRN v2.5 (Jun 2021)
      • What’s New in v2.5
      • Upgrading to v2.5 From Previous Releases
        • Generate New Board XML
        • Add New Configuration Options
      • Document Updates
      • Fixed Issues Details
      • Known Issues
    • ACRN v2.4 (Apr 2021)
      • What’s New in v2.4
        • ACRN Configuration and Build
      • Upgrading to v2.4 From Previous Releases
        • Additional Dependencies
        • Configuration File Format
        • New Configuration Options
        • Build Commands
        • Patches on Generated Sources
      • Document Updates
        • Deprivileged Boot Mode Support
      • Fixed Issues Details
      • Known Issues
    • ACRN v2.3 (Dec 2020)
      • What’s New in v2.3
      • Document Updates
      • Fixed Issues Details
      • Known Issues
    • ACRN v2.2 (Sep 2020)
      • What’s New in v2.2
      • Document Updates
      • Fixed Issues Details
      • Known Issues
    • ACRN v2.1 (Aug 2020)
      • What’s New in v2.1
      • Fixed Issues Details
      • Known Issues
    • ACRN v2.0 (Jun 2020)
      • Version 2.0 Key Features (Comparing With v1.0)
        • ACRN Architecture Upgrade to Support Hybrid Mode
        • New Hardware Platform Support
        • Pre-Launched Safety VM Support
        • Post-Launched VM Support via OVMF
        • Post-Launched Real-Time VM Support
        • Real-Time VM Performance Optimizations
        • CPU Sharing Support
        • Large Selection of OSs for User VMs
        • GRUB Bootloader
        • SR-IOV Support
        • Graphics Passthrough Support
        • Shared Memory Based Inter-Vm Communication
        • Configuration Tool Support
        • Kata Containers Support
        • VM Orchestration
        • Document Updates
      • Fixed Issues Details
      • Known Issues
    • ACRN v1.6.1 (May 2020)
      • Version 1.6.1 Major Features
        • What’s New in v1.6.1
        • Document Updates
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.6 (Mar 2020)
      • Version 1.6 Major Features
        • What’s New in v1.6
        • Document Updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.5 (Jan 2020)
      • Version 1.5 Major Features
        • What’s New in v1.5
        • Document Updates
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.4 (Oct 2019)
      • Version 1.4 Major Features
        • What’s New in v1.4
        • Document Updates
      • Security Vulnerabilities
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.3 (Sep 2019)
      • Version 1.3 Major Features
        • What’s New in v1.3
        • Document Updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.2 (Aug 2019)
      • Version 1.2 Major Features
        • What’s New in v1.2
        • Document Updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.1 (Jun 2019)
      • Version 1.1 Major Features
        • Hybrid Mode Introduced
        • Support for New Guest Operating Systems
        • Document Updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v1.0.2 (Nov 2019)
      • Change Log in v1.0.2 Since v1.0.1
    • ACRN v1.0.1 (July 2019)
      • Change Log in Version 1.0.1 Since Version 1.0
    • ACRN v1.0 (May 2019)
      • Version 1.0 Major Features
        • Hardware Support
        • APL UP2 Board With SBL Firmware
        • Enable Post-Launched RTVM Support for Real-Time UOS in ACRN
        • Enable Cache QOS With CAT
        • Enable QoS Based on runC Container
        • S5 Support for RTVM
        • OVMF Support Initial Patches Merged in ACRN
        • Support ACPI Power Key Mediator
        • VT-x, VT-d
        • PIC/IOAPIC/MSI/MSI-X/PCI/LAPIC
        • Ethernet
        • Mass Storage
        • USB (xDCI)
        • USB Mediator (xHCI)
        • Wi-Fi
        • IPU (MIPI CSI-2, HDMI-In)
        • Bluetooth
        • GVT-g for ACRN
        • GPU - Preemption
        • GPU - Display Surface Sharing via Hyper DMA
        • Virtio Standard Is Supported
        • Device Pass-Through Support
        • GPIO Virtualization
        • New ACRN Tools
        • Document Updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v0.8 (Apr 2019)
      • Version 0.8 New Features
        • GPIO Virtualization
        • Enable QoS Based on runC Container
        • S5 Support for RTVM
        • Document Updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v0.7 (Mar 2019)
      • Version 0.7 New Features
        • Enable Cache QOS With CAT
        • Support ACPI Power Key Mediator
        • Document Updates
      • New Features Details
      • Fixed Issues Details
      • Known Issues
      • Change Log
    • ACRN v0.6 (Feb 2019)
      • Version 0.6 New Features
      • Fixed Issues
      • Known Issues
      • Change Log
    • ACRN v0.5 (Jan 2019)
      • Version 0.5 New Features
      • Fixed Issues
      • Known Issues
      • Change Log
    • ACRN v0.4 (Dec 2018)
      • Version 0.4 New Features
      • Fixed Issues
      • Known Issues
      • Change Log
    • ACRN v0.3 (Nov 2018)
      • Version 0.3 New Features
      • Fixed Issues
      • Known Issues
      • Change Log
    • ACRN v0.2 (Sep 2018)
      • Version 0.2 New Features
        • VT-x, VT-d
        • PIC/IOAPIC/MSI/MSI-X/PCI/LAPIC
        • Ethernet
        • Storage (eMMC)
        • USB (xDCI)
        • USB Mediator (xHCI and DRD)
        • CSME
        • WiFi
        • IPU (MIPI-CS2, HDMI-In)
        • Bluetooth
        • GPU - Preemption
        • GPU - Display Surface Sharing via Hyper DMA
        • S3
      • Fixed Issues
      • Known Issues
      • Change Log
    • ACRN v0.1 (July 2018)
      • Version 0.1 New Features
        • Hardware Support
        • GVT-g for ACRN
        • Virtio Standard Is Supported
        • Device Pass-Through Support
        • Hypervisor Configuration
        • New ACRN Tools
      • Known Issues
      • Change Log
  • Security Advisory
    • Addressed in ACRN v2.6
    • Addressed in ACRN v2.5
    • Addressed in ACRN v2.3
    • Addressed in ACRN v2.1
    • Addressed in ACRN v1.6.1
    • Addressed in ACRN v1.6
    • Addressed in ACRN v1.4
  • FAQ
    • What Hardware Does ACRN Support?
    • How Do I Configure ACRN’s Memory Size?
    • Why Does ACRN Need to Know How Much RAM the System Has?
  • Glossary of Terms
  • Index
Project ACRN™
  • 2.6 »
  • Developer Reference »
  • High-Level Design Guides »
  • Hypervisor High-Level Design

Hypervisor High-Level Design¶

  • Hypervisor Startup
  • VM Management
  • CPU Virtualization
  • Memory management
  • I/O Emulation
  • IOC Virtualization
  • Physical Interrupt
  • Timer
  • Virtual Interrupt
  • VT-d
  • Device Passthrough
  • MMIO Device Passthrough
  • Partition Mode
  • Power Management
  • Console, Shell, and vUART
  • Hypercall / HSM upcall
  • Compile-time configuration
  • RDT support
  • Split-locked Access handling
Next Previous

© Copyright 2018-2021, Project ACRN™. Last updated on Sep 29, 2021.