libsel4vm
A guest hardware virtualisation library for X86 (32-bit) and ARM (aarch32 & aarch64) for use on seL4-based systems. Reference implementations using this library are:
For documentation on the libsel4vm interface see here
Features
- Hardware virtualisation support for the following architectures:
- ARM
- ARMv7 (+ Virtualisation Extensions)
- ARMv8
- X86
- IRQ Controller emulation
- GICv2 (aarch32, aarch64)
- PIC & LAPIC (ia32)
- Guest VM Memory and RAM Management
- Guest VCPU Fault and Context Management
- VM Runtime Management
Architecture Specific Features
ARM
- SMP support for GICv2 (ARM) platforms
X86
- IOPort fault registration handler
- VMCall handler registration interface
Potential future features (yet to be implemented)
Architecture Specific Features
ARM
- Virtual GICv3 support (aarch32 & aarch64)
- SMP support for GICv3 platforms
X86
- x86-64 support (Intel VTX)
- SMP support on x86 platforms (ia32 & x86_64)
Note: This is a consolidated library composed of libraries previously known as (but now deprecated) ‘libsel4vmm’ (x86) and ‘libsel4arm-vmm’ (arm).