;----------------------------------------------------------------------------- ; @file ; OVMF metadata for the AMD SEV confidential computing guests ; ; Copyright (c) 2021, AMD Inc. All rights reserved.
; ; SPDX-License-Identifier: BSD-2-Clause-Patent ;----------------------------------------------------------------------------- BITS 64 %define OVMF_SEV_METADATA_VERSION 1 ; The section must be accepted or validated by the VMM before the boot %define OVMF_SECTION_TYPE_SNP_SEC_MEM 0x1 ; AMD SEV-SNP specific sections %define OVMF_SECTION_TYPE_SNP_SECRETS 0x2 ; ; The section contains the hypervisor pre-populated CPUID values. ; In the case of SEV-SNP, the CPUID values are filtered and measured by ; the SEV-SNP firmware. ; The CPUID format is documented in SEV-SNP firmware spec 0.9 section 7.1 ; (CPUID function structure). ; %define OVMF_SECTION_TYPE_CPUID 0x3 ALIGN 16 TIMES (15 - ((OvmfSevGuidedStructureEnd - OvmfSevGuidedStructureStart + 15) % 16)) DB 0 OvmfSevGuidedStructureStart: ; ; OvmfSev metadata descriptor ; OvmfSevMetadataGuid: _DescriptorSev: DB 'A','S','E','V' ; Signature DD OvmfSevGuidedStructureEnd - _DescriptorSev ; Length DD OVMF_SEV_METADATA_VERSION ; Version DD (OvmfSevGuidedStructureEnd - _DescriptorSev - 16) / 12 ; Number of sections ; Region need to be pre-validated by the hypervisor PreValidate1: DD SNP_SEC_MEM_BASE_DESC_1 DD SNP_SEC_MEM_SIZE_DESC_1 DD OVMF_SECTION_TYPE_SNP_SEC_MEM PreValidate2: DD SNP_SEC_MEM_BASE_DESC_2 DD SNP_SEC_MEM_SIZE_DESC_2 DD OVMF_SECTION_TYPE_SNP_SEC_MEM ; SEV-SNP Secrets page SevSnpSecrets: DD SEV_SNP_SECRETS_BASE DD SEV_SNP_SECRETS_SIZE DD OVMF_SECTION_TYPE_SNP_SECRETS ; CPUID values CpuidSec: DD CPUID_BASE DD CPUID_SIZE DD OVMF_SECTION_TYPE_CPUID ; Region need to be pre-validated by the hypervisor PreValidate3: DD SNP_SEC_MEM_BASE_DESC_3 DD SNP_SEC_MEM_SIZE_DESC_3 DD OVMF_SECTION_TYPE_SNP_SEC_MEM OvmfSevGuidedStructureEnd: ALIGN 16