Omega is designed to run in EL3 and provide services to software in EL1 on Raspberry Pi-3B (ARMv8-A). Omega loads the deltaV hypervisor in EL2 and provides storage services to software being scheduled in EL1.
- Software running in EL1 (deltaOS) can communicate with Omega using Secure Monitor Calls (SMC).
- Function IDs 0 and 1 are utilised in this implementation for storing and loading a particular page.
- The page's virtual address provided needs to be present in the VM's IPA.
- The machine's EMMC is configured and the SD card is used to sandbox a VM's data. On a more serious implementation, a network attached storage can be used to achieve better isolation.
- On a Secure Monitor call in EL1, the control reaches VBAR_EL3 + 0x400, this is where the OCOM handlers are placed. Check monitor/exceptions.S
- The configuration for EL3 can be found in include/config.h and EL2's configuration can be found in deltaV/include/config.h.
- Necessary configuration for this implementation would be HCR_EL2.TSC = 0 and SCR_EL3.SMD = 0.
+ make
+ qemu-system-aarch64
+ gcc-aarch64-linux-gnu
+ gdb-multiarch
+ chmod +x install.sh
+ ./install.sh
+ make run
+ make debug
+ (Another Terminal) make gdb