Branch: refs/heads/next
Home: https://github.com/siemens/jailhouse
Commit: 60e4dc8bc91ad220572da3b449fc9457ffc85d1c
https://github.com/siemens/jailhouse/commit/60e4dc8bc91ad220572da3b449fc9457ffc85d1c
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 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 control 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: 664f89bce316fb5718ff12242e621170803dc1ab
https://github.com/siemens/jailhouse/commit/664f89bce316fb5718ff12242e621170803dc1ab
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 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: 63b116797b483ddc4c9097765c35740148c610a0
https://github.com/siemens/jailhouse/commit/63b116797b483ddc4c9097765c35740148c610a0
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 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: b7fe1fb3c6f034ee63f9428f70e0bc1bef893017
https://github.com/siemens/jailhouse/commit/b7fe1fb3c6f034ee63f9428f70e0bc1bef893017
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 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: fc1346aaae0e8cbe997aa84924b7758e9a74f865
https://github.com/siemens/jailhouse/commit/fc1346aaae0e8cbe997aa84924b7758e9a74f865
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 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: 9d12d037b5f9a7d592d8178702664b3558b69766
https://github.com/siemens/jailhouse/commit/9d12d037b5f9a7d592d8178702664b3558b69766
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 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: 842b98a42213176e9eade258e6b00c8284621948
https://github.com/siemens/jailhouse/commit/842b98a42213176e9eade258e6b00c8284621948
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 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: 25ecb74c6532b9408e270cc104d609d862c43cfe
https://github.com/siemens/jailhouse/commit/25ecb74c6532b9408e270cc104d609d862c43cfe
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 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: 0e87bc06972370de2d1052f578130e91a104024d
https://github.com/siemens/jailhouse/commit/0e87bc06972370de2d1052f578130e91a104024d
Author: Jan Kiszka <[email protected]>
Date: 2016-11-27 (Sun, 27 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: cbd22d838a43161328fcfe7773f17b35690ca420
https://github.com/siemens/jailhouse/commit/cbd22d838a43161328fcfe7773f17b35690ca420
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: 91917eae354ff6adfb835a399863232c8c050082
https://github.com/siemens/jailhouse/commit/91917eae354ff6adfb835a399863232c8c050082
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: ebf21d67c7789d5a1cd696e58aa60696578fb218
https://github.com/siemens/jailhouse/commit/ebf21d67c7789d5a1cd696e58aa60696578fb218
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: 5444c1c2a3cb163c2e8261a31e1eedf8d97d954f
https://github.com/siemens/jailhouse/commit/5444c1c2a3cb163c2e8261a31e1eedf8d97d954f
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: c295bdb37c172363bdda8cecfcbaf784c69cee0a
https://github.com/siemens/jailhouse/commit/c295bdb37c172363bdda8cecfcbaf784c69cee0a
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: 80226df56d9e2c4f4126135f49ab1ed20ffe0d7a
https://github.com/siemens/jailhouse/commit/80226df56d9e2c4f4126135f49ab1ed20ffe0d7a
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: d57f3fdc5258203b8fc999687f9850bbf963cb5d
https://github.com/siemens/jailhouse/commit/d57f3fdc5258203b8fc999687f9850bbf963cb5d
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: 65a6b10373eaad3f34fd7a5be8ef80f1f3ae302c
https://github.com/siemens/jailhouse/commit/65a6b10373eaad3f34fd7a5be8ef80f1f3ae302c
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/4898b4aa3f26...65a6b10373ea
--
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.