From: Jiewen Yao Date: Sun, 23 Oct 2016 15:09:16 +0000 (+0800) Subject: MdeModulePkg/Include: Add PiSmmMemoryAttributesTable.h X-Git-Tag: edk2-stable201903~5166 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=97d2760429d60d557941af051a8a7e51678d7f91 MdeModulePkg/Include: Add PiSmmMemoryAttributesTable.h This table describes the SMM memory attributes. The new GUID gEdkiiPiSmmMemoryAttributesTableGuid and its associated structure are based on the EFI_MEMORY_ATTRIBUTES_TABLE and GUID from the UEFI Specification. Cc: Jeff Fan Cc: Feng Tian Cc: Star Zeng Cc: Michael D Kinney Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiewen Yao Tested-by: Laszlo Ersek Reviewed-by: Jeff Fan Reviewed-by: Michael Kinney [lersek@redhat.com: update commit message as requested by Michael Kinney] Signed-off-by: Laszlo Ersek --- diff --git a/MdeModulePkg/Include/Guid/PiSmmMemoryAttributesTable.h b/MdeModulePkg/Include/Guid/PiSmmMemoryAttributesTable.h new file mode 100644 index 0000000000..317eae10ce --- /dev/null +++ b/MdeModulePkg/Include/Guid/PiSmmMemoryAttributesTable.h @@ -0,0 +1,51 @@ +/** @file + Define the GUID of the EDKII PI SMM memory attribute table, which + is published by PI SMM Core. + +Copyright (c) 2016, Intel Corporation. All rights reserved.
+This program and the accompanying materials are licensed and made available under +the terms and conditions of the BSD License that accompanies this distribution. +The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php. + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef _PI_SMM_MEMORY_ATTRIBUTES_TABLE_H_ +#define _PI_SMM_MEMORY_ATTRIBUTES_TABLE_H_ + +#define EDKII_PI_SMM_MEMORY_ATTRIBUTES_TABLE_GUID {\ + 0x6b9fd3f7, 0x16df, 0x45e8, {0xbd, 0x39, 0xb9, 0x4a, 0x66, 0x54, 0x1a, 0x5d} \ +} + +// +// The PI SMM memory attribute table contains the SMM memory map for SMM image. +// +// This table is installed to SMST as SMM configuration table. +// +// This table is published at gEfiSmmEndOfDxeProtocolGuid notification, because +// there should be no more SMM driver loaded after that. The EfiRuntimeServicesCode +// region should not be changed any more. +// +// This table is published, if and only if all SMM PE/COFF have aligned section +// as specified in UEFI specification Section 2.3. For example, IA32/X64 alignment is 4KiB. +// +// If this table is published, the EfiRuntimeServicesCode contains code only +// and it is EFI_MEMORY_RO; the EfiRuntimeServicesData contains data only +// and it is EFI_MEMORY_XP. +// +typedef struct { + UINT32 Version; + UINT32 NumberOfEntries; + UINT32 DescriptorSize; + UINT32 Reserved; +//EFI_MEMORY_DESCRIPTOR Entry[1]; +} EDKII_PI_SMM_MEMORY_ATTRIBUTES_TABLE; + +#define EDKII_PI_SMM_MEMORY_ATTRIBUTES_TABLE_VERSION 0x00000001 + +extern EFI_GUID gEdkiiPiSmmMemoryAttributesTableGuid; + +#endif