This patch series enables SNP-host support when running on Hyper-V, which allows launching nested SNP guests. No guest or qemu changes are necessary for this to work. Patch 1 deals with allocating an RMP table which is not provided by firmware/hypervisor. Patch 2 implements MSR-based rmpupdate/psmash instructions which are meant for virtualized environments. Patch 3 maintains the rmptable for internal kernel page tracking. Patch 4 makes sure that the kernel does not disable SNP support during early CPU init. Patch 5 allows SNP initialization to proceed when no iommus are available. Patch 6 adds a quirk in psp command buffer handling, because of differences in SNP firmware spec interpretation. This series depends on - "Add AMD Secure Nested Paging (SEV-SNP) Hypervisor Support" (applies on top of RFC v7) https://lore.kernel.org/lkml/20221214194056.161492-1-michael.roth@xxxxxxx/ - "Support ACPI PSP on Hyper-V" https://lore.kernel.org/lkml/20230123152250.26413-1-jpiotrowski@xxxxxxxxxxxxxxxxxxx/ Jeremi Piotrowski (6): x86/hyperv: Allocate RMP table during boot x86/sev: Add support for NestedVirtSnpMsr x86/sev: Maintain shadow rmptable on Hyper-V x86/amd: Configure necessary MSRs for SNP during CPU init when running as a guest iommu/amd: Don't fail snp_enable when running virtualized crypto: ccp - Introduce quirk to always reclaim pages after SEV-legacy commands arch/x86/hyperv/hv_init.c | 5 ++ arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/include/asm/hyperv-tlfs.h | 3 + arch/x86/include/asm/mshyperv.h | 3 + arch/x86/include/asm/msr-index.h | 2 + arch/x86/include/asm/sev.h | 2 + arch/x86/kernel/cpu/amd.c | 8 +- arch/x86/kernel/cpu/mshyperv.c | 41 ++++++++++ arch/x86/kernel/sev.c | 122 ++++++++++++++++++++++++++--- drivers/crypto/ccp/sev-dev.c | 6 +- drivers/crypto/ccp/sp-dev.h | 4 + drivers/crypto/ccp/sp-platform.c | 1 + drivers/iommu/amd/init.c | 6 ++ 13 files changed, 191 insertions(+), 13 deletions(-) -- 2.25.1