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.
![Screenshot 2024-01-31 at 13 39 17](https://private-user-images.githubusercontent.com/37622719/305718765-d2940f70-6f57-460f-aeb2-2da66b00ba2c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQzMTExODQsIm5iZiI6MTcyNDMxMDg4NCwicGF0aCI6Ii8zNzYyMjcxOS8zMDU3MTg3NjUtZDI5NDBmNzAtNmY1Ny00NjBmLWFlYjItMmRhNjZiMDBiYTJjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIyVDA3MTQ0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk2MTk3YmE3NmY1ODU3Yzg2ZjgxYzcxMGMwZmM4MTBhZjlhZmY5OGJmNzc3MGZkYTZkYjM3YWQwZWRjOWNhNmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BzZHXIPB3YKNwt8iywzTHwQ0atDONO6fMey_iGe3kxY)
- 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