Branch: refs/heads/next
Home: https://github.com/siemens/jailhouse
Commit: b5b9dd8b45d49c8f80894cb489b749be5bc2693c
https://github.com/siemens/jailhouse/commit/b5b9dd8b45d49c8f80894cb489b749be5bc2693c
Author: Jan Kiszka <[email protected]>
Date: 2016-11-25 (Fri, 25 Nov 2016)
Changed paths:
M hypervisor/arch/arm-common/ivshmem.c
M hypervisor/arch/x86/ivshmem.c
M hypervisor/include/jailhouse/ivshmem.h
M hypervisor/ivshmem.c
Log Message:
-----------
core: ivshmem: Prepare for INTx support
Analogously to arch_ivshmem_update_msix, introduce the arch callback
arch_ivshmem_update_intx which is invoked whenever the new INTx control
register is written.
The INTx controll register definition is taken from the original
revision-0 ivshmem device, though without adding the status register at
offset 4 as well. We model INTx as edge-triggered - in deviation from
the PCI spec -, so there is no reason to add such a register with all
its logic.
Furthermore, we fill the interrupt pin register in the absence of MSI-X,
using standard PCI pin rotation based on the device slot.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 003cbbabe3a9478a05739990a910c879ea17c218
https://github.com/siemens/jailhouse/commit/003cbbabe3a9478a05739990a910c879ea17c218
Author: Jan Kiszka <[email protected]>
Date: 2016-11-25 (Fri, 25 Nov 2016)
Changed paths:
M hypervisor/arch/arm-common/ivshmem.c
Log Message:
-----------
arm: ivshmem: Add support for INTx-based interrupt injection
Fall back to INTx in case an ivshmem device comes without MSI-X vectors.
This is now implemented for ARM, using standard PCI pin rotation based
on the device slot.
x86 has no need for INTx as MSI-X is always supported (plus there is a
less uniform legacy INTx injection path which prevents a generic
solution).
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 3604efded7fd14bb629c7e8fb7fb8d469e3a1b1b
https://github.com/siemens/jailhouse/commit/3604efded7fd14bb629c7e8fb7fb8d469e3a1b1b
Author: Jan Kiszka <[email protected]>
Date: 2016-11-25 (Fri, 25 Nov 2016)
Changed paths:
M driver/cell.c
M driver/main.c
M driver/pci.c
M driver/pci.h
Log Message:
-----------
driver: Remove shared memory devices prior to disabling the hypervisor
Once the Jailhouse is disabled, there is no one handling accesses to the
virtual shared memory devices anymore. So better remove them from Linux
before the actual disabling hypercall. To remain symmetric, we also pull
adding out of jailhouse_cell_register_root.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 2524bc569c4fd101e9ff1c5ea150368aac073ab4
https://github.com/siemens/jailhouse/commit/2524bc569c4fd101e9ff1c5ea150368aac073ab4
Author: Jan Kiszka <[email protected]>
Date: 2016-11-25 (Fri, 25 Nov 2016)
Changed paths:
M driver/Makefile
M driver/main.c
M driver/pci.c
M driver/pci.h
A driver/vpci_template.dts
Log Message:
-----------
driver: Register virtual PCI controller via device tree overlay
In order to add a virtual PCI host controller to the root cell after
Jailhouse activation on ARM/ARM64, we need to inject a device tree
modification. For this purpose, overlays were invented and are already
support by upstream since 3.19.
All we need to do is to fill a fragment template with some variable
parameters that can be derived from the system configuration: virtual
IRQ base, ECAM base address, and the uncached memory window size, which
can be derived from the number of ivshmem devices. We also need to
resolve the link to the GIC as the host's device tree may not have the
required symbols included.
Once the fragment is patched, we can register it, and Linux will detect
and handle the new platform device.
Note that the upstream pci-host-generic Linux driver still has issues
when it comes to unloading (and actually also rollback on errors).
Fixing this is WiP.
To use this feature with the Tegra K1, the kernel has to be patched to
allow multi-domain PCI so that a second PCI host controller can be
enabled besides the non-extensible physical controller (see
https://groups.google.com/d/msg/jailhouse-dev/5BnCAFAzykI/wHgj2UUbCwAJ).
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 5d83bbd57413b121468fb7adaca49254b9afc894
https://github.com/siemens/jailhouse/commit/5d83bbd57413b121468fb7adaca49254b9afc894
Author: Jan Kiszka <[email protected]>
Date: 2016-11-25 (Fri, 25 Nov 2016)
Changed paths:
M configs/amd-seattle-linux-demo.c
M configs/amd-seattle.c
M configs/dts/inmate-amd-seattle.dts
Log Message:
-----------
config: Enable PCI and inter-cell communication for AMD Seattle
Describe the PCI resources of the AMD Seattle so that devices can be
reassigned.
Also add one ivshmem device for networking purposes and extend the
non-root Linux cell accordingly. We can safely expose the physical
GICv2m for this purpose, but read-only. To avoid that root and non-root
cell use the same MSI frame (which are reported by the GICv2m),
overwrite the frame parameter in the non-root cell device tree.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 79abe7517a49e212387aaf442dd60f75b5d53179
https://github.com/siemens/jailhouse/commit/79abe7517a49e212387aaf442dd60f75b5d53179
Author: Jan Kiszka <[email protected]>
Date: 2016-11-25 (Fri, 25 Nov 2016)
Changed paths:
M configs/dts/inmate-jetson-tk1.dts
M configs/jetson-tk1-linux-demo.c
M configs/jetson-tk1.c
Log Message:
-----------
configs: Enable inter-cell communication for Jetson TK1
Add ivshmem devices to root cell and linux-demo for networking purposes.
A virtual PCI host is introduced and INTx SPIs are carefully selected
for both sides so that they fall into the supported set of the GICD and
do not overlap with actually used interrupts.
We need to go the vPCI path because Linux does not allow us to inject
any virtual devices into the physical bus, see also
https://www.mail-archive.com/[email protected]/msg01015.html.
To enable the second PCI host controller, multi-domain PCI support is
required for the Jetson, thus a small patch to the related Kconfig file
of the kernel.
The K1 only supports 160 SPIs, so adjust the root cell mask at this
chance as well.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: b871979055f6c9f812eb3ea7f0414b8bd9321ebc
https://github.com/siemens/jailhouse/commit/b871979055f6c9f812eb3ea7f0414b8bd9321ebc
Author: Jan Kiszka <[email protected]>
Date: 2016-11-25 (Fri, 25 Nov 2016)
Changed paths:
M configs/bananapi-linux-demo.c
M configs/bananapi.c
M configs/dts/inmate-bananapi.dts
Log Message:
-----------
configs: Enable inter-cell communication for Banana Pi
Add ivshmem devices to root cell and linux-demo for networking purposes.
A virtual PCI host is introduced and INTx SPIs are carefully selected
for both sides so that they fall into the supported set of the GICD and
do not overlap with actually used interrupts.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: fb6e2eff3a40be286566cbdd8c86434b2639b41c
https://github.com/siemens/jailhouse/commit/fb6e2eff3a40be286566cbdd8c86434b2639b41c
Author: Jan Kiszka <[email protected]>
Date: 2016-11-25 (Fri, 25 Nov 2016)
Changed paths:
M configs/dts/inmate-hikey.dts
M configs/hikey-linux-demo.c
M configs/hikey.c
Log Message:
-----------
configs: Enable inter-cell communication for HiKey
Add ivshmem devices to root cell and linux-demo for networking purposes.
A virtual PCI host is introduced and INTx SPIs are carefully selected
for both sides so that they fall into the supported set of the GICD and
do not overlap with actually used interrupts.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 37a7896a29c53e8c6deb373146ecc9ead143a92e
https://github.com/siemens/jailhouse/commit/37a7896a29c53e8c6deb373146ecc9ead143a92e
Author: Jan Kiszka <[email protected]>
Date: 2016-11-25 (Fri, 25 Nov 2016)
Changed paths:
M tools/jailhouse-completion.bash
Log Message:
-----------
tools: Fix cell completion for empty lists
Commands that can only work on non-root cells have no cells to list if
just the root cell is running. Setting nullglob while listing and
returning early if list is empty resolves this. We can even simplify
the code.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 51fc53a10f89efb07b5bf5b67976f045432ead20
https://github.com/siemens/jailhouse/commit/51fc53a10f89efb07b5bf5b67976f045432ead20
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 Nov 2016)
Changed paths:
M hypervisor/arch/x86/vcpu.c
Log Message:
-----------
x86: Only allow changes to MTRR enable bit in IA32_MTRR_DEF_TYPE
Expose the system-wide state that we inherited when starting Jailhouse
also to non-root cells and only allow modifications of the enable bit.
This ensure that non-root cells see the correct MTRR mapping, including
the proper default type. Specifically Linux may otherwise get confused
and start to map the shared memory regions as uncacheable - obviously
reducing the inter-cell communication performance.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: a26ab5518c52bb64b47d5839e0b862e3b12d8091
https://github.com/siemens/jailhouse/commit/a26ab5518c52bb64b47d5839e0b862e3b12d8091
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 Nov 2016)
Changed paths:
M hypervisor/setup.c
Log Message:
-----------
core: Instrument error on CPU number mismatch
Allows to identify the reason if CONFIG_TRACE_ERROR is enabled.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: ebe39b7dd2ea84dbcbe69158e99d64d3098dc40f
https://github.com/siemens/jailhouse/commit/ebe39b7dd2ea84dbcbe69158e99d64d3098dc40f
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 Nov 2016)
Changed paths:
M hypervisor/include/jailhouse/cell-config.h
Log Message:
-----------
core: Reorder platform_info.arm for better alignment
Cosmetic change because these values are only used during setup. But we
try to align things consistently throughout the config.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: ecf7a5b784a0ebe82fbd0cd9b44eb3bcab484540
https://github.com/siemens/jailhouse/commit/ecf7a5b784a0ebe82fbd0cd9b44eb3bcab484540
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 Nov 2016)
Changed paths:
M configs/f2a88xm-hd3.c
M configs/h87i.c
M configs/qemu-vm.c
M hypervisor/arch/x86/vtd.c
M hypervisor/include/jailhouse/cell-config.h
M tools/root-cell-config.c.tmpl
Log Message:
-----------
configs, core: Make interrupt_limit vtd-specific
There is no use for this platform parameter beyond Intel VT-d support.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 6fe3e375def3c93ac0f161f14b8768176780cda1
https://github.com/siemens/jailhouse/commit/6fe3e375def3c93ac0f161f14b8768176780cda1
Author: Ralf Ramsauer <[email protected]>
Date: 2016-11-27 (Sun, 27 Nov 2016)
Changed paths:
M tools/jailhouse-cell-linux
Log Message:
-----------
tools: let jailhouse-cell-linux check header signatures
We do have magic bytes in configfile headers for distunguishing cell and
system configurations. Add this check to jailhouse-cell-linux to avoid
passing system configurations to jailhouse-cell-linux.
Signed-off-by: Ralf Ramsauer <[email protected]>
[Jan: wrapped over-long line]
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 2c1dff2ce2f3c6e1551b418c95a6966061d779fa
https://github.com/siemens/jailhouse/commit/2c1dff2ce2f3c6e1551b418c95a6966061d779fa
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 Nov 2016)
Changed paths:
M configs/amd-seattle-gic-demo.c
M configs/amd-seattle-linux-demo.c
M configs/amd-seattle-uart-demo.c
M configs/amd-seattle.c
M configs/apic-demo.c
M configs/bananapi-gic-demo.c
M configs/bananapi-linux-demo.c
M configs/bananapi-uart-demo.c
M configs/bananapi.c
M configs/e1000-demo.c
M configs/f2a88xm-hd3.c
M configs/foundation-v8-gic-demo.c
M configs/foundation-v8-linux-demo.c
M configs/foundation-v8-uart-demo.c
M configs/foundation-v8.c
M configs/h87i.c
M configs/hikey-gic-demo.c
M configs/hikey-linux-demo.c
M configs/hikey.c
M configs/imb-a180.c
M configs/ioapic-demo.c
M configs/ivshmem-demo.c
M configs/jetson-tk1-demo.c
M configs/jetson-tk1-linux-demo.c
M configs/jetson-tk1.c
M configs/linux-x86-demo.c
M configs/pci-demo.c
M configs/qemu-vm.c
M configs/smp-demo.c
M configs/tiny-demo.c
M configs/vexpress-gic-demo.c
M configs/vexpress-linux-demo.c
M configs/vexpress-uart-demo.c
M configs/vexpress.c
M driver/cell.c
M driver/main.c
M hypervisor/include/jailhouse/cell-config.h
M tools/jailhouse-cell-linux
M tools/root-cell-config.c.tmpl
Log Message:
-----------
configs, driver, tools: Add and validate config revision
A common source of breakages during development and testing is to run
with outdated configuration files against newer binaries, or vice versa.
Catch and report this by converting the last 2 bytes of the system and
cell config signatures into a revision number. Whenever we change their
layout or semantic, this number shall be increased.
Configs were auto-converted via
sed -i -e '/\.signature =/a\\t\t.revision = JAILHOUSE_CONFIG_REVISION,' \
`git ls-files configs/*.c`
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 0416fb7578fd1a63d78723a8c4663715e12a27f4
https://github.com/siemens/jailhouse/commit/0416fb7578fd1a63d78723a8c4663715e12a27f4
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 Nov 2016)
Changed paths:
M tools/jailhouse-cell-linux
Log Message:
-----------
tools: Fix writing of x86 Linux loader parameters
Fixes: a7b8b414c893 ("tools: Prepare jailhouse-cell-linux for non-x86
support")
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 4898b4aa3f262497689afe16181c8bdd57648a10
https://github.com/siemens/jailhouse/commit/4898b4aa3f262497689afe16181c8bdd57648a10
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 Nov 2016)
Changed paths:
M tools/jailhouse-cell-linux
Log Message:
-----------
tools: Add missing raise to Linux loader error path
Fixes: 077e62e372c5 ("tools: Add ARM and ARM64 support to Linux loader
script")
Reported-by: Ralf Ramsauer <[email protected]>
Signed-off-by: Jan Kiszka <[email protected]>
Compare:
https://github.com/siemens/jailhouse/compare/91ada8323db0...4898b4aa3f26
--
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.