[PATCH v2 0/7] Support for running as a pKVM protected guest
From: Will Deacon <will@kernel.org>
Date: 2024-08-30 13:03:04
Also in:
linux-coco
Hi all, This is version two of the series previously posted here: https://lore.kernel.org/r/20240730151113.1497-1-will@kernel.org (local) Changes since v1: * New patch allocating additional hypercalls for future pKVM usage It looks like the CCA series is now using some of the pieces here [1], so it would be great to merge this with an Ack from the kvmarm maintainers. Cheers, Will [1] https://lore.kernel.org/r/20240819131924.372366-1-steven.price@arm.com (local) Cc: Sudeep Holla <redacted> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org> Cc: Suzuki Poulose <suzuki.poulose@arm.com> Cc: Steven Price <steven.price@arm.com> Cc: Oliver Upton <redacted> Cc: Marc Zyngier <maz@kernel.org> Cc: linux-coco@lists.linux.dev --->8 Marc Zyngier (1): firmware/smccc: Call arch-specific hook on discovering KVM services Will Deacon (6): drivers/virt: pkvm: Add initial support for running as a protected guest arm64: mm: Add top-level dispatcher for internal mem_encrypt API drivers/virt: pkvm: Hook up mem_encrypt API using pKVM hypercalls arm64: mm: Add confidential computing hook to ioremap_prot() drivers/virt: pkvm: Intercept ioremap using pKVM MMIO_GUARD hypercall arm64: smccc: Reserve block of KVM "vendor" services for pKVM hypercalls Documentation/virt/kvm/arm/hypercalls.rst | 98 ++++++++++++++ arch/arm/include/asm/hypervisor.h | 2 + arch/arm64/Kconfig | 1 + arch/arm64/include/asm/hypervisor.h | 11 ++ arch/arm64/include/asm/io.h | 4 + arch/arm64/include/asm/mem_encrypt.h | 15 +++ arch/arm64/include/asm/set_memory.h | 1 + arch/arm64/mm/Makefile | 2 +- arch/arm64/mm/ioremap.c | 23 +++- arch/arm64/mm/mem_encrypt.c | 50 +++++++ drivers/firmware/smccc/kvm_guest.c | 2 + drivers/virt/coco/Kconfig | 2 + drivers/virt/coco/Makefile | 1 + drivers/virt/coco/pkvm-guest/Kconfig | 10 ++ drivers/virt/coco/pkvm-guest/Makefile | 2 + drivers/virt/coco/pkvm-guest/arm-pkvm-guest.c | 127 ++++++++++++++++++ include/linux/arm-smccc.h | 88 ++++++++++++ 17 files changed, 437 insertions(+), 2 deletions(-) create mode 100644 arch/arm64/include/asm/mem_encrypt.h create mode 100644 arch/arm64/mm/mem_encrypt.c create mode 100644 drivers/virt/coco/pkvm-guest/Kconfig create mode 100644 drivers/virt/coco/pkvm-guest/Makefile create mode 100644 drivers/virt/coco/pkvm-guest/arm-pkvm-guest.c -- 2.46.0.469.g59c65b2a67-goog