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.

Reply via email to