mirror of https://github.com/acidanthera/audk.git
75 lines
2.1 KiB
NASM
75 lines
2.1 KiB
NASM
;-----------------------------------------------------------------------------
|
|
; @file
|
|
; OVMF metadata for the AMD SEV confidential computing guests
|
|
;
|
|
; Copyright (c) 2021, AMD Inc. All rights reserved.<BR>
|
|
;
|
|
; 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
|