-
Notifications
You must be signed in to change notification settings - Fork 7
Home
Oleksii Moisieiev edited this page Jul 30, 2024
·
19 revisions
The Xen-Troops RPI 5 Xen demonstration project is intended to demonstrate how RPI 5 can be used to run with Xen.
It includes the following components:
- Zephyr operated control domain which is a thin Zephyr Dom0
zephyr-dom0-xt
application with shell and SD-card storage support (SDHC). It also supports dom0less functionality. This domain is responsible for Xen domains control. It includes xen-tools library which gives an ability to control other domains. - Linux operated driver domain. This domain managing hardware and provides access to some of this hardware to other domains using PV backends. It has access to USB and rootfs is placed on USB storage. It's started in Xen dom0less mode.
- A set of guest domains kernel images to be started from the control domain.
Once Zephyr control domain zephyr-dom0-xt
booted it can start other guest domains.
The Zephyr Dom0 zephyr-dom0-xt
provides following guest domain configurations:
-
rpi_5_domd: The Xen guest domain configuration which uses real RPI5 GPIO HW
/soc/gpio@7d517c00
. It's based on Zephyr Blinky sample. - rpi_5_domu: The Xen guest domain configuration which is starts Xen guest domain without using real RPI5 HW. It's based on Zephyr samples/synchronization sample.
- helloworld_xen-arm64: The Xen guest domain configuration without using real RPI5 HW which starts Unikraft kernel. It is based on "Unikraft helloworld" and "monkey" examples.
- linux_pv_domu: The Linux based Xen guest domain with initrams and PV network support.
Boot process:
- RPI5 bootloder started u-boot
-
u-boot executes boot script:
- loads Zephyr Dom0 binary
- loads RPI 5 Linux operated driver domain binary (DomU0)
- loads Xen Passthrough device tree binary (DomU0)
- Linux System device tree device tree binary is provided by RPI5 bootloder and reused
- applies changes to Linux System device tree device tree for Xen
dom0less
boot mode - loads Xen binary and starts Xen
- Xen is booted and starts Zephyr Dom0 zephyr-dom0-xt and RPI 5 Linux operated driver domain DomU0
Build for the Linux operated driver domain is based on RPI5 BSP yocto build: meta-raspberrypi
This is release 0.1.0. This release supports the following features:
- Zephyr operated control domain:
- xen libraries integration that allows control of the other domains.
- domd with running OCI containers as Aos services capability.
- Linux operated driver domain:
- controls hardware;
- provides PV backends for the domains.
- rpi_5_domd domain
- zephyr-based domain built on top of zephyr-blinky sample;
- GPIO device passedthrough to the domain to control onboard LED;
- do not start automatically.
- rpi_5_domu domain
- zephyr-based domain built on top of zephyr-sync sample;
- do not start automatically.
- helloworld_xen-arm64 domain:
- demonstrates work of unikernel images as a domains.
- linux_pv_domu domain:
- Simple linux-based domain with initramfs
- implements PVnet interface to access other domains via pv network;
- impelments PVblock interface which allows to mount block devices to the domains.
Testing pvnet connection instruction: linux_pv_domu testing
Please refer to the following link to gen build and test instructions: README
Date | Version | Direct Link |
---|---|---|
07 June 2024 | 0.1.0 | curl -O https://raw.githubusercontent.com/xen-troops/meta-xt-prod-devel-rpi5/rpi5-v0.1.0/rpi5.yaml |
20 June 2024 | 0.1.1 | curl -O https://raw.githubusercontent.com/xen-troops/meta-xt-prod-devel-rpi5/v0.1.1/rpi5.yaml |
29 July 2024 | 0.1.2 | curl -O https://raw.githubusercontent.com/xen-troops/meta-xt-prod-devel-rpi5/v0.1.2/rpi5.yaml |
30 July 2024 | 0.2.0 | curl -O https://raw.githubusercontent.com/xen-troops/meta-xt-prod-devel-rpi5/v0.2.0/rpi5.yaml |
Date | Version | Changes |
---|---|---|
07 June 2024 | 0.1.0 | Initial release |
20 June 2024 | 0.1.1 | Stabilizing versions for the following components: |
- xen | ||
- fatfs for zephyr-dom0-xt | ||
29 July 2024 | 0.1.2 | fix incompatibility with new rpi5 fw |
30 July 2024 | 0.2.0 | - add nvme storage for DomD rootfs support |
- OP-TEE integration enhancements | ||
- u-boot: fix initialization when several PCIe | ||
devices enabled | ||
- add vchan utilities to the DomD | ||
- XSM security labeld configuration |