Project ACRN™
0.2
Introduction to Project ACRN
Automotive Use Case Example
Licensing
ACRN Device Model, Service OS, and User OS
Boot Sequence
ACRN Hypervisor Architecture
ACRN Device Model Architecture
Device pass through
Hardware support for device passthrough
Hypervisor support for device passthrough
ACRN I/O mediator
Virtio framework architecture
Getting Started Guides
Getting started guide for Intel NUC
Hardware setup
Firmware update on the NUC
Software setup
Set up a Clear Linux Operating System
Add the ACRN hypervisor to the EFI Partition
ACRN Network Bridge
Set up Reference UOS
Device Manager memory allocation mechanism
Build ACRN from Source
Install build tools and dependencies
Build the hypervisor, device model and tools
Generate the hypervisor configurations
Modify the hypervisor configurations
Create a new default configuration
Getting started guide for UP2 board
Hardware setup
Connecting to the serial port
Software setup
UP2 serial port setting
UP2 block device
Running the hypervisor
Supported Hardware
Intel Apollo Lake NUC
UP Squared board
User Guides
ACRN Shell Commands
Tools
ACRN-Crashlog
Introduction
Building
Installing
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
Souce Code
acrnctl and acrnd
Description
Usage
acrnd
Build and Install
acrnlog
Description
Usage
Build and Install
acrntrace
Description
Usage
Build and Install
Developer Guides
Developer Primer
Source Tree Structure
ACRN hypervisor source tree
ACRN Device Model source tree
ACRN Tools source tree
ACRN documentation source tree
CPU virtualization
Host GDT
Host IDT
Guest SMP Booting
VMX configuration
CPUID and Guest TSC calibration
RDTSC/RDTSCP
CR Register virtualization
MSR BITMAP
I/O BITMAP
Exceptions
Memory virtualization
Physical Memory Layout
PV (MMU) Memory Mapping in the Hypervisor
PV (MMU) Memory Mapping in VMs
Host-Guest (EPT) Memory Mapping
Graphic mediation
I/O emulation
Device Assignment Management
PIO/MMIO trap Flow
Virtual interrupt
Virtual LAPIC
Virtual IOAPIC
Virtual PIC
Virtual Interrupt Injection
VT-x and VT-d
Hypercall
Device emulation
Virtio Devices
Virtio-rnd
Virtio-blk
Virtio-net
Virtio-console
API Documentation
Hypercall APIs
Device Model APIs
ACRN GVT-g APIs
Core Driver Infrastructure
VHM APIs called from AcrnGT
AcrnGT mediated pass-through (MPT) interface
GVT-g intel_gvt_ops interface
AcrnGT sysfs interface
Configuration Symbol Reference
Introduction
Supported Options
High-Level Design Guides
ACPI Virtualization high-level design
ACPI introduction
ACPI virtualization
GVT-g high-level design
Introduction
Background
Mediated Pass-Through
High Level Architecture
Key Techniques
AcrnGT
GVT-g Enabling and Porting Guide
Introduction
Purpose of this document
Overall Components
Core scenario interaction sequences
API details
Interrupt Management high-level design
Overview
Hypervisor Physical Interrupt Management
Guest Virtual Interrupt Management
Memory Management high-level design
Overview
Hypervisor Memory Management
Service OS Memory Management
User OS Memory Management
Memory Interaction
Network Virtualization
Introduction
Supported Features Notes
ACRN Virtio-Network Calling Stack
Security high-level design
Introduction
Background
ACRN High-Level Security Architecture
UART Virtualization
Architecture
Virtio high-level design
Virtio Device
Virtio-Console High-Level design
Console Backend Use Cases
Watchdog Virtualization in Device Model
Overview
UOS watchdog work flow
Implementation in ACRN and how to use it
Contributing to the project
Contribution Guidelines
Licensing
Developer Certification of Origin (DCO)
Prerequisites
Repository layout
Submitting Issues
Contribution Tools and Git Setup
Coding Style
Contribution Workflow
Commit Guidelines
Documentation Guidelines
Headings
Content Highlighting
Lists
Multi-column lists
File names and Commands
Internal Cross-Reference Linking
Non-ASCII Characters
Code and Command Examples
Tabs, spaces, and indenting
Drawings
Drawings using graphviz
Simple directed graph
Adding edge labels
Tables
Finite-State Machine
Tutorials
ACRN documentation generation
Documentation overview
Set up the documentation working folders
Installing the documentation tools
Documentation presentation theme
Running the documentation processors
Publishing content
Document Versioning
Filtering expected warnings
Using a static IP address
ACRN Network Setup
Setting up the static IP address
Activate the new configuration
Using Ubuntu as the Service OS
Install Ubuntu (natively)
Install ACRN
Install the Service OS kernel
Prepare the User OS (UOS)
Start the User OS (UOS)
Enabling network sharing
Enabling USB keyboard and mouse
Release Notes
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
Project ACRN™
Docs
»
User Guides
»
Tools
Tools
¶
ACRN-Crashlog
acrnprobe
acrnprobe Configuration
usercrash
acrnctl and acrnd
acrnlog
acrntrace
Project ACRN
v: 0.2
Versions
latest
0.2
0.1
On projectacrn.org
Project Home
Wiki