diff --git a/UefiCpuPkg/Include/Guid/MmUnblockRegion.h b/UefiCpuPkg/Include/Guid/MmUnblockRegion.h new file mode 100644 index 0000000000..f6a33c348b --- /dev/null +++ b/UefiCpuPkg/Include/Guid/MmUnblockRegion.h @@ -0,0 +1,42 @@ +/** @file + Defines the GUIDed HOB that describes the memory region to be unblocked in MM environment. + + Copyright (c) 2024, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef MM_UNBLOCK_REGION_H_ +#define MM_UNBLOCK_REGION_H_ + +/// +/// The GUID of the UnblockRegion GUIDed HOB. +/// +#define MM_UNBLOCK_REGION_HOB_GUID \ + { \ + 0x7c316fb3, 0x849e, 0x4ee7, {0x87, 0xfc, 0x16, 0x2d, 0x0b, 0x03, 0x42, 0xbf } \ + } + +/// +/// The structure defines the data layout of the UnblockRegion GUIDed HOB. +/// +typedef struct { + /// + /// Physical address of the first byte in the memory region. PhysicalStart must be + /// aligned on a 4 KiB boundary. + /// + EFI_PHYSICAL_ADDRESS PhysicalStart; + + /// + /// Number of 4 KiB pages in the memory region. + /// + UINT64 NumberOfPages; + + /// + /// GUID to identify the memory region. + /// + EFI_GUID IdentifierGuid; +} MM_UNBLOCK_REGION; + +extern EFI_GUID gMmUnblockRegionHobGuid; + +#endif diff --git a/UefiCpuPkg/UefiCpuPkg.dec b/UefiCpuPkg/UefiCpuPkg.dec index c026cf535b..5ee4efc3fa 100644 --- a/UefiCpuPkg/UefiCpuPkg.dec +++ b/UefiCpuPkg/UefiCpuPkg.dec @@ -108,6 +108,9 @@ ## Include/Guid/GhcbApicIds.h gGhcbApicIdsGuid = { 0xbc964338, 0xee39, 0x4fc8, { 0xa2, 0x24, 0x10, 0x10, 0x8b, 0x17, 0x80, 0x1b }} + ## Include/Guid/MmUnblockRegion.h + gMmUnblockRegionHobGuid = { 0x7c316fb3, 0x849e, 0x4ee7, { 0x87, 0xfc, 0x16, 0x2d, 0x0b, 0x03, 0x42, 0xbf }} + [Protocols] ## Include/Protocol/SmmCpuService.h gEfiSmmCpuServiceProtocolGuid = { 0x1d202cab, 0xc8ab, 0x4d5c, { 0x94, 0xf7, 0x3c, 0xfc, 0xc0, 0xd3, 0xd3, 0x35 }}