aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl-jailhouse/README.md
diff options
context:
space:
mode:
authorJakub Luzny <jakub@luzny.cz>2020-07-19 17:00:08 +0200
committerJakub Luzny <jakub@luzny.cz>2020-07-24 12:46:57 +0200
commit3f6d193683449a323a3f1d689540ab697d3d7980 (patch)
tree093ad36c5bf3f031d469a635d0f2190a57c176e0 /meta-agl-jailhouse/README.md
parentc6889de97c1af6baa7ee8006aa75da170c9bd407 (diff)
Add layer to support Jailhouse hypervisorjellyfish_9.99.2jellyfish/9.99.29.99.2
Jailhouse is a partitioning hypervisor based on Linux. It is able to run bare-metal applications or (adapted) operating systems besides Linux. For this purpose, it configures CPU and device virtualization features of the hardware platform in a way that none of these domains, called "cells" here, can interfere with each other in an unacceptable way. This layer adds the Jailhouse package into AGL and also appends the BSPs to allow it to run. Currently, Raspberry Pi 4 and QEMU x86-64 targets are supported. To enable Jailhouse and include it in the image, the AGL feature agl-jailhouse must be enabled. Bug-AGL: SPEC-3507 Signed-off-by: Jakub Luzny <jakub@luzny.cz> Change-Id: I0fbc0b5d931c85d6f22b0222da8c2b106c4115e1
Diffstat (limited to 'meta-agl-jailhouse/README.md')
-rw-r--r--meta-agl-jailhouse/README.md46
1 files changed, 43 insertions, 3 deletions
diff --git a/meta-agl-jailhouse/README.md b/meta-agl-jailhouse/README.md
index 395b49d4..fb0a3d42 100644
--- a/meta-agl-jailhouse/README.md
+++ b/meta-agl-jailhouse/README.md
@@ -1,4 +1,44 @@
-JAILHOUSE SUPPORT LAYER
------------------------
+# Jailhouse support layer
+
+Yocto layer that enables use of the Jailhouse partitioning hypervisor - <https://github.com/siemens/jailhouse>.
+
+## How to use
+
+The AGL feature `agl-jailhouse` has to be enabled. That needs to be done when including aglsetup.sh, for example:
+
+ source meta-agl/scripts/aglsetup.sh -m raspberrypi4 agl-demo agl-netboot agl-appfw-smack agl-jailhouse
+
+That will enable this layer and include the `jailhouse` package in the image.
+
+Then, in the target system, the cell configurations (*.cell) are placed in `/usr/share/jailhouse/cells/` and the demo inmates (bare-metal applications to run in a non-root cell) are located in `/usr/share/jailhouse/inmates`.
+
+## Raspberry Pi 4 example
+
+Use this commands to enable Jailhouse and run the GIC demo inmate in a non-root cell. After issuing these commands, the GIC demo will be mesauring jitter of a timer and print the output on the serial console of the RPi.
+
+ jailhouse enable /usr/share/jailhouse/cells/rpi4.cell
+ jailhouse cell create /usr/share/jailhouse/cells/rpi4-inmate-demo.cell
+ jailhouse cell load inmate-demo /usr/share/jailhouse/inmates/gic-demo.bin
+ jailhouse cell start inmate-demo
+
+## Dependencies
+
+This layer depends on:
+
+* URI: git://git.yoctoproject.org/meta-arm
+ * branch: dunfell
+ * revision: 0bd9c740267c0926e89bcfdb489790b7bf1fbd4b
+ * note: actually only required on the Raspberry Pi 4 target
+
+## Supported targets
+
+* Raspberry Pi 4
+ * Currently only the 1 GB RAM variant. The other ones will work too,
+ but will be limited to 1 GB of memory.
+
+* QEMU x86-64
+ * Work in progress. Requires KVM. Nested virtualization must be enabled on the host. Currently, the right configuration of QEMU and Jailhouse to work out-of-box is being worked on.
+
+
+
-to be written