- ARM Versatile Express with Cortex-A15 or A7 cores
(includes ARM Fast Model)
+On x86, hardware capabilities can be validated by running
+
+ jailhouse hardware check sysconfig.cell
+
+using the binary system configuration created for the target (see
+[below](#configuration)).
+
Build & Installation
--------------------
-------------
Jailhouse requires one configuration file for the complete system and one for
-each additional cell beside Linux. The configuration is currently being
-defined manually by filling C structures. To study the structure, use
-configs/qemu-vm.c for a system configuration and configs/apic-demo.c for a cell
-configuration as reference. The build system will pick up every .c file from
-the configs/ directory and generate a corresponding .cell file. .cell files can
-then be passed to the jailhouse command line tool for enabling the hypervisor
-and creating new cells.
+each additional cell besides the primary Linux. These .cell files have to be
+passed to the jailhouse command line tool for enabling the hypervisor or
+creating new cells.
+
+A system configuration can be created on the target system by running the
+following command:
+
+ jailhouse config create sysconfig.c
+
+In order to translate this into the required binary form, place this file in
+the configs/ directory. The build system will pick up every .c file from there
+and generate a corresponding .cell file.
+
+Depending on the target system, the C structures may require some adjustments to
+make Jailhouse work properly or to reduce the desired access rights of the Linux
+root cell.
+
+Configurations for additional (non-root) cells currently require manual
+creation. To study the structures, use one of the demo cell configurations files
+as reference, e.g. configs/apic-demo.c or configs/e1000-demo.c.
Demonstration in QEMU/KVM
comparably well hackable. Further information can be found on
http://linux-sunxi.org.
-For Jailhouse, a U-Boot (pre-)release more recent than v2015.04-rc1 is
-required. Tested and know to work is git revision bd2a4888b1.
+For Jailhouse, an U-Boot release more recent than v2015.04 is required. Tested
+and known to work is release v2016.03. Note that, since v2015.10, you need to
+disable CONFIG_VIDEO in the U-Boot config, or U-Boot will configure the
+framebuffer at the end of the physical RAM where Jailhouse is located.
-The Linux kernel version should be at least 3.19-rcX. The configuration used
-for continuous integration builds can serve as reference, see
+The Linux kernel version should be at least 3.19. The configuration used for
+continuous integration builds can serve as reference, see
`ci/kernel-config-banana-pi`. The kernel has to be booted with the following
additional parameters, e.g. by adjusting the U-Boot environment accordingly: