Branch: refs/heads/wip/arm64-zero-exits
Home: https://github.com/siemens/jailhouse
Commit: 1163c971e98ef714235d9be0d54641ee26748168
https://github.com/siemens/jailhouse/commit/1163c971e98ef714235d9be0d54641ee26748168
Author: Jan Kiszka <[email protected]>
Date: 2020-09-21 (Mon, 21 Sep 2020)
Changed paths:
M hypervisor/arch/arm-common/gic-v2.c
Log Message:
-----------
arm-common: Reorder gicv2_cpu_init
This pulls CPU ID validation and gicv2_target_cpu_map setup to the
beginning of gicv2_cpu_init so that we can fail early if needed, before
any changes to the hardware configuration are made. This will also help
when introducing SDEI-based management interrupts.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: a208d69423892b2fc06c1c6ac9aca64bd2ac481c
https://github.com/siemens/jailhouse/commit/a208d69423892b2fc06c1c6ac9aca64bd2ac481c
Author: Jan Kiszka <[email protected]>
Date: 2020-09-21 (Mon, 21 Sep 2020)
Changed paths:
M hypervisor/arch/arm-common/smccc.c
M hypervisor/arch/arm/include/asm/smc.h
M hypervisor/arch/arm64/include/asm/smc.h
Log Message:
-----------
arm/arm64: Expand return type of smc helpers to long
This allows to evaluate all 64 bits on arm64. Will be needed for SDEI.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: c2dba58e622f6d54006eec1e85e43667b5342832
https://github.com/siemens/jailhouse/commit/c2dba58e622f6d54006eec1e85e43667b5342832
Author: Jan Kiszka <[email protected]>
Date: 2020-09-21 (Mon, 21 Sep 2020)
Changed paths:
M hypervisor/arch/arm/include/asm/smc.h
M hypervisor/arch/arm64/include/asm/smc.h
Log Message:
-----------
arm/arm64: Add further smc helpers
Will be used for SDEI. Actually not on ARM, but we add the smc_arg2 to
please the build and avoid surprises once it is used for real.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: ea2e1e2a7f4b688576d07d9bef3d7a5f1336a95d
https://github.com/siemens/jailhouse/commit/ea2e1e2a7f4b688576d07d9bef3d7a5f1336a95d
Author: Jan Kiszka <[email protected]>
Date: 2020-09-21 (Mon, 21 Sep 2020)
Changed paths:
M hypervisor/arch/arm64/setup.c
Log Message:
-----------
arm64: Reorder arch_cpu_init
This will allow to modify the hcr value based on the result of
arm_cpu_init when SDEI is in play.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: b4473b6316e7ca3d715bb0ce6805948a1c34032c
https://github.com/siemens/jailhouse/commit/b4473b6316e7ca3d715bb0ce6805948a1c34032c
Author: Jan Kiszka <[email protected]>
Date: 2020-09-21 (Mon, 21 Sep 2020)
Changed paths:
M hypervisor/arch/arm-common/control.c
M hypervisor/arch/arm-common/include/asm/smccc.h
M hypervisor/arch/arm-common/irqchip.c
M hypervisor/arch/arm-common/smccc.c
Log Message:
-----------
arm-common: Add SDEI-based management event injection support
This is the first building block for switching to management interrupts
using the Software Delegated Exception Interface (SDEI) which will allow
to pass the GICC to the guest.
In this step, the feature flag is introduced - but not yet set -, and
arch_send_event is augmented with sending the event via
SDEI_EVENT_SIGNAL, software event 0.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: 0f6a8598d104bd63825740e10560cba248a34245
https://github.com/siemens/jailhouse/commit/0f6a8598d104bd63825740e10560cba248a34245
Author: Jan Kiszka <[email protected]>
Date: 2020-09-21 (Mon, 21 Sep 2020)
Changed paths:
M hypervisor/arch/arm-common/gic-v2.c
M hypervisor/arch/arm-common/gic-v3.c
M hypervisor/arch/arm-common/irqchip.c
Log Message:
-----------
arm-common: Pass through GIC CPU interface in SDEI mode
When SDEI is used for management interrupts, we can give the gicc
completely to the cell. This requires to skip gic-v2 and gic-v3 per-cpu
initializations and to map the physical gicc-v2 into the cell or to not
enable ICH_HCR_EN in case of gic-v3. Furthermore, injected interrupts
now have to be sent as physical SGI to the target, rather than being
queued for the virtual interface.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: d0ca9f814ebb873e6f6c6a5b4a41ade61ee15346
https://github.com/siemens/jailhouse/commit/d0ca9f814ebb873e6f6c6a5b4a41ade61ee15346
Author: Jan Kiszka <[email protected]>
Date: 2020-09-21 (Mon, 21 Sep 2020)
Changed paths:
M hypervisor/arch/arm-common/include/asm/smccc.h
M hypervisor/arch/arm64/asm-defines.c
M hypervisor/arch/arm64/entry.S
M hypervisor/arch/arm64/include/asm/entry.h
M hypervisor/arch/arm64/include/asm/percpu_fields.h
M hypervisor/arch/arm64/setup.c
M hypervisor/arch/arm64/traps.c
Log Message:
-----------
arm64: Add SDEI-based management interrupt handling
This brings the arm64-specific bits to handle management interrupts sent
via SDEI.
The pattern for processing them is derived from NMI-based injection on
x86: The SDEI event can come asynchronously at any time while in EL2,
EL1 or EL0. To avoid having to synchronize with running EL2, translate
it into a trap that is triggered on EL1/0 reentry. We use an invalid
VTCR_EL2 value for this and set the per-cpu sdei_event flag. When EL2
finds this flag set on handling the trap, it kicks off SGI_EVENT
handling and restores VTCR_EL2.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: bae7f122f84d84b97d2477d27168eb3d188c33ae
https://github.com/siemens/jailhouse/commit/bae7f122f84d84b97d2477d27168eb3d188c33ae
Author: Jan Kiszka <[email protected]>
Date: 2020-09-21 (Mon, 21 Sep 2020)
Changed paths:
M hypervisor/arch/arm64/setup.c
Log Message:
-----------
arm64: Do not trap interrupts when using SDEI
They can (and must) be delivered directly to the cell in that mode. GIC
CPU interfaces are already passed through.
Signed-off-by: Jan Kiszka <[email protected]>
Commit: d5f4ec3db4b308bf882dac307a80129a6a014055
https://github.com/siemens/jailhouse/commit/d5f4ec3db4b308bf882dac307a80129a6a014055
Author: Jan Kiszka <[email protected]>
Date: 2020-09-21 (Mon, 21 Sep 2020)
Changed paths:
M hypervisor/arch/arm-common/include/asm/smccc.h
M hypervisor/arch/arm-common/setup.c
M hypervisor/arch/arm-common/smccc.c
Log Message:
-----------
arm-common: Detect availability of SDEI on arm64
Enhance smccc_discover() to detect if SDEI is available on all CPUs on
arm64. Fail on inconsistent availability, now returning and error code.
SDEI is practically only available on arm64 and also only implemented
there in Jailhouse. So skip the probing on 32-bit.
This activates the previously introduced SDEI paths.
Signed-off-by: Jan Kiszka <[email protected]>
Compare:
https://github.com/siemens/jailhouse/compare/98061469d04e...d5f4ec3db4b3
--
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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/siemens/jailhouse/push/refs/heads/wip/arm64-zero-exits/980614-d5f4ec%40github.com.