| # |
| # Copyright 2018, Data61 |
| # Commonwealth Scientific and Industrial Research Organisation (CSIRO) |
| # ABN 41 687 119 230. |
| # |
| # This software may be distributed and modified according to the terms of |
| # the BSD 2-Clause license. Note that NO WARRANTY is provided. |
| # See "LICENSE_BSD2.txt" for details. |
| # |
| # @TAG(DATA61_BSD) |
| # |
| |
| cmake_minimum_required(VERSION 3.8.2) |
| |
| project(libsel4vmm C) |
| |
| set(configure_string "") |
| |
| config_option(LibSel4VMMVESAFrameBuffer VMM_VESA_FRAMEBUFFER |
| "Expose VESA Frame Buffer |
| Support for mapping the VESA frame buffer frames into the guest OS. |
| This option is useful for working around non-working video drivers otherwise, |
| due to missing features or such." |
| DEFAULT ON |
| ) |
| |
| config_option(LibSel4VMMDebug LIB_VMM_DEBUG |
| "Enable VMM debug output" |
| DEFAULT ON |
| ) |
| |
| config_string(LibSel4VMMDebugLevel LIB_VMM_DEBUG_LEVEL |
| "VMM Debug Output |
| Debug verbosity level. |
| 5 levels for debug messages: |
| 0: Always printout |
| 1: Main entry point in a module |
| 2: 2nd level entry point in a module |
| 3: Main entry point of a function |
| 4: Details inside a function" |
| DEFAULT 3 |
| UNQUOTE |
| ) |
| |
| config_option(LibSel4VMMVMXTimerDebug LIB_VMM_VMX_TIMER_DEBUG |
| "Use VMX Pre-Emption timer for debugging |
| Will cause a regular vmexit to happen based on VMX pre-emption |
| timer. At each exit the guest state will be printed out. This |
| can be used to aid debugging when running a guest causes nothing |
| to appear to happen" |
| DEFAULT OFF |
| ) |
| |
| config_string(LibSel4VMMVMXTimerTimeout LIB_VMM_VMX_TIMER_TIMEOUT |
| "Cycles between VMX timer pre-emptions |
| Cycles between timer exits. Time spent loading the VMCS context |
| count, so setting this too low may result in the guest making |
| no progress" |
| DEFAULT 4000 |
| DEPENDS "LibSel4VMMVMXTimerDebug" |
| ) |
| |
| config_option(LibSel4VMMIgnoreEPTViolation VMM_IGNORE_EPT_VIOLATION |
| "Ignore EPT Violations |
| If set then EPT faults will be ignored and the guest will be resumed" |
| DEFAULT OFF |
| ) |
| |
| add_config_library(sel4vmm "${configure_string}") |
| |
| add_compile_options(-std=gnu99) |
| |
| file(GLOB sources src/vmm/*.c src/platform/*.c src/driver/*.c src/manager/*.c src/processor/*.c) |
| |
| add_library(sel4vmm STATIC EXCLUDE_FROM_ALL ${sources}) |
| |
| target_include_directories(sel4vmm PUBLIC include) |
| target_link_libraries(sel4vmm Configuration muslc sel4 sel4utils pci sel4allocman ethdrivers platsupport) |