/** @file\r
Include file matches things in PI for multiple module types.\r
\r
- Copyright (c) 2006 - 2009, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
+Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\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
+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
- These elements are defined in UEFI Platform Initialization Specification 1.2 \r
+ These elements are defined in UEFI Platform Initialization Specification 1.2.\r
\r
**/\r
\r
#include <Pi/PiHob.h>\r
#include <Pi/PiDependency.h>\r
#include <Pi/PiStatusCode.h>\r
+#include <Pi/PiS3BootScript.h>\r
\r
/**\r
Produces an error code in the range reserved for use by the Platform Initialization\r
#define EFI_NOT_AVAILABLE_YET DXE_ERROR (2)\r
\r
///\r
-/// Success and warning codes reserved for use by PI\r
-/// Supported 32-bit range is 0x20000000-0x3fffffff\r
-/// Supported 64-bit range is 0x2000000000000000-0x3fffffffffffffff\r
+/// Success and warning codes reserved for use by PI.\r
+/// Supported 32-bit range is 0x20000000-0x3fffffff.\r
+/// Supported 64-bit range is 0x2000000000000000-0x3fffffffffffffff.\r
///\r
#define PI_ENCODE_WARNING(a) ((MAX_BIT >> 2) | (a))\r
\r
///\r
-/// Error codes reserved for use by PI\r
-/// Supported 32-bit range is 0xa0000000-0xbfffffff\r
-/// Supported 64-bit range is 0xa000000000000000-0xbfffffffffffffff\r
+/// Error codes reserved for use by PI.\r
+/// Supported 32-bit range is 0xa0000000-0xbfffffff.\r
+/// Supported 64-bit range is 0xa000000000000000-0xbfffffffffffffff.\r
///\r
#define PI_ENCODE_ERROR(a) (MAX_BIT | (MAX_BIT >> 2) | (a))\r
\r
/// \r
-/// Return status codes defined in SMM CIS\r
+/// Return status codes defined in SMM CIS.\r
/// \r
#define EFI_INTERRUPT_PENDING PI_ENCODE_ERROR (0)\r
\r
/// and the EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI\r
///\r
/// xx00 Image was not signed.\r
-/// xxx1 Platform security policy override. Assumes same meaning as 0010 (the image was signed, the\r
+/// xxx1 Platform security policy override. Assumes the same meaning as 0010 (the image was signed, the\r
/// signature was tested, and the signature passed authentication test).\r
/// 0010 Image was signed, the signature was tested, and the signature passed authentication test.\r
/// 0110 Image was signed and the signature was not tested.\r
#define EFI_AUTH_STATUS_ALL 0x0f\r
///@}\r
\r
+///\r
+/// SMRAM states and capabilities\r
+///\r
+#define EFI_SMRAM_OPEN 0x00000001\r
+#define EFI_SMRAM_CLOSED 0x00000002\r
+#define EFI_SMRAM_LOCKED 0x00000004\r
+#define EFI_CACHEABLE 0x00000008\r
+#define EFI_ALLOCATED 0x00000010\r
+#define EFI_NEEDS_TESTING 0x00000020\r
+#define EFI_NEEDS_ECC_INITIALIZATION 0x00000040\r
+\r
+///\r
+/// Structure describing a SMRAM region and its accessibility attributes.\r
+///\r
+typedef struct {\r
+ ///\r
+ /// Designates the physical address of the SMRAM in memory. This view of memory is \r
+ /// the same as seen by I/O-based agents, for example, but it may not be the address seen \r
+ /// by the processors.\r
+ ///\r
+ EFI_PHYSICAL_ADDRESS PhysicalStart;\r
+ ///\r
+ /// Designates the address of the SMRAM, as seen by software executing on the \r
+ /// processors. This address may or may not match PhysicalStart.\r
+ ///\r
+ EFI_PHYSICAL_ADDRESS CpuStart; \r
+ ///\r
+ /// Describes the number of bytes in the SMRAM region.\r
+ ///\r
+ UINT64 PhysicalSize;\r
+ ///\r
+ /// Describes the accessibility attributes of the SMRAM. These attributes include the \r
+ /// hardware state (e.g., Open/Closed/Locked), capability (e.g., cacheable), logical \r
+ /// allocation (e.g., allocated), and pre-use initialization (e.g., needs testing/ECC \r
+ /// initialization).\r
+ ///\r
+ UINT64 RegionState;\r
+} EFI_SMRAM_DESCRIPTOR;\r
+\r
#endif\r