Branch: refs/heads/wip/arm64-zero-exits Home: https://github.com/siemens/jailhouse Commit: 93edbb6275fa649b061b09ba9c292a0cfde18d16 https://github.com/siemens/jailhouse/commit/93edbb6275fa649b061b09ba9c292a0cfde18d16 Author: Jan Kiszka <jan.kis...@siemens.com> Date: 2020-08-29 (Sat, 29 Aug 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 <jan.kis...@siemens.com> Commit: 4c3c2f91cef0bcda2f877028a039392ebcb8a931 https://github.com/siemens/jailhouse/commit/4c3c2f91cef0bcda2f877028a039392ebcb8a931 Author: Jan Kiszka <jan.kis...@siemens.com> Date: 2020-08-29 (Sat, 29 Aug 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 <jan.kis...@siemens.com> Commit: 888df7aab8e3af1882d8417525aff5032b329662 https://github.com/siemens/jailhouse/commit/888df7aab8e3af1882d8417525aff5032b329662 Author: Jan Kiszka <jan.kis...@siemens.com> Date: 2020-08-29 (Sat, 29 Aug 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 <jan.kis...@siemens.com> Commit: 5c2856efa9f37bfa9f266bec6aad543fe07f8478 https://github.com/siemens/jailhouse/commit/5c2856efa9f37bfa9f266bec6aad543fe07f8478 Author: Jan Kiszka <jan.kis...@siemens.com> Date: 2020-08-29 (Sat, 29 Aug 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 <jan.kis...@siemens.com> Commit: 80a69b1ab40cf8849e00ae9604d880c4b5903efe https://github.com/siemens/jailhouse/commit/80a69b1ab40cf8849e00ae9604d880c4b5903efe Author: Jan Kiszka <jan.kis...@siemens.com> Date: 2020-09-02 (Wed, 02 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 <jan.kis...@siemens.com> Commit: 60a12f2d2539c78131722d3f91aeb940f76a4555 https://github.com/siemens/jailhouse/commit/60a12f2d2539c78131722d3f91aeb940f76a4555 Author: Jan Kiszka <jan.kis...@siemens.com> Date: 2020-09-04 (Fri, 04 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 <jan.kis...@siemens.com> Commit: 5534d769abb42e33a3e1d4e758c350e6935ec083 https://github.com/siemens/jailhouse/commit/5534d769abb42e33a3e1d4e758c350e6935ec083 Author: Jan Kiszka <jan.kis...@siemens.com> Date: 2020-09-04 (Fri, 04 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 <jan.kis...@siemens.com> Commit: 884a9103eaa3f945705b0d1ad9e1a07fef276dcb https://github.com/siemens/jailhouse/commit/884a9103eaa3f945705b0d1ad9e1a07fef276dcb Author: Jan Kiszka <jan.kis...@siemens.com> Date: 2020-09-04 (Fri, 04 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 <jan.kis...@siemens.com> Commit: 98061469d04eacbb764511d3424ba7f866247347 https://github.com/siemens/jailhouse/commit/98061469d04eacbb764511d3424ba7f866247347 Author: Jan Kiszka <jan.kis...@siemens.com> Date: 2020-09-04 (Fri, 04 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 <jan.kis...@siemens.com> Compare: https://github.com/siemens/jailhouse/compare/e0ef829c8589...98061469d04e -- 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 jailhouse-dev+unsubscr...@googlegroups.com. 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/e0ef82-980614%40github.com.