]> git.proxmox.com Git - mirror_edk2.git/blobdiff - StandaloneMmPkg/Include/Guid/MmramMemoryReserve.h
StandaloneMmPkg/MemoryAllocationLib: Add MM memory allocation library.
[mirror_edk2.git] / StandaloneMmPkg / Include / Guid / MmramMemoryReserve.h
diff --git a/StandaloneMmPkg/Include/Guid/MmramMemoryReserve.h b/StandaloneMmPkg/Include/Guid/MmramMemoryReserve.h
new file mode 100644 (file)
index 0000000..15818b5
--- /dev/null
@@ -0,0 +1,62 @@
+/** @file\r
+  Definition of GUIDed HOB for reserving MMRAM regions.\r
+\r
+  This file defines:\r
+  * the GUID used to identify the GUID HOB for reserving MMRAM regions.\r
+  * the data structure of MMRAM descriptor to describe MMRAM candidate regions\r
+  * values of state of MMRAM candidate regions\r
+  * the GUID specific data structure of HOB for reserving MMRAM regions.\r
+  This GUIDed HOB can be used to convey the existence of the T-SEG reservation and H-SEG usage\r
+\r
+Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.<BR>\r
+\r
+This program and the accompanying materials are licensed and made available under\r
+the terms and conditions of the BSD License that accompanies this distribution.\r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php.\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+  @par Revision Reference:\r
+  GUIDs defined in MmCis spec version 0.9.\r
+\r
+**/\r
+\r
+#ifndef _EFI_MM_PEI_MMRAM_MEMORY_RESERVE_H_\r
+#define _EFI_MM_PEI_MMRAM_MEMORY_RESERVE_H_\r
+\r
+#define EFI_MM_PEI_MMRAM_MEMORY_RESERVE \\r
+  { \\r
+    0x0703f912, 0xbf8d, 0x4e2a, {0xbe, 0x07, 0xab, 0x27, 0x25, 0x25, 0xc5, 0x92 } \\r
+  }\r
+\r
+/**\r
+* GUID specific data structure of HOB for reserving MMRAM regions.\r
+*\r
+* Inconsistent with specification here:\r
+* EFI_HOB_MMRAM_DESCRIPTOR_BLOCK has been changed to EFI_MMRAM_HOB_DESCRIPTOR_BLOCK.\r
+* This inconsistency is kept in code in order for backward compatibility.\r
+**/\r
+typedef struct {\r
+  ///\r
+  /// Designates the number of possible regions in the system\r
+  /// that can be usable for MMRAM.\r
+  ///\r
+  /// Inconsistent with specification here:\r
+  /// In Framework MM CIS 0.91 specification, it defines the field type as UINTN.\r
+  /// However, HOBs are supposed to be CPU neutral, so UINT32 should be used instead.\r
+  ///\r
+  UINT32                NumberOfMmReservedRegions;\r
+  ///\r
+  /// Used throughout this protocol to describe the candidate\r
+  /// regions for MMRAM that are supported by this platform.\r
+  ///\r
+  EFI_MMRAM_DESCRIPTOR  Descriptor[1];\r
+} EFI_MMRAM_HOB_DESCRIPTOR_BLOCK;\r
+\r
+extern EFI_GUID gEfiMmPeiSmramMemoryReserveGuid;\r
+\r
+#endif\r
+\r