AMD SEV and SEV-ES support measured direct boot with kernel/initrd/cmdline hashes injected by QEMU and verified by OVMF during boot.
To enable the same approach for AMD SEV-SNP, we declare the kernel hashes page in the SNP metadata list as a new region type. When QEMU encounters that region in the list, it will insert the hashes of kernel/initrd/cmdline and encrypt the page (or, if the user turned off kernel hashes, it will validate the page as a zero page). The first patch rearranges the pages in AmdSevX64's MEMFD so they are in the same order both as in the main target (OvmfPkgX64), with the exception of the SEV Launch Secret page which isn't defined in OvmfPkgX64. The second patch modifies the SNP metadata structure such that on AmdSev target the SEV Launch Secret page is explicitly defined in SNP metadata list, and therefore it is not included in the ranges that are pre-validated (zero pages) by the VMM; instead the VMM will insert content into this page (the hashes table), or mark it explicitly as a zero page if no hashes are added. This series is available at: https://github.com/confidential-containers-demo/edk2/tree/snp-kernel-hashes-v3 A corresponding QEMU RFC series will be published soon in qemu-devel, or use this tree: https://github.com/confidential-containers-demo/qemu/tree/snp-kernel-hashes-v3 Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org> Cc: Jiewen Yao <jiewen....@intel.com> Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Gerd Hoffmann <kra...@redhat.com> Cc: Erdem Aktas <erdemak...@google.com> Cc: James Bottomley <j...@linux.ibm.com> Cc: Min Xu <min.m...@intel.com> Cc: Tom Lendacky <thomas.lenda...@amd.com> Cc: Michael Roth <michael.r...@amd.com> Cc: Ashish Kalra <ashish.ka...@amd.com> Cc: Mario Smarduch <mario.smard...@amd.com> Cc: Tobin Feldman-Fitzthum <to...@linux.ibm.com> --- v3 changes: * Define the kernel hashes page in the SNP metadata table (thanks Tom) v2: https://edk2.groups.io/g/devel/message/100362 v2 changes: * Rebased on master * Updated AmdSev MEMFD size to match OvmfX64 v1: https://edk2.groups.io/g/devel/message/88137 Dov Murik (2): OvmfPkg/AmdSev: Reorder MEMFD pages to match the order in OvmfPkgX64.fdf OvmfPkg/ResetVector: Define SNP metadata for kernel hashes OvmfPkg/AmdSev/AmdSevX64.fdf | 27 ++++++++++---------- OvmfPkg/ResetVector/ResetVector.nasmb | 11 +++++++- OvmfPkg/ResetVector/X64/OvmfSevMetadata.asm | 11 ++++++++ 3 files changed, 35 insertions(+), 14 deletions(-) -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#100625): https://edk2.groups.io/g/devel/message/100625 Mute This Topic: https://groups.io/mt/97335488/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-