x86/jailhouse: Add infrastructure for running in non-root cell
authorJan Kiszka <jan.kiszka@siemens.com>
Mon, 27 Nov 2017 08:11:46 +0000 (09:11 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 14 Jan 2018 20:11:54 +0000 (21:11 +0100)
commit4a362601baa6fff92b576d85199f1948cec2fb3b
tree3e7f804efd2f75d515c4a0b38036fd3fedb31bad
parenta09c5ec00a120dae52eceef3eebff93ed729bb43
x86/jailhouse: Add infrastructure for running in non-root cell

The Jailhouse hypervisor is able to statically partition a multicore
system into multiple so-called cells. Linux is used as boot loader and
continues to run in the root cell after Jailhouse is enabled. Linux can
also run in non-root cells.

Jailhouse does not emulate usual x86 devices. It also provides no
complex ACPI but basic platform information that the boot loader
forwards via setup data. This adds the infrastructure to detect when
running in a non-root cell so that the platform can be configured as
required in succeeding steps.

Support is limited to x86-64 so far, primarily because no boot loader
stub exists for i386 and, thus, we wouldn't be able to test the 32-bit
path.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: jailhouse-dev@googlegroups.com
Link: https://lkml.kernel.org/r/7f823d077b38b1a70c526b40b403f85688c137d3.1511770314.git.jan.kiszka@siemens.com
arch/x86/Kconfig
arch/x86/include/asm/hypervisor.h
arch/x86/include/asm/jailhouse_para.h [new file with mode: 0644]
arch/x86/include/uapi/asm/bootparam.h
arch/x86/kernel/Makefile
arch/x86/kernel/cpu/hypervisor.c
arch/x86/kernel/jailhouse.c [new file with mode: 0644]