Branch: refs/heads/wip/arm64
Home: https://github.com/siemens/jailhouse
Commit: 3a1f2b5bc9d24eb1b7cf3fb0c1c7c61cf5b108c7
https://github.com/siemens/jailhouse/commit/3a1f2b5bc9d24eb1b7cf3fb0c1c7c61cf5b108c7
Author: Jan Kiszka <[email protected]>
Date: 2016-10-04 (Tue, 04 Oct 2016)
Changed paths:
A hypervisor/arch/arm-common/dbg-write-pl011.c
A hypervisor/arch/arm-common/dbg-write.c
A hypervisor/arch/arm-common/gic-common.c
A hypervisor/arch/arm-common/gic-v2.c
A hypervisor/arch/arm-common/irqchip.c
A hypervisor/arch/arm-common/lib.c
A hypervisor/arch/arm-common/mmu_cell.c
A hypervisor/arch/arm-common/paging.c
A hypervisor/arch/arm-common/psci.c
M hypervisor/arch/arm/Makefile
R hypervisor/arch/arm/dbg-write-pl011.c
R hypervisor/arch/arm/dbg-write.c
R hypervisor/arch/arm/gic-common.c
R hypervisor/arch/arm/gic-v2.c
R hypervisor/arch/arm/irqchip.c
R hypervisor/arch/arm/lib.c
R hypervisor/arch/arm/mmu_cell.c
R hypervisor/arch/arm/paging.c
R hypervisor/arch/arm/psci.c
Log Message:
-----------
arm: Move modules shared with arm64 into arch/arm-common
This helps understanding which source modules are shared between arm and
the upcoming arm64 architecture. If leaving them in arch/arm, the risk
is that changes to arm miss the interdependency with arm64.
We may want to do the same for common asm headers in the future.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 752e1ceb8240b0d48714b786d0c062227c050c12
https://github.com/siemens/jailhouse/commit/752e1ceb8240b0d48714b786d0c062227c050c12
Author: Jan Kiszka <[email protected]>
Date: 2016-10-04 (Tue, 04 Oct 2016)
Changed paths:
A hypervisor/arch/arm-common/control.c
M hypervisor/arch/arm/Makefile
M hypervisor/arch/arm/control.c
M hypervisor/arch/arm/include/asm/control.h
Log Message:
-----------
arm: Factor out common control.c module
Many functions will be shared with arm64.
This creates one new inter-module interface: arm_cpu_reset. It now takes
the desires PC after reset as parameter, instead of overwriting the
related register if cpu_on_entry is not the final value.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 659ce9b5ccad65520711f6c9db88f60743e53bf3
https://github.com/siemens/jailhouse/commit/659ce9b5ccad65520711f6c9db88f60743e53bf3
Author: Antonios Motakis <[email protected]>
Date: 2016-10-04 (Tue, 04 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/sysregs.h
Log Message:
-----------
arm64: add sysregs helper macros
On the AArch32 port of Jailhouse, the arm_write_sysreg and
arm_read_sysreg macros are used to access the system registers.
Implementing these helpers on AArch64 allows to approach some low
hanging fruit when looking for code to reuse from the AArch32 port.
On AArch64 we always get a u64 value from a system register, while
on AArch32 it might be either u32 or u64. We need to look at the
users of this macro on a case by case basis and see if it makes
sense to reuse code.
Signed-off-by: Antonios Motakis <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 75d7ddc19005049f90d542b07b109ae5205ff722
https://github.com/siemens/jailhouse/commit/75d7ddc19005049f90d542b07b109ae5205ff722
Author: Antonios Motakis <[email protected]>
Date: 2016-10-04 (Tue, 04 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/processor.h
Log Message:
-----------
arm64: add asm/processor.h header for AArch64
Add an initial asm/processor.h header for AArch64. This header
is similar to the version for AArch32, but e.g. processor modes
and exception classes differ.
Signed-off-by: Antonios Motakis <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: e518f7fc8f0199a0c62fc0f2e76a0f7fd86cd9a9
https://github.com/siemens/jailhouse/commit/e518f7fc8f0199a0c62fc0f2e76a0f7fd86cd9a9
Author: Dmitry Voytik <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/control.h
Log Message:
-----------
arm64: add control.h header file
Add the header file control.h to the AArch64 port of Jailhouse.
Signed-off-by: Dmitry Voytik <[email protected]>
Signed-off-by: Antonios Motakis <[email protected]>
[[email protected]: split off as a separate patch]
[Jan: remove obsolete parts, update arch_handle_* prototypes]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: d534d43b9b41463c1ee074fe6c61bb28096bc15c
https://github.com/siemens/jailhouse/commit/d534d43b9b41463c1ee074fe6c61bb28096bc15c
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/paging.h
Log Message:
-----------
arm64: add definitions for the AArch64 page table format
The AArch64 page table format is very similar, almost identical to
the AArch32 page table format. Add a header file for the AArch64 page
table format, based on the AArch32 implementation.
AArch64 introduces an extra level of page tables, for a total of
four, and support for different translation granule sizes.
Sticking to a granule size of 4Kb, we end up with an identical page
table format to AArch32. Using either 3 or the full 4 supported
levels of page tables, we can reach a physical address range of
48 bits.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: provide arch_paging_flush_cpu_caches via arm_dcaches_flush]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: caea151e481e00bd9889c202a08ed5846b137934
https://github.com/siemens/jailhouse/commit/caea151e481e00bd9889c202a08ed5846b137934
Author: Dmitry Voytik <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/types.h
Log Message:
-----------
arm64: add types.h
Add the asm/types.h header file, which defines the size of the data
types.
Signed-off-by: Dmitry Voytik <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 9a3084343f8d8a4cdbe643f92fe3c26100a30849
https://github.com/siemens/jailhouse/commit/9a3084343f8d8a4cdbe643f92fe3c26100a30849
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/spinlock.h
Log Message:
-----------
arm64: spinlock implementation
Implement spinlocks for the hypervisor firmware, on AArch64.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: add missing include]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 532f7cf3a89801f3b90a7a83aa377f85cc96cfa0
https://github.com/siemens/jailhouse/commit/532f7cf3a89801f3b90a7a83aa377f85cc96cfa0
Author: Claudio Fontana <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/bitops.h
Log Message:
-----------
arm64: implement bitops
implement set_bit, clear_bit, test_and_set_bit.
test_and_set_bit is used only in the panic_printk apparently,
while set_bit and clear_bit are used in page table handling code.
Signed-off-by: Claudio Fontana <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 58d876378822fe87c1bfd2e6faaefdb2ca940b85
https://github.com/siemens/jailhouse/commit/58d876378822fe87c1bfd2e6faaefdb2ca940b85
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/percpu.h
Log Message:
-----------
arm64: add percpu.h header file
Add the percpu.h header file for the AArch64 implementation. This is
the bare bones version of the header needed to compile a stub
hypervisor binary on AArch64. A lot of these fields could probably
be moved to an arch independent header.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: adjust includes, remove obsolete CHECK_ASSUMPTION]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 81ccd0f2773fd7bb6ca01e054afa1dcf33cc0be2
https://github.com/siemens/jailhouse/commit/81ccd0f2773fd7bb6ca01e054afa1dcf33cc0be2
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/cell.h
Log Message:
-----------
arm64: add cell.h header file
Add the initial cell.h header file needed to build on AArch64.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: remove obsolete fields and includes]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: a98009cf331a16180ccecec4836a5d22679ee5f8
https://github.com/siemens/jailhouse/commit/a98009cf331a16180ccecec4836a5d22679ee5f8
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/jailhouse_hypercall.h
Log Message:
-----------
arm64: add jailhouse_hypercall.h header file
Add the jailhouse_hypercall.h header file for AArch64. We will need
this also from the Linux side, in order to load Jailhouse in memory
and to issue hypercalls to an already loaded instance of the
hypervisor.
Signed-off-by: Antonios Motakis <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: dbecb806c72ae8cb3eca02717b0b26c1d90cd410
https://github.com/siemens/jailhouse/commit/dbecb806c72ae8cb3eca02717b0b26c1d90cd410
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/Makefile
A hypervisor/arch/arm64/Makefile
A hypervisor/arch/arm64/asm-defines.c
A hypervisor/arch/arm64/caches.S
A hypervisor/arch/arm64/control.c
A hypervisor/arch/arm64/entry.S
M hypervisor/arch/arm64/include/asm/control.h
M hypervisor/arch/arm64/include/asm/paging.h
M hypervisor/arch/arm64/include/asm/percpu.h
A hypervisor/arch/arm64/mmio.c
A hypervisor/arch/arm64/setup.c
A inmates/demos/arm64/Makefile
A inmates/lib/arm64/Makefile
A inmates/tools/arm64/Makefile
Log Message:
-----------
arm64: Provide minimum stubs to allow building on AArch64
Add the minimum stub functions expected by the rest of the code base
to enable building on AArch64. We will implement the missing AArch64
functionality from here or enable the implementations in arm-common.
Based on patch by Antonios Motakis.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: ef68cc08c887a5b801bb50e1d1ab3ca8c1a1b169
https://github.com/siemens/jailhouse/commit/ef68cc08c887a5b801bb50e1d1ab3ca8c1a1b169
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A configs/foundation-v8.c
Log Message:
-----------
config: add root cell configuration for the ARMv8 Foundation model
Add under config/foundation-v8.c a root cell configuration for the
ARMv8 Foundation model, so we can in use this target with Jailhouse.
We also add the neccessary parameters in asm/platform.h for this
model.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: adjust to new irqchip and platform configuration]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: e93141753732934f11eaaceff549c07e9f7af509
https://github.com/siemens/jailhouse/commit/e93141753732934f11eaaceff549c07e9f7af509
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A ci/jailhouse-config-amd-seattle.h
A configs/amd-seattle.c
M hypervisor/arch/arm/include/asm/uart_pl011.h
Log Message:
-----------
config: root cell configuration for the AMD Seattle
Add the root cell configuration and necessary headers to build
and run Jailhouse on the AMD Seattle development board.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: adjust to new irqchip, platform configuration, perform UART init
only under CONFIG_MACH_VEXPRESS]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 067af81d5c52ad8cb6293e6c60eb11fdbeed854a
https://github.com/siemens/jailhouse/commit/067af81d5c52ad8cb6293e6c60eb11fdbeed854a
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/asm-defines.c
M hypervisor/arch/arm64/caches.S
Log Message:
-----------
arm64: Implement data cache flush
The arm_dcaches_flush function is needed early on during initialization,
in order to flush the early bootstrap page tables for they hypervisor.
Based on patch by Antonios Motakis.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 063152cdeac7dd3f2075fd8b31d348783bced669
https://github.com/siemens/jailhouse/commit/063152cdeac7dd3f2075fd8b31d348783bced669
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/asm-defines.c
M hypervisor/arch/arm64/entry.S
A hypervisor/arch/arm64/include/asm/sections.h
Log Message:
-----------
arm64: initialize EL2 for hypervisor entry
Unlike AArch32, we jump to EL2 as soon as we enter the hypervisor
binary.
In order to do that, we also need to switch on the MMU, so we
generate early bootstrap page tables.
We need these in order to perform unaligned accesses from the
hypervisor binary during early initialization, and to avoid having
to maintain the caches during initialization.
Signed-off-by: Antonios Motakis <[email protected]>
Signed-off-by: Dmitry Voytik <[email protected]>
[Jan: use arm_dcaches_flush instead of arch_paging_flush_cpu_caches,
load debug console address from header, adjust includes]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 1dd66cdde066febde24fa5589667bc8d6075312d
https://github.com/siemens/jailhouse/commit/1dd66cdde066febde24fa5589667bc8d6075312d
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/asm-defines.c
M hypervisor/arch/arm64/entry.S
M hypervisor/arch/arm64/include/asm/percpu.h
Log Message:
-----------
arm64: initialize the hypervisor for entry
Initialize the hypervisor firmware, so we can finally enter
the arch independent entry() function. This includes setting
up a stack, and saving the state of the processor before
entering the hypervisor.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: use asm-defines]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 4a014a3cb93da3192ef2fde2772744b7505b7031
https://github.com/siemens/jailhouse/commit/4a014a3cb93da3192ef2fde2772744b7505b7031
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/Makefile
M hypervisor/arch/arm64/entry.S
A hypervisor/arch/arm64/exception.S
A hypervisor/arch/arm64/include/asm/traps.h
A hypervisor/arch/arm64/traps.c
Log Message:
-----------
arm64: initial exception handling and catch EL2 aborts
Catch exceptions on the AArch64 target of Jailhouse. Catch and aborts
from EL2 that might be caused by the hypervisor.
Signed-off-by: Antonios Motakis <[email protected]>
Signed-off-by: Dmitry Voytik <[email protected]>
[Jan: adjust includes, remove pc from trap_context, Makefile update]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 17a5092905c4d047d15aae14b24b6d52dc14263b
https://github.com/siemens/jailhouse/commit/17a5092905c4d047d15aae14b24b6d52dc14263b
Author: Dmitry Voytik <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/traps.c
Log Message:
-----------
arm64: dump stack on unhandled exceptions
Dump stack in the following cases:
* exception in EL2. We can determine the stack size
* unhandled exceptions in EL1/0. We can't determine the stack
size thus we just print 512 bytes.
For EL2 exceptions the debug output will be like this:
FATAL: Unhandled HYP exception: synchronous abort from EL2
pc: 00000000fc00469c lr: 00000000fc004688 spsr: 200003c9 EL2
sp: 00000000fc015e30 esr: 25 1 0000044
x0: ffffffff00000000 x1: 0000000000000001 x2: 00000000fc00bd14
x3: ffffff80ffffffc8 x4: 00000000fc010000 x5: 0000000000000004
x6: ffffffc000afe000 x7: 00000000ffffe188 x8: 0000000000005d25
x9: 0000000000000001 x10: ffffffc035766a40 x11: ffffffbdc2d23f80
x12: 0000000000000862 x13: 0000007f92bd7cb0 x14: 0000007f92a67bc8
x15: 0000000000005798 x16: ffffffc0000a2794 x17: 0000000000412288
x18: 0000000000000000 x19: 0000000001930047 x20: 0000000000000004
x21: 0000000000000001 x22: 0000000000000001 x23: 00000000fc015eb8
x24: 00000000000001c0 x25: 0000000000000000 x26: ffffffc000afe6d8
x27: ffffffc035470000 x28: ffffffc034e08000 x29: 00000000fc015e30
Hypervisor stack before exception (0x00000000fc015e30 - 0x00000000fc016000):
5e20: fc015e90 00000000 fc00a298 00000000
5e40: fc015f00 00000000 fc015000 00000000 00559cb8 ffffffc0 00b69000 ffffffc0
5e60: 00b00000 ffffffc0 000001c0 00000000 0000001e 00000000 fc015cf5 00000000
5e80: fc015e90 00000000 0000001e 001e0100 fc015ee0 00000000 fc00a3b0 00000000
5ea0: fc015f00 00000000 fc00b478 00000000 fc015ee0 00000000 fc015f08 00000000
5ec0: 93930047 00000000 200001c5 00000000 00310820 ffffffc0 34e0bbc0 ffffffc0
5ee0: 00000000 00000000 fc009c54 00000000 00040000 00000000 00b00ea0 ffffffc0
5f00: 00000001 00000000 00000f00 ffffff80 00000004 00000000 00000040 00000000
5f20: 00b00ee0 ffffffc0 00559cc0 ffffffc0 00000004 00000000 00afe000 ffffffc0
5f40: ffffe188 00000000 00005d25 00000000 00000001 00000000 35766a40 ffffffc0
5f60: c2d23f80 ffffffbd 00000862 00000000 92bd7cb0 0000007f 92a67bc8 0000007f
5f80: 00005798 00000000 000a2794 ffffffc0 00412288 00000000 00000000 00000000
5fa0: 00040000 00000000 00b00ea0 ffffffc0 00559cb8 ffffffc0 00b69000 ffffffc0
5fc0: 00b00000 ffffffc0 000001c0 00000000 00000000 00000000 00afe6d8 ffffffc0
5fe0: 35470000 ffffffc0 34e08000 ffffffc0 34e0bbc0 ffffffc0 003107fc ffffffc0
6000: 8008a800
Signed-off-by: Dmitry Voytik <[email protected]>
[Jan: replace PERCPU_STACK_END with sizeof expression]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: bb6bd48d2d267cc5fd135a092dc6e0fc951848ef
https://github.com/siemens/jailhouse/commit/bb6bd48d2d267cc5fd135a092dc6e0fc951848ef
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A hypervisor/arch/arm64/include/asm/setup.h
M hypervisor/arch/arm64/setup.c
Log Message:
-----------
arm64: plug the hypervisor mmu code
Enable the MMU mappings for the hypervisor running in EL2, and add
functions to map device regions to the hypervisor address space.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: rebase, remove obsolete arch_map/unmap_device and asm/head.h]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 7645bb7ff13c7c1b6e25218de19461b6263b304b
https://github.com/siemens/jailhouse/commit/7645bb7ff13c7c1b6e25218de19461b6263b304b
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/include/asm/traps.h
M hypervisor/arch/arm64/mmio.c
M hypervisor/arch/arm64/traps.c
Log Message:
-----------
arm64: handle accesses to emulated mmio regions
Catch accesses to the mmio regions that we want to handle from the
hypervisor. These are used also by the GIC code.
Signed-off-by: Antonios Motakis <[email protected]>
Signed-off-by: Dmitry Voytik <[email protected]>
[Jan: rebase, adjust arch_skip_instruction to update ELR_EL2 itself]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: bd857ad3a119efdb6578272a866e7452e98a1cda
https://github.com/siemens/jailhouse/commit/bd857ad3a119efdb6578272a866e7452e98a1cda
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/Makefile
M hypervisor/arch/arm64/control.c
M hypervisor/arch/arm64/include/asm/cell.h
M hypervisor/arch/arm64/include/asm/percpu.h
M hypervisor/arch/arm64/mmio.c
M hypervisor/arch/arm64/setup.c
M hypervisor/arch/arm64/traps.c
Log Message:
-----------
arm64: plug the irqchip and GICv2 code from AArch32
We plug the irqchip handling code, and the GICv2 implementation from
AArch32. arch_handle_sgi and arch_handle_phys_irq are only provided as
stubs because they will be replaced with the arm-common versions soon.
GICv3 is slightly trickier; it makes heavier use of the sysregs, so
we will need to review more carefully that the sysregs macros do
the right thing.
Based on patch by Antonios Motakis.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 98f5c3f5c3bc0f1789b97843ce6f27d1a7c825f5
https://github.com/siemens/jailhouse/commit/98f5c3f5c3bc0f1789b97843ce6f27d1a7c825f5
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/Makefile
M hypervisor/arch/arm64/control.c
M hypervisor/arch/arm64/include/asm/control.h
M hypervisor/arch/arm64/include/asm/percpu.h
M hypervisor/arch/arm64/setup.c
Log Message:
-----------
arm64: Plug arm-common control module
This reuses the control.c module, shared with 32-bit ARM.
There is more commodity in headers, setup.c etc. to be consolidated
later on.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: b5c11d7288acda1e5925b1875e3f454d6e6617ca
https://github.com/siemens/jailhouse/commit/b5c11d7288acda1e5925b1875e3f454d6e6617ca
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm-common/psci.c
M hypervisor/arch/arm/include/asm/psci.h
Log Message:
-----------
arm: Prepare for 64-bit PSCI
Account for both 64-bit calls into the PSCI emulation code and 32-bit
invocations on 64-bit. Moreover, PSCI_INVALID_ADDRESS has to be an
invalid address also with 64-bit address width.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: ab4e93658f7170d9d7da7133ca796b999d52dc4e
https://github.com/siemens/jailhouse/commit/ab4e93658f7170d9d7da7133ca796b999d52dc4e
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/Makefile
M hypervisor/arch/arm64/control.c
M hypervisor/arch/arm64/include/asm/jailhouse_hypercall.h
M hypervisor/arch/arm64/setup.c
M hypervisor/arch/arm64/traps.c
Log Message:
-----------
arm64: PSCI support for SMP on AArch64
On AArch64 we pretty much rely on PSCI being present for SMP
support (turning multiple cores on and off). This patch implements
the helpers needed for SMP and plugs in the PSCI code from AArch32.
On AArch64 PSCI calls can be issued via SMC64 as well, contrary to
AArch32 which uses SMC32 calls only. We add the changes necessary to
support the requests that are used by a Linux root cell. CPU hotplug now
is still working after we enable Jailhouse.
Based on patch by Antonios Motakis.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 1a0e7cccda9f1decaa1caa90331249a4b308f41c
https://github.com/siemens/jailhouse/commit/1a0e7cccda9f1decaa1caa90331249a4b308f41c
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/setup.c
Log Message:
-----------
arm64: reanimate the root cell back from the dead
We have now enough implemented functionality to return to the root
cell. We just need to enable guest traps, which will be handled by
the MMU, MMIO, and GIC code we already plugged to the port. Finally,
we restore the state of the root cell that we previously stored in
the stack.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: rebase]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 7642f64ba2e5bb08f0f2001faa78d73b3c5ed6d3
https://github.com/siemens/jailhouse/commit/7642f64ba2e5bb08f0f2001faa78d73b3c5ed6d3
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/traps.c
Log Message:
-----------
arm64: Handle hypercalls from the cells
Plug in the core handler for hypercalls, so we can start implementing
the more interesting stuff.
Based on patches by Antonios Motakis
Signed-off-by: Jan Kiszka <[email protected]>
Commit: e0ca6be878b715795f56576b73dacbb1639fa4a0
https://github.com/siemens/jailhouse/commit/e0ca6be878b715795f56576b73dacbb1639fa4a0
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/entry.S
M hypervisor/arch/arm64/setup.c
M hypervisor/arch/arm64/traps.c
Log Message:
-----------
arm64: hypervisor disable support
Add hypervisor disable support to the Jailhouse firmware. Handle
Jailhouse disable calls from the root cell, and also disable the
hypervisor in case of an error during initialization.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: rebase, install shutdown call in handle_hvc]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: de5ea89f68fe1099790b3180d58395e73b3ede54
https://github.com/siemens/jailhouse/commit/de5ea89f68fe1099790b3180d58395e73b3ede54
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/control.c
Log Message:
-----------
arm64: Implement cell creation/destruction
This patch implements the functionality needed to create and destroy
non-root cells.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: f36a6c1e004499ea7a33d59ac734fd86af9b26d4
https://github.com/siemens/jailhouse/commit/f36a6c1e004499ea7a33d59ac734fd86af9b26d4
Author: Dmitry Voytik <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A scripts/arm64-parsedump.py
Log Message:
-----------
tools: arm64: add exception dump parser
Add ./scripts/arm64-parsedump.py tool. This tool decodes an ARM64
exception dump and prints human-readable stack trace like this:
[0x00000000fc008688] arch_handle_dabt mmio.c:97
[0x00000000fc009acc] arch_handle_trap traps.c:143
The tool can read dumps from files (passed via -f parameter)
or from stdin stream (which can be also piped-in).
Signed-off-by: Dmitry Voytik <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 721e5bf257ff34bbffb07050234673fbbc464b8e
https://github.com/siemens/jailhouse/commit/721e5bf257ff34bbffb07050234673fbbc464b8e
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M .travis.yml
M ci/build-all-configs.sh
M ci/gen-kernel-build.sh
A ci/kernel-config-amd-seattle
Log Message:
-----------
ci: Add support for arm64
This adds arm64 to CI via the AMD Seattle configuration.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: ca1b1aa0a393dacc235db903bc1f9976404e09b8
https://github.com/siemens/jailhouse/commit/ca1b1aa0a393dacc235db903bc1f9976404e09b8
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M inmates/demos/arm/uart-demo.c
M inmates/lib/arm/include/inmate.h
Log Message:
-----------
inmates: arm: uart-demo: move heartbeat to header file
Moving the heartbeat function to a header file, so we can reuse
the uart-demo just by reimplementing the heartbeat on AArch64.
Signed-off-by: Antonios Motakis <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: f309cf8280e8717460f3161889e4a63f0aec2bab
https://github.com/siemens/jailhouse/commit/f309cf8280e8717460f3161889e4a63f0aec2bab
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M inmates/lib/arm/gic.c
M inmates/lib/arm/include/gic.h
Log Message:
-----------
inmates: arm: lib: move IRQ stack initialization
On AArch64 we won't need to initialize an IRQ stack; just move
the functionality to a header, so we may reuse the gic library.
Signed-off-by: Antonios Motakis <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 8d0eefb6a6e0ea9d8ca5145c49805876b8f7fcdb
https://github.com/siemens/jailhouse/commit/8d0eefb6a6e0ea9d8ca5145c49805876b8f7fcdb
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm/include/asm/sysregs.h
M inmates/lib/arm/timer.c
Log Message:
-----------
inmates: arm: prep timer library for AArch64
This patch is a minor touch up, that will allow to build the
ARM timer inmate library also on AArch64. We just need to add
the EL0 prefix to the CNTFRQ and CNTPCT sysregs, so we can
access them with the same code.
Signed-off-by: Antonios Motakis <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 65c8b1abbfda3a45f504ceae6a9e83b56342b6c2
https://github.com/siemens/jailhouse/commit/65c8b1abbfda3a45f504ceae6a9e83b56342b6c2
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M inmates/Makefile
M inmates/demos/arm64/Makefile
M inmates/lib/arm64/Makefile
A inmates/lib/arm64/Makefile.lib
A inmates/lib/arm64/header.S
A inmates/lib/arm64/include/gic.h
A inmates/lib/arm64/include/inmate.h
A inmates/lib/arm64/include/mach-amd-seattle/mach/gic_v2.h
A inmates/lib/arm64/include/mach-amd-seattle/mach/timer.h
A inmates/lib/arm64/include/mach-amd-seattle/mach/uart.h
A inmates/lib/arm64/include/mach-foundation-v8/mach/gic_v2.h
A inmates/lib/arm64/include/mach-foundation-v8/mach/timer.h
A inmates/lib/arm64/include/mach-foundation-v8/mach/uart.h
A inmates/lib/arm64/inmate.lds
Log Message:
-----------
inmates: arm64: port inmate demos from AArch32 to AArch64
This is a straightforward port of the inmate demos from
AArch32 to AArch64. These can now be loaded as cells onto
a Foundation ARMv8 model.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: adjust to CONFIG_ARM_GIC_V2]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 39b33556788ad528322a30314bd75e875484bd30
https://github.com/siemens/jailhouse/commit/39b33556788ad528322a30314bd75e875484bd30
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A configs/foundation-v8-uart-demo.c
Log Message:
-----------
config: add uart demo cell config for Foundation v8
Add a cell configuration file for the foundation-v8 model, to
be used with the PL011 UART inmate demo.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: adjust include]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: c2bc5be6f682e12aefe79094deb680f27389a60c
https://github.com/siemens/jailhouse/commit/c2bc5be6f682e12aefe79094deb680f27389a60c
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A configs/foundation-v8-gic-demo.c
Log Message:
-----------
config: gic inmate cell config for foundation-v8
Add a cell configuration file for the gic inmate demo, for the
foundation-v8 model.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: adjust include]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 5cba8f7e3d501b3462bfedeb1323eeb51ac26e43
https://github.com/siemens/jailhouse/commit/5cba8f7e3d501b3462bfedeb1323eeb51ac26e43
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A configs/amd-seattle-uart-demo.c
Log Message:
-----------
config: UART demo cell config for the AMD Seattle
Add a cell configuration file for the AMD Seattle development
board, to be used with the PL011 UART demo inmate.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: adjust include]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 17faa7762d5d05bc3cb97dc569b3cdebd33513f1
https://github.com/siemens/jailhouse/commit/17faa7762d5d05bc3cb97dc569b3cdebd33513f1
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A configs/amd-seattle-gic-demo.c
Log Message:
-----------
config: gic demo cell config for the AMD Seattle
Add a cell configuration file to use on the AMD Seattle, to be
used with the gic demo inmate.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: adjust include]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 6b71fa3247064d945313ebfbcf788da9aa38e8a6
https://github.com/siemens/jailhouse/commit/6b71fa3247064d945313ebfbcf788da9aa38e8a6
Author: Dmitry Voytik <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M inmates/tools/arm64/Makefile
A inmates/tools/arm64/linux-loader.c
Log Message:
-----------
inmates: arm64: implement non-root linux loader
This patch implements a loader, that can be used to boot a Linux
kernel in a Jailhouse cell on AArch64.
Signed-off-by: Dmitry Voytik <[email protected]>
Signed-off-by: Antonios Motakis <[email protected]>
[[email protected]:
- split foundation-v8 configuration to a separate patch
- small fixes in the linux loader output
- take kernel and dtb address using cell load command line ]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: b27a26270ef488ee55fc9e31b1d1ebdae7bf0862
https://github.com/siemens/jailhouse/commit/b27a26270ef488ee55fc9e31b1d1ebdae7bf0862
Author: Dmitry Voytik <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A configs/foundation-v8-linux-demo.c
A samples/kernel-inmate-foundation-v8.dts
Log Message:
-----------
config: add linux inmate cell config for foundation-v8
Add the cell configuration files, and some helper scripts and device
tree for the foundation-v8 model. These can be used to load a linux
inmate on a cell on that target.
Signed-off-by: Dmitry Voytik <[email protected]>
Signed-off-by: Antonios Motakis <[email protected]>
[[email protected]: split off as a separate patch,
some minor renaming for consistency]
[Jan: adjust to new irqchip configuration, adjust include]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: b194f27995a813a58d4315d2aced748f2a253fd9
https://github.com/siemens/jailhouse/commit/b194f27995a813a58d4315d2aced748f2a253fd9
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A configs/amd-seattle-linux-demo.c
A samples/kernel-inmate-amd-seattle.dts
Log Message:
-----------
config: add linux inmate cell config for AMD Seattle
Add the cell configuration files, and some helper scripts and device
tree for the AMD Seattle development board. These can be used to
load a linux inmate on a cell on that target.
Signed-off-by: Antonios Motakis <[email protected]>
[Jan: adjust to new irqchip configuration, adjust include]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: ea2b62d85da537864e43c89b2f66259d26a2b324
https://github.com/siemens/jailhouse/commit/ea2b62d85da537864e43c89b2f66259d26a2b324
Author: Antonios Motakis <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
A Documentation/non-root-linux-arm64.txt
Log Message:
-----------
Documentation: add instructions for ARM64 Linux loader
Add a short document describing the use of the Linux loader,
used to run Linux inmates on non-root cells on ARM64.
Signed-off-by: Antonios Motakis <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 943a6a000fecb1588d6e86db1f2ad95f9bd38c6b
https://github.com/siemens/jailhouse/commit/943a6a000fecb1588d6e86db1f2ad95f9bd38c6b
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/entry.S
Log Message:
-----------
arm64: Switch to kernel 4.7+ hyp-stub interface
Kernel 4.7 changed the hyp-stub interface: x0 now encodes the request,
and for SET_VECTORS, x1 holds the address.
Switch over unconditionally. We can still decide later if we want to
make legacy kernel support optional.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: d3ecd06b7b265f5bfd3e9a7e346e5cfdd6938f89
https://github.com/siemens/jailhouse/commit/d3ecd06b7b265f5bfd3e9a7e346e5cfdd6938f89
Author: Jan Kiszka <[email protected]>
Date: 2016-10-05 (Wed, 05 Oct 2016)
Changed paths:
M hypervisor/arch/arm64/include/asm/paging.h
Log Message:
-----------
arm64: Add dsb around EL2 TLB flush
This adds the barriers needed according to ARM DDI 0487A.j, K10.5.3.
Without them, frequent crashes can be observed on the Hi6220, e.g. on
the first access of the freshly mapped GICD.
Signed-off-by: Jan Kiszka <[email protected]>
Compare:
https://github.com/siemens/jailhouse/compare/a39da6f77e6b...d3ecd06b7b26
--
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.