Project ACRN™ Logo
2.5
Project ACRN v: 2.5
Document Versions
latest
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 to Project ACRN
    • ACRN Open Source Roadmap
    • ACRN High-Level Architecture
    • Usage Scenarios
      • Industrial Workload Consolidation
      • Automotive Application Scenarios
    • Best Known Configurations
      • SDC Scenario
      • Industry Scenario
      • Hybrid Scenario
      • Hybrid Real-Time (RT) Scenario
      • Logical Partition Scenario
    • Licensing
    • ACRN Device Model, Service VM, and User VM
    • Boot Sequence
    • ACRN Hypervisor Architecture
    • ACRN Device Model Architecture
    • Device Passthrough
      • Hardware Support for Device Passthrough
      • Hypervisor Support for Device Passthrough
    • ACRN I/O Mediator
    • Virtio Framework Architecture
  • 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
    • Getting Started Guide
      • Introduction
      • Verified Version
      • Prerequisites
      • Hardware Connection
      • Install the Ubuntu User VM (RTVM) on the SATA Disk
      • Install the Ubuntu Service VM on the NVMe Disk
      • Build and Install ACRN on Ubuntu
        • Pre-Steps
        • Build the ACRN Hypervisor on Ubuntu
        • Build and Install the ACRN Kernel
        • Install the Service VM Kernel and Modules
        • Update Grub for the Ubuntu Service VM
        • Enable Network Sharing for the User VM
        • Reboot the System
        • Additional Settings in the Service VM
      • Launch the RTVM
        • Update the Grub File
        • Launch the RTVM
      • Launch the Windows VM
      • Troubleshooting
        • Enabling the Network on the RTVM
        • Passthrough a Hard Disk to RTVM
    • Build ACRN From Source
      • Install Build Tools and Dependencies
      • Get the ACRN Hypervisor Source Code
      • Build With the ACRN Scenario
      • Modify the Hypervisor Configuration
    • Getting Started Guide for ACRN Industry Scenario With ROScube-I
      • Verified Version
      • Architecture
      • Prerequisites
      • Install ACRN Hypervisor
        • Set Up Environment
        • Configure Hypervisor
      • Install Service VM Kernel
        • Build Service VM Kernel
        • Update Grub
      • Install User VM
        • Before Create User VM
        • Create User VM Image
        • Run User VM
      • Install Real-Time VM
        • Copy Real-Time VM Image
        • Set Up Real-Time VM
        • Run Real-Time VM
      • Customizing the Launch File
        • CPU
        • Memory
        • Ethernet
        • USB
        • GPIO
    • 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
  • Advanced Guides
    • Configuration and Tools
      • Introduction to ACRN Configuration
        • Types of Configurations
        • Using ACRN Configuration Toolset
        • ACRN Configuration Data
        • Use the ACRN Configuration Editor
      • Scenario Configuration Options
        • Common Option Value Types
        • hv
        • vm
      • ACRN Hypervisor Parameters
        • Generic Hypervisor Parameters
      • ACRN Kernel Parameters
        • Generic Kernel Parameters
        • Intel GVT-g (AcrnGT) Parameters
      • ACRN Shell Commands
        • Command Examples
      • Device Model Parameters
      • ACRN-Crashlog
        • Introduction
        • Building
        • Installing
        • Enabling/Disabling
        • Usage
        • Source Code
      • 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
      • 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
    • 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
    • Enable ACRN 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
  • 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
        • Virtual Bootloader
        • Security
      • Software Design Guidelines
        • Error Detection and Error Handling
        • Module Level Configuration Design Guidelines
        • References
      • GVT-g Enabling and Porting Guide
        • Introduction
        • Purpose of This Document
        • Overall Components
        • Core Scenario Interaction Sequences
        • API Details
      • 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
        • ACRN GVT-g APIs
  • Release Notes
    • 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.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.5 »
  • 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 / VHM upcall
  • Compile-time configuration
  • RDT support
  • Split-locked Access handling
Next Previous

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