Skip to content

Support for running as a pKVM protected guest

Will Deacon linux-arm-kernel linux-coco 2 versions – Applied

Status from this message: Applied to arm64 (for-next/pkvm-guest), thanks!

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest7 patches 5 repliesApplied
  2. v16 patches 16 repliesSuperseded

Changes in v2 from the cover letter

* New patch allocating additional hypercalls for future pKVM usage

Patches in v2 Applied

#Subject and filesSizeRepliesApplied
1/7firmware/smccc: Call arch-specific hook on discovering KVM servicesarch/arm/include/asm/hypervisor.h arch/arm64/include/asm/hypervisor.h drivers/firmware/smccc/kvm_guest.c+8 -00 replies
2/7drivers/virt: pkvm: Add initial support for running as a protected guestDocumentation/virt/kvm/arm/hypercalls.rst arch/arm64/include/asm/hypervisor.h drivers/virt/coco/Kconfig +5 more+88 -00 replies
3/7arm64: mm: Add top-level dispatcher for internal mem_encrypt APIarch/arm64/Kconfig arch/arm64/include/asm/mem_encrypt.h arch/arm64/include/asm/set_memory.h +2 more+68 -10 replies
4/7drivers/virt: pkvm: Hook up mem_encrypt API using pKVM hypercallsDocumentation/virt/kvm/arm/hypercalls.rst drivers/virt/coco/pkvm-guest/arm-pkvm-guest.c include/linux/arm-smccc.h+119 -00 replies
5/7arm64: mm: Add confidential computing hook to ioremap_prot()arch/arm64/include/asm/io.h arch/arm64/mm/ioremap.c+26 -12 replies
6/7drivers/virt: pkvm: Intercept ioremap using pKVM MMIO_GUARD hypercallDocumentation/virt/kvm/arm/hypercalls.rst drivers/virt/coco/pkvm-guest/arm-pkvm-guest.c include/linux/arm-smccc.h+68 -00 replies
7/7arm64: smccc: Reserve block of KVM "vendor" services for pKVM hypercallsinclude/linux/arm-smccc.h+60 -00 replies

Reviews trailers per patch

None of the 7 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchMarc ZyngierSteven Price
SeriesA-b R-b
1/7
2/7
3/7
4/7
5/7
6/7
7/7

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [PATCH v2 0/7] Support for running as a pKVM protected guest

Hi all,

This is version two of the series previously posted here:

https://lore.kernel.org/r/[email protected]

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/[email protected]

Cc Sudeep Holla <[email protected]>
Cc Catalin Marinas <[email protected]>
Cc Lorenzo Pieralisi <[email protected]>
Cc Suzuki Poulose <[email protected]>
Cc Steven Price <[email protected]>
Cc Oliver Upton <[email protected]>
Cc Marc Zyngier <[email protected]>

--->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
Signature · 1 line
2.46.0.469.g59c65b2a67-goog