| 1 | /** @file\r |
| 2 | Definition of GUIDed HOB for reserving MMRAM regions.\r |
| 3 | \r |
| 4 | This file defines:\r |
| 5 | * the GUID used to identify the GUID HOB for reserving MMRAM regions.\r |
| 6 | * the data structure of MMRAM descriptor to describe MMRAM candidate regions\r |
| 7 | * values of state of MMRAM candidate regions\r |
| 8 | * the GUID specific data structure of HOB for reserving MMRAM regions.\r |
| 9 | This GUIDed HOB can be used to convey the existence of the T-SEG reservation and H-SEG usage\r |
| 10 | \r |
| 11 | Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r |
| 12 | Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.<BR>\r |
| 13 | \r |
| 14 | This program and the accompanying materials are licensed and made available under\r |
| 15 | the terms and conditions of the BSD License that accompanies this distribution.\r |
| 16 | The full text of the license may be found at\r |
| 17 | http://opensource.org/licenses/bsd-license.php.\r |
| 18 | \r |
| 19 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r |
| 20 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r |
| 21 | \r |
| 22 | @par Revision Reference:\r |
| 23 | GUIDs defined in MmCis spec version 0.9.\r |
| 24 | \r |
| 25 | **/\r |
| 26 | \r |
| 27 | #ifndef _EFI_MM_PEI_MMRAM_MEMORY_RESERVE_H_\r |
| 28 | #define _EFI_MM_PEI_MMRAM_MEMORY_RESERVE_H_\r |
| 29 | \r |
| 30 | #define EFI_MM_PEI_MMRAM_MEMORY_RESERVE \\r |
| 31 | { \\r |
| 32 | 0x0703f912, 0xbf8d, 0x4e2a, {0xbe, 0x07, 0xab, 0x27, 0x25, 0x25, 0xc5, 0x92 } \\r |
| 33 | }\r |
| 34 | \r |
| 35 | /**\r |
| 36 | * GUID specific data structure of HOB for reserving MMRAM regions.\r |
| 37 | *\r |
| 38 | * Inconsistent with specification here:\r |
| 39 | * EFI_HOB_MMRAM_DESCRIPTOR_BLOCK has been changed to EFI_MMRAM_HOB_DESCRIPTOR_BLOCK.\r |
| 40 | * This inconsistency is kept in code in order for backward compatibility.\r |
| 41 | **/\r |
| 42 | typedef struct {\r |
| 43 | ///\r |
| 44 | /// Designates the number of possible regions in the system\r |
| 45 | /// that can be usable for MMRAM.\r |
| 46 | ///\r |
| 47 | /// Inconsistent with specification here:\r |
| 48 | /// In Framework MM CIS 0.91 specification, it defines the field type as UINTN.\r |
| 49 | /// However, HOBs are supposed to be CPU neutral, so UINT32 should be used instead.\r |
| 50 | ///\r |
| 51 | UINT32 NumberOfMmReservedRegions;\r |
| 52 | ///\r |
| 53 | /// Used throughout this protocol to describe the candidate\r |
| 54 | /// regions for MMRAM that are supported by this platform.\r |
| 55 | ///\r |
| 56 | EFI_MMRAM_DESCRIPTOR Descriptor[1];\r |
| 57 | } EFI_MMRAM_HOB_DESCRIPTOR_BLOCK;\r |
| 58 | \r |
| 59 | extern EFI_GUID gEfiMmPeiSmramMemoryReserveGuid;\r |
| 60 | \r |
| 61 | #endif\r |
| 62 | \r |