]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Ppi/SecPlatformInformation.h
Grammatical and disclaimer changes (does not follow internal C coding stds.)
[mirror_edk2.git] / MdePkg / Include / Ppi / SecPlatformInformation.h
index 46d845f6d6affa515ab078dc814dae504a73ee70..296749ee2ce8636e9ef7fe91a26f19706202db1d 100644 (file)
@@ -6,14 +6,14 @@
   environment and also encapsulates knowledge of at least the \r
   location of the Boot Firmware Volume (BFV).\r
 \r
-  Copyright (c) 2006 - 2008, 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
   This PPI is introduced in PI Version 1.0.\r
@@ -53,22 +53,22 @@ typedef union {
     ///\r
     UINT32   Reserved1                :13;\r
     ///\r
-    /// A 1-bit field. If set to 1, indicates that virtual\r
+    /// A 1-bit field. If set to 1, this indicates that virtual\r
     /// memory features are not available.\r
     ///\r
     UINT32   VirtualMemoryUnavailable : 1;\r
     ///\r
-    /// A 1-bit field. If set to 1, indicates that IA-32 execution\r
+    /// A 1-bit field. If set to 1, this indicates that IA-32 execution\r
     /// is not available.\r
     ///\r
     UINT32   Ia32ExecutionUnavailable : 1;\r
     ///\r
-    /// A 1-bit field. If set to 1, indicates that the floating\r
+    /// A 1-bit field. If set to 1, this indicates that the floating\r
     /// point unit is not available.\r
     ///\r
     UINT32   FloatingPointUnavailable : 1;\r
     ///\r
-    /// A 1-bit field. If set to 1, indicates miscellaneous\r
+    /// A 1-bit field. If set to 1, this indicates miscellaneous\r
     /// functional failure other than vm, ia, or fp.\r
     /// The test status field provides additional information on\r
     /// test failures when the State field returns a value of\r
@@ -87,40 +87,61 @@ typedef union {
 #define NORMAL_BOOT_CALL    0x0\r
 #define RECOVERY_CHECK_CALL 0x3\r
 \r
+typedef EFI_HEALTH_FLAGS X64_HANDOFF_STATUS;\r
+typedef EFI_HEALTH_FLAGS IA32_HANDOFF_STATUS;\r
+///\r
+/// The hand-off status structure for Itanium architecture.\r
+///\r
 typedef struct {\r
+  ///\r
+  /// SALE_ENTRY state : 3 = Recovery_Check\r
+  /// and 0 = RESET or Normal_Boot phase.\r
+  ///\r
   UINT8 BootPhase;\r
+  ///\r
+  /// Firmware status on entry to SALE.\r
+  ///\r
   UINT8 FWStatus;\r
   UINT16 Reserved1;\r
   UINT32 Reserved2;\r
-\r
+  ///\r
+  /// Geographically significant unique processor ID assigned by PAL.\r
+  ///\r
   UINT16 ProcId;\r
   UINT16 Reserved3;\r
   UINT8  IdMask;\r
   UINT8  EidMask;\r
   UINT16 Reserved4;\r
-\r
+  ///\r
+  /// Address to make PAL calls.\r
+  ///\r
   UINT64 PalCallAddress;\r
+  ///\r
+  /// If the entry state is RECOVERY_CHECK, this contains the PAL_RESET\r
+  /// return address, and if entry state is RESET, this contains\r
+  /// address for PAL_authentication call.\r
+  ///\r
   UINT64 PalSpecialAddress;\r
+  ///\r
+  /// GR35 from PALE_EXIT state.\r
+  ///\r
   UINT64 SelfTestStatus;\r
+  ///\r
+  /// GR37 from PALE_EXIT state.\r
+  ///\r
   UINT64 SelfTestControl;\r
   UINT64 MemoryBufferRequired;\r
-\r
-} IPF_HANDOFF_STATUS;\r
+} ITANIUM_HANDOFF_STATUS;\r
 \r
 ///\r
-/// EFI_SEC_PLATFORM_INFORMATION_RECORD\r
+/// EFI_SEC_PLATFORM_INFORMATION_RECORD.\r
 ///\r
-typedef struct {\r
-  ///\r
-  /// Contains information generated by microcode, hardware,\r
-  /// and/or the Itanium processor PAL code about the state\r
-  /// of the processor upon reset.\r
-  ///\r
-  EFI_HEALTH_FLAGS HealthFlags;\r
+typedef union {\r
+  IA32_HANDOFF_STATUS    IA32HealthFlags;\r
+  X64_HANDOFF_STATUS     x64HealthFlags;\r
+  ITANIUM_HANDOFF_STATUS ItaniumHealthFlags;\r
 } EFI_SEC_PLATFORM_INFORMATION_RECORD;\r
 \r
-\r
-\r
 /**\r
   This interface conveys state information out of the Security (SEC) phase into PEI.\r
 \r
@@ -129,15 +150,16 @@ typedef struct {
   PEI Foundation. As such, if the platform supports the built-in self test (BIST) on IA-32 Intel\r
   architecture or the PAL-A handoff state for Itanium architecture, this information is encapsulated\r
   into the data structure abstracted by this service. This information is collected for the boot-strap\r
-  processor (BSP) on IA-32, and for Itanium architecture, it is available on all processors that execute\r
+  processor (BSP) on IA-32. For Itanium architecture, it is available on all processors that execute\r
   the PEI Foundation.\r
 \r
-  @param  PeiServices               Pointer to the PEI Services Table.\r
-  @param  StructureSize             Pointer to the variable describing size of the input buffer.\r
-  @param  PlatformInformationRecord Pointer to the EFI_SEC_PLATFORM_INFORMATION_RECORD.\r
+  @param  PeiServices               The pointer to the PEI Services Table.\r
+  @param  StructureSize             The pointer to the variable describing size of the input buffer.\r
+  @param  PlatformInformationRecord The pointer to the EFI_SEC_PLATFORM_INFORMATION_RECORD.\r
 \r
   @retval EFI_SUCCESS               The data was successfully returned.\r
-  @retval EFI_BUFFER_TOO_SMALL      The buffer was too small.\r
+  @retval EFI_BUFFER_TOO_SMALL      The buffer was too small. The current buffer size needed to\r
+                                    hold the record is returned in StructureSize.\r
 \r
 **/\r
 typedef\r