]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Guid/SmramMemoryReserve.h
Refine include file of GUID HOB for SMRAM memory reserve, according to review comments.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Guid / SmramMemoryReserve.h
CommitLineData
79964ac8 1/** @file\r
444bf90d 2 Definition of GUIDed HOB for reserving SMRAM regions.\r
3\r
4 This file defines:\r
5 * the GUID used to identify the GUID HOB for reserving SMRAM regions.\r
6 * the data structure of SMRAM descriptor to describe SMRAM candidate regions\r
7 * values of state of SMRAM candidate regions\r
8 * the GUID specific data structure of HOB for reserving SMRAM regions.\r
9 This GUIDed HOB can be used to convey the existence of the T-SEG reservation and H-SEG usage\r
79964ac8 10\r
2bbaeb0d 11 Copyright (c) 2007 - 2009, Intel Corporation\r
79964ac8 12 All rights reserved. This program and the accompanying materials\r
13 are licensed and made available under the terms and conditions of the BSD License\r
14 which accompanies this distribution. The full text of the license may be found at\r
15 http://opensource.org/licenses/bsd-license.php\r
16\r
17 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
18 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
19\r
79964ac8 20 @par Revision Reference:\r
21 GUIDs defined in SmmCis spec version 0.9\r
22\r
23**/\r
24\r
25#ifndef _EFI_SMM_PEI_SMRAM_MEMORY_RESERVE_H_\r
26#define _EFI_SMM_PEI_SMRAM_MEMORY_RESERVE_H_\r
27\r
b80fbe85 28#include <PiPei.h>\r
29\r
79964ac8 30#define EFI_SMM_PEI_SMRAM_MEMORY_RESERVE \\r
31 { \\r
32 0x6dadf1d1, 0xd4cc, 0x4910, {0xbb, 0x6e, 0x82, 0xb1, 0xfd, 0x80, 0xff, 0x3d } \\r
33 }\r
34\r
444bf90d 35///\r
36/// Describes the candidate regions for SMRAM that are\r
37/// supported by this platform.\r
38///\r
79964ac8 39typedef struct {\r
444bf90d 40 EFI_PHYSICAL_ADDRESS PhysicalStart; ///< Designates the physical address of the SMRAM in memory.\r
41 EFI_PHYSICAL_ADDRESS CpuStart; ///< Designates the address of the SMRAM, as seen by software executing on the processors. \r
42 UINT64 PhysicalSize; ///< Describes the number of bytes in the SMRAM region.\r
43 UINT64 RegionState; ///< Describes the accessibility attributes of the SMRAM.\r
79964ac8 44} EFI_SMRAM_DESCRIPTOR;\r
45\r
46//\r
444bf90d 47// Definition of SMRAM states, used as value for EFI_SMRAM_DESCRIPTOR.RegionState.\r
79964ac8 48//\r
49#define EFI_SMRAM_OPEN 0x00000001\r
50#define EFI_SMRAM_CLOSED 0x00000002\r
51#define EFI_SMRAM_LOCKED 0x00000004\r
52#define EFI_CACHEABLE 0x00000008\r
53#define EFI_ALLOCATED 0x00000010\r
79964ac8 54\r
444bf90d 55///\r
56/// GUID specific data structure of HOB for reserving SMRAM regions.\r
57///\r
79964ac8 58typedef struct {\r
444bf90d 59 ///\r
60 /// Designates the number of possible regions in the system\r
61 /// that can be usable for SMRAM. \r
62 ///\r
79964ac8 63 UINTN NumberOfSmmReservedRegions;\r
444bf90d 64 ///\r
65 /// Used throughout this protocol to describe the candidate\r
66 /// regions for SMRAM that are supported by this platform. \r
67 ///\r
79964ac8 68 EFI_SMRAM_DESCRIPTOR Descriptor[1];\r
444bf90d 69} EFI_HOB_SMRAM_DESCRIPTOR_BLOCK;\r
79964ac8 70\r
71extern EFI_GUID gEfiSmmPeiSmramMemoryReserveGuid;\r
72\r
73#endif\r