]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Ppi/SecPlatformInformation.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Include / Ppi / SecPlatformInformation.h
index 78d41c161d5e16d1ebb2444d2397bf2c70fbc18e..02b0711f189e0b9563d50d9143516a2df83a3965 100644 (file)
@@ -1,19 +1,13 @@
 /** @file\r
   This file declares Sec Platform Information PPI.\r
 \r
-  This service is the primary handoff state into the PEI Foundation. \r
-  The Security (SEC) component creates the early, transitory memory \r
-  environment and also encapsulates knowledge of at least the \r
+  This service is the primary handoff state into the PEI Foundation.\r
+  The Security (SEC) component creates the early, transitory memory\r
+  environment and also encapsulates knowledge of at least the\r
   location of the Boot Firmware Volume (BFV).\r
 \r
-  Copyright (c) 2006 - 2010, 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
-\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
+Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
   @par Revision Reference:\r
   This PPI is introduced in PI Version 1.0.\r
@@ -23,6 +17,8 @@
 #ifndef __SEC_PLATFORM_INFORMATION_PPI_H__\r
 #define __SEC_PLATFORM_INFORMATION_PPI_H__\r
 \r
+#include <Pi/PiPeiCis.h>\r
+\r
 #define EFI_SEC_PLATFORM_INFORMATION_GUID \\r
   { \\r
     0x6f8c2b35, 0xfef4, 0x448d, {0x82, 0x56, 0xe1, 0x1b, 0x19, 0xd6, 0x10, 0x77 } \\r
@@ -30,7 +26,6 @@
 \r
 typedef struct _EFI_SEC_PLATFORM_INFORMATION_PPI EFI_SEC_PLATFORM_INFORMATION_PPI;\r
 \r
-\r
 ///\r
 /// EFI_HEALTH_FLAGS\r
 /// Contains information generated by microcode, hardware, and/or the Itanium\r
@@ -41,51 +36,51 @@ typedef union {
     ///\r
     /// A 2-bit field indicating self-test state after reset.\r
     ///\r
-    UINT32   Status                   : 2;\r
+    UINT32    Status                   : 2;\r
     ///\r
     /// A 1-bit field indicating whether testing has occurred.\r
     /// If this field is zero, the processor has not been tested,\r
     /// and no further fields in the self-test State parameter are valid.\r
     ///\r
-    UINT32   Tested                   : 1;\r
+    UINT32    Tested                   : 1;\r
     ///\r
     /// Reserved 13 bits.\r
     ///\r
-    UINT32   Reserved1                :13;\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
+    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
+    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
+    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
     /// performance restricted or functionally restricted.\r
     /// The value returned is implementation dependent.\r
     ///\r
-    UINT32   MiscFeaturesUnavailable  : 1;\r
+    UINT32    MiscFeaturesUnavailable : 1;\r
     ///\r
     /// Reserved 12 bits.\r
     ///\r
-    UINT32   Reserved2                :12;\r
+    UINT32    Reserved2               : 12;\r
   } Bits;\r
-  UINT32     Uint32;\r
+  UINT32    Uint32;\r
 } EFI_HEALTH_FLAGS;\r
 \r
-#define NORMAL_BOOT_CALL    0x0\r
-#define RECOVERY_CHECK_CALL 0x3\r
+#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
@@ -97,49 +92,49 @@ typedef struct {
   /// SALE_ENTRY state : 3 = Recovery_Check\r
   /// and 0 = RESET or Normal_Boot phase.\r
   ///\r
-  UINT8 BootPhase;\r
+  UINT8     BootPhase;\r
   ///\r
   /// Firmware status on entry to SALE.\r
   ///\r
-  UINT8 FWStatus;\r
-  UINT16 Reserved1;\r
-  UINT32 Reserved2;\r
+  UINT8     FWStatus;\r
+  UINT16    Reserved1;\r
+  UINT32    Reserved2;\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
+  UINT16    ProcId;\r
+  UINT16    Reserved3;\r
+  UINT8     IdMask;\r
+  UINT8     EidMask;\r
+  UINT16    Reserved4;\r
   ///\r
-  /// Address to make PAL calls\r
+  /// Address to make PAL calls.\r
   ///\r
-  UINT64 PalCallAddress;\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
+  UINT64    PalSpecialAddress;\r
   ///\r
-  /// GR35 from PALE_EXIT state\r
+  /// GR35 from PALE_EXIT state.\r
   ///\r
-  UINT64 SelfTestStatus;\r
+  UINT64    SelfTestStatus;\r
   ///\r
   /// GR37 from PALE_EXIT state.\r
   ///\r
-  UINT64 SelfTestControl;\r
-  UINT64 MemoryBufferRequired;\r
+  UINT64    SelfTestControl;\r
+  UINT64    MemoryBufferRequired;\r
 } ITANIUM_HANDOFF_STATUS;\r
 \r
 ///\r
-/// EFI_SEC_PLATFORM_INFORMATION_RECORD\r
+/// EFI_SEC_PLATFORM_INFORMATION_RECORD.\r
 ///\r
 typedef union {\r
-  IA32_HANDOFF_STATUS    IA32HealthFlags;\r
-  X64_HANDOFF_STATUS     x64HealthFlags;\r
-  ITANIUM_HANDOFF_STATUS ItaniumHealthFlags;\r
+  IA32_HANDOFF_STATUS       IA32HealthFlags;\r
+  X64_HANDOFF_STATUS        x64HealthFlags;\r
+  ITANIUM_HANDOFF_STATUS    ItaniumHealthFlags;\r
 } EFI_SEC_PLATFORM_INFORMATION_RECORD;\r
 \r
 /**\r
@@ -150,12 +145,12 @@ typedef union {
   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. The current buffer size needed to\r
@@ -168,19 +163,17 @@ EFI_STATUS
   IN CONST  EFI_PEI_SERVICES                    **PeiServices,\r
   IN OUT    UINT64                              *StructureSize,\r
   OUT       EFI_SEC_PLATFORM_INFORMATION_RECORD *PlatformInformationRecord\r
-);\r
-\r
+  );\r
 \r
 ///\r
-/// This service abstracts platform-specific information. It is necessary \r
-/// to convey this information to the PEI Foundation so that it can \r
+/// This service abstracts platform-specific information. It is necessary\r
+/// to convey this information to the PEI Foundation so that it can\r
 /// discover where to begin dispatching PEIMs.\r
 ///\r
 struct _EFI_SEC_PLATFORM_INFORMATION_PPI {\r
-  EFI_SEC_PLATFORM_INFORMATION  PlatformInformation;\r
+  EFI_SEC_PLATFORM_INFORMATION    PlatformInformation;\r
 };\r
 \r
-\r
-extern EFI_GUID gEfiSecPlatformInformationPpiGuid;\r
+extern EFI_GUID  gEfiSecPlatformInformationPpiGuid;\r
 \r
 #endif\r