On 2016-11-23 10:04, Claudio Scordino wrote:
> This patch aims at reorganizing the README and making the (hardware and
> software) requirements more explicit.
> 
> Signed-off-by: Claudio Scordino <[email protected]>
> ---
>  README.md | 128 
> +++++++++++++++++++++++++++++++++++++++-----------------------
>  1 file changed, 80 insertions(+), 48 deletions(-)
> 
> diff --git a/README.md b/README.md
> index eab2ffa..7218b48 100644
> --- a/README.md
> +++ b/README.md
> @@ -1,9 +1,12 @@
>  JAILHOUSE
>  =========
>  
> +Introduction
> +------------
> +
>  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
> +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.
>  
> @@ -20,8 +23,7 @@ Its management interface is based on Linux infrastructure. 
> So you boot Linux
>  first, then you enable Jailhouse and finally you split off parts of the
>  system's resources and assign them to additional cells.
>  
> -
> -WARNING: This is work in progress! Don't expect things to be complete in any
> +**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.
>  
>  
> @@ -72,10 +74,10 @@ See the [contribution documentation](CONTRIBUTING.md) for 
> details
>  on how to write Jailhouse patches and propose them for upstream integration.
>  
>  
> -Requirements (preliminary)
> ---------------------------
> +Hardware requirements (preliminary)
> +-----------------------------------
>  
> -x86 architecture:
> +#### x86 architecture:
>  
>    - Intel system:
>  
> @@ -95,31 +97,15 @@ x86 architecture:
>  
>      - AMD IOMMU (AMD-Vi) is unsupported now but will be required in future
>  
> -  - 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:
> -
> -          intel_iommu=off
> -
> -    - To exploit the faster x2APIC, interrupt remapping needs to be on in the
> -      kernel (check for CONFIG_IRQ_REMAP)
> -
> -ARM architecture:
> +  - At least 2 logical CPUs
>  
> -  - Abstract:
> +#### ARM architecture:
>  
> -    - ARMv7 with virtualization extensions or ARMv8
> +  - ARMv7 with virtualization extensions or ARMv8
>  
> -    - Appropriate boot loader support (typically U-Boot)
> -      - Linux is started in HYP mode
> -      - PSCI support for CPU offlining
> +  - At least 2 logical CPUs
>  
> -    - at least 2 logical CPUs
> -
> -  - ARM board:
> +  - Supported ARM boards:
>  
>      - Banana Pi ([see more](Documentation/setup-on-banana-pi-arm-board.md))
>  
> @@ -128,31 +114,75 @@ ARM architecture:
>      - ARM Versatile Express with Cortex-A15 or A7 cores
>        (includes ARM Fast Model)
>  
> -  - ARM64 board:
> +  - Supported ARM64 boards:
>  
>      - AMD Seattle / SoftIron Overdrive 3000
>  
>      - LeMaker HiKey
>  
> -On x86, hardware capabilities can be validated by running
>  
> -    jailhouse hardware check sysconfig.cell
> +Software requirements
> +---------------------
> +
> +#### x86 architecture:
>  
> -using the binary system configuration created for the target (see
> -[below](#configuration)).
> +  - 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:
> +
> +          intel_iommu=off
> +
> +    - To exploit the faster x2APIC, interrupt remapping needs to be on in the
> +      kernel (check for CONFIG_IRQ_REMAP)
> +
> +  - The hypervisor requires a contiguous piece of RAM for itself and each
> +    additional cell. This currently has to be pre-allocated during boot-up.
> +    On x86 this is typically done by adding
> +
> +        memmap=66M$0x3b000000
> +
> +    as parameter to the command line of the virtual machine's kernel. Note 
> that
> +    if you plan to put this parameter in GRUB2 variables in 
> /etc/default/grub,
> +    then you will need three escape characters before the dollar
> +    (e.g. ```GRUB_CMDLINE_LINUX_DEFAULT="memmap=66M\\\$0x3b000000"```).
> +
> +#### ARM architecture:
> +
> +  - Linux kernel:
> +    - 3.17+ for ARM

It's 3.19 by now, due to our new dependency on device tree overlay
support. I will fix this up during merge.

> +    - 4.7+ for ARM64
> +
> +  - Appropriate boot loader support (typically U-Boot)
> +     - Linux is started in HYP mode
> +     - PSCI support for CPU offlining
> +
> +  - The hypervisor requires a contiguous piece of RAM for itself and each
> +    additional cell. This currently has to be pre-allocated during boot-up.
> +    On ARM this can be obtained by reducing the amount of memory seen by the
> +    kernel (through the `mem=` kernel boot parameter) or by modifying the
> +    Device Tree.
>  
>  
>  Build & Installation
>  --------------------
>  
> -Simply run make, optionally specifying the target kernel directory:
> +Simply run `make`, optionally specifying the target kernel directory:
>  
>      make [KDIR=/path/to/kernel/objects]
>  
>  Except for the hypervisor image `jailhouse*.bin` that has to be available in 
> the
>  firmware search path (invoke `make firmware_install` for this), you can run
> -Jailhouse from the build directory. Alternatively, install everything on the
> -target machine by calling `make install` from the top-level directory.
> +Jailhouse from the build directory.
> +
> +Alternatively, install everything on the target machine by calling
> +
> +    make install
> +
> +from the top-level directory.
> +
> +The traditional Linux cross-compilation (i.e. `ARCH=` and `CROSS_COMPILE=`) 
> and
> +installation (i.e. `DESTDIR=`) flags are supported as well.
>  
>  
>  Configuration
> @@ -163,8 +193,8 @@ 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:
> +On x86 a system configuration can be created on the target system by running
> +the following command:
>  
>      jailhouse config create sysconfig.c
>  
> @@ -172,6 +202,16 @@ 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.
>  
> +On x86 the hardware capabilities can be validated by running
> +
> +    jailhouse hardware check sysconfig.cell
> +
> +providing the binary system configuration created for the target.
> +
> +Currently, there is no config generator for the ARM architecture; therefore 
> the
> +config file must be manually written by starting from the reference examples
> +and checking hardware-specific datasheets, DTS and /proc entries.
> +
>  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.
> @@ -216,17 +256,6 @@ Inside the VM, make sure that `jailhouse-*.bin`, 
> generated by the build process,
>  are available for firmware loading (typically /lib/firmware), see above for
>  installation steps.
>  
> -The hypervisor requires a contiguous piece of RAM for itself and each
> -additional cell. This currently has to be pre-allocated during boot-up. So 
> you
> -need to add
> -
> -    memmap=66M$0x3b000000
> -
> -as parameter to the command line of the virtual machine's kernel. Note that 
> if
> -you plan to put this parameter in GRUB2 variables in /etc/default/grub, then 
> you
> -will need three escape characters before the dollar
> -(e.g. ```GRUB_CMDLINE_LINUX_DEFAULT="memmap=66M\\\$0x3b000000"```).
> -
>  The Jailhouse QEMU cell config will block use of the serial port by the guest
>  OS, so make sure that the guest kernel command line does NOT have its console
>  set to log to the serial port (ie remove any 'console=ttyS0' arguments from 
> the
> @@ -294,3 +323,6 @@ 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.
> +
> +
> +
> 

Spurious new lines at end of file. Also fixing this.

Thanks, merged,
Jan

-- 
Siemens AG, Corporate Technology, CT RDA ITP SES-DE
Corporate Competence Center Embedded Linux

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to