tree: 67c93b4392062df399a9fee29aec8e5ab4364d6b [path history] [tgz]
  1. arch_include/
  2. docs/
  3. include/
  4. plat_include/
  5. src/
  6. CMakeLists.txt


A library containing various VMM utilities and drivers that can be used to construct a Guest VM on a supported platform. This library makes use of ‘libsel4vm’ to implement VMM support. Reference implementations using this library are:

For documentation on the libsel4vmmplatsupport interface see here


  • Virtio Support/Drivers
    • Virtio PCI
    • Virtio Console
    • Virtio Net
  • Cross VM connection/communication driver
  • Guest image loading utilities (e.g. kernel, initramfs)
  • libsel4vm memory helpers and utilities
  • IOPorts management interface

Architecture Specific Features

  • VCPU fault handler module
    • HSR/Exception decoding
    • HSR/Exception handler dispatching
    • SMC decoding + handling
  • PSCI handlers - through VCPU fault (+SMC handler) interface
  • Generic virtual device interfaces
    • Generic access controlled devices - control read/write privileges to specific devices
    • Generic forwarding devices - interfaces for dispatching faults to external handlers
  • Guest reboot utilities
  • Virtual USB driver
  • Guest OS Boot interfaces (for Linux VM's) : Boot VCPU initialisation
  • ACPI table generation
  • PCI device passthrough helpers
  • Guest OS Boot interfaces (for Linux VM's) : Boot VCPU initialisation, BIOS boot info structure generation, E820 map generation, VESA initialisation

Platform Specific Features

  • Virtual Clock device driver (Access Controlled Device)
  • Virtual IRQ combiner device driver
  • Virtual GPIO device driver
  • Virtual Power device driver
  • Virtual MCT device driver
  • Virtual UART UART device driver


  • USB Reboot Hooks

Potential future features (yet to be implemented)

  • Additional Virtio Driver Support
    • e.g Virtio Blk, Virtio RNG, Virtio Balloon
  • Block Driver support

Architecture Specific Features

  • Additional virtual devices for various supported platforms
  • Additional platform/board support
  • Generic virtual device interface (as supported on ARM platforms)
  • Additional virtual device support

Note: This is a consolidated library composed of libraries previously known as (but now deprecated) ‘libsel4vmm’ (x86), ‘libsel4arm-vmm’ (arm), libsel4vmmcore and libsel4pci.