]> rtime.felk.cvut.cz Git - jailhouse.git/blobdiff - README.md
jailhouse: configs: Change fiasco, novaboot and hpet config. Reserved memory layout...
[jailhouse.git] / README.md
index 1da2e03f42f1734c367a5158a4b5f07b2c44ead6..b34c3d563eca1645d2abffe6979da6b4b5098c1a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -25,8 +25,8 @@ WARNING: This is work in progress! Don't expect things to be complete in any
 dimension. Use at your own risk. And keep the reset button in reach.
 
 
-Community
----------
+Community Resources
+-------------------
 
 Project home:
 
@@ -37,6 +37,10 @@ Source code:
  - https://github.com/siemens/jailhouse.git
  - git@github.com:siemens/jailhouse.git
 
+Frequently Asked Questions (FAQ):
+
+ - See [FAQ file](FAQ.md)
+
 Mailing list:
 
   - jailhouse-dev@googlegroups.com
@@ -48,6 +52,24 @@ Mailing list:
   - Archives
     - http://news.gmane.org/gmane.linux.jailhouse
 
+Continuous integration:
+
+  - https://travis-ci.org/siemens/jailhouse
+
+  - Status:
+    - ![](https://travis-ci.org/siemens/jailhouse.svg?branch=master) on master
+    - ![](https://travis-ci.org/siemens/jailhouse.svg?branch=next) on next
+
+Static code analysis:
+
+  - https://scan.coverity.com/projects/4114
+
+  - Status:
+    - ![](https://scan.coverity.com/projects/4114/badge.svg) on coverity_scan
+
+See the [contribution documentation](CONTRIBUTING.md) for details
+on how to write Jailhouse patches and propose them for upstream integration.
+
 
 Requirements (preliminary)
 --------------------------
@@ -75,6 +97,7 @@ x86 architecture:
   - at least 2 logical CPUs
 
   - x86-64 Linux kernel (tested against >= 3.14)
+
     - VT-d IOMMU usage (DMAR) has to be disabled in the Linux kernel, e.g. via
       the command line parameter:
 
@@ -83,6 +106,27 @@ x86 architecture:
     - To exploit the faster x2APIC, interrupt remapping needs to be on in the
       kernel (check for CONFIG_IRQ_REMAP)
 
+ARM architecture:
+
+  - Abstract:
+
+    - ARMv7 with virtualization extensions
+
+    - Appropriate boot loader support (typically U-Boot)
+      - Linux is started in HYP mode
+      - PSCI support for CPU offlining
+
+    - at least 2 logical CPUs
+
+  - Board support:
+
+    - Banana Pi (see also [below](#setup-on-banana-pi-arm-board))
+
+    - NVIDIA Jetson TK1
+
+    - ARM Versatile Express with Cortex-A15 or A7 cores
+      (includes ARM Fast Model)
+
 
 Build & Installation
 --------------------
@@ -215,3 +259,47 @@ Finally, Jailhouse is can be stopped completely again:
 
 All non-Linux cells running at that point will be destroyed, and resources
 will be returned to Linux.
+
+
+Setup on Banana Pi ARM board
+----------------------------
+
+The Banana Pi is a cheap Raspberry-Pi-like ARM board with an Allwinner A20 SoC
+(dual-core Cortex-A7). It runs mainline Linux kernels and U-Boot and is
+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.
+
+The Linux kernel version should be at least 3.19-rcX. 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:
+
+    mem=958M vmalloc=512M
+
+The recommended cross-toolchain is available from Linaro, see
+http://www.linaro.org/downloads.
+
+Before building Jailhouse, copy the configuration header file
+`ci/jailhouse-config-banana-pi.h` to `hypervisor/include/jailhouse/config.h`.
+Then run make:
+
+    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- \
+         KDIR=/path/to/arm-kernel/objects
+
+Binaries can be installed directly to the target root file system if it is
+mounted on the host:
+
+    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- \
+         KDIR=/path/to/arm-kernel/objects DESTDIR=/mount-point install
+
+Cell configurations and demo inmates will not be installed this way and have to
+be transferred manually as needed. Make sure you have `configs/bananapi.cell`
+and, as desired, the inmates configs (`configs/bananapi-*.cell`) and binaries
+(`inmates/demos/arm/*.bin`) available on the target.
+
+Jailhouse and inmates are started on ARM just like on x86. The only difference
+is that inmates have to be loaded at offset 0. Just leave out the `-a`
+parameter when invoking `jailhouse cell load`.