]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Vlv2TbltDevicePkg/PlatformPei/Platform.c
Sync the branch changes to trunk.
[mirror_edk2.git] / Vlv2TbltDevicePkg / PlatformPei / Platform.c
index 1dab9ca851c6b9ae7f41f095adbbe78d45d35a3a..899b4a97917b9340ae5d7bb118f9efab1b83baa0 100644 (file)
@@ -28,6 +28,7 @@ Module Name:
 #include <Ppi/MfgMemoryTest.h>\r
 #include <Guid/SetupVariable.h>\r
 #include <Guid/Vlv2Variable.h>\r
+#include <Ppi/fTPMPolicy.h>\r
 \r
 //\r
 // Start::Alpine Valley platform\r
@@ -190,6 +191,67 @@ PeiSmbusExec (
   UINT8 *Buffer\r
   );\r
 \r
+\r
+EFI_STATUS\r
+FtpmPolicyInit (\r
+  IN CONST EFI_PEI_SERVICES             **PeiServices,\r
+  IN SYSTEM_CONFIGURATION         *pSystemConfiguration\r
+  )\r
+{\r
+  EFI_STATUS                      Status;\r
+  EFI_PEI_PPI_DESCRIPTOR          *mFtpmPolicyPpiDesc;\r
+  SEC_FTPM_POLICY_PPI             *mFtpmPolicyPpi;\r
+\r
+\r
+  DEBUG((EFI_D_INFO, "FtpmPolicyInit Entry \n"));\r
+\r
+  if (NULL == PeiServices ||  NULL == pSystemConfiguration) {\r
+    DEBUG((EFI_D_ERROR, "Input error. \n"));\r
+    return EFI_INVALID_PARAMETER;\r
+  }\r
+  \r
+  Status = (*PeiServices)->AllocatePool(\r
+                             PeiServices,\r
+                             sizeof (EFI_PEI_PPI_DESCRIPTOR),\r
+                             (void **)&mFtpmPolicyPpiDesc\r
+                             );\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
+  Status = (*PeiServices)->AllocatePool(\r
+                             PeiServices,\r
+                             sizeof (SEC_FTPM_POLICY_PPI),\r
+                             (void **)&mFtpmPolicyPpi\r
+                             );\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
+  //\r
+  // Initialize PPI\r
+  //\r
+  (*PeiServices)->SetMem ((VOID *)mFtpmPolicyPpi, sizeof (SEC_FTPM_POLICY_PPI), 0);\r
+  mFtpmPolicyPpiDesc->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;\r
+  mFtpmPolicyPpiDesc->Guid = &gSeCfTPMPolicyPpiGuid;\r
+  mFtpmPolicyPpiDesc->Ppi = mFtpmPolicyPpi;\r
+\r
+\r
+  DEBUG((EFI_D_INFO, "pSystemConfiguration->fTPM = 0x%x \n", pSystemConfiguration->fTPM)); \r
+  if(pSystemConfiguration->fTPM == 1) {\r
+    mFtpmPolicyPpi->fTPMEnable = TRUE;\r
+  } else {\r
+    mFtpmPolicyPpi->fTPMEnable = FALSE;\r
+  }\r
+\r
+  Status = (*PeiServices)->InstallPpi(\r
+                             PeiServices,\r
+                             mFtpmPolicyPpiDesc\r
+                             );\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
+  DEBUG((EFI_D_INFO, "FtpmPolicyInit done \n"));\r
+  \r
+  return EFI_SUCCESS;\r
+}\r
+\r
+\r
 /**\r
   This routine attempts to acquire the SMBus\r
 \r
@@ -697,6 +759,14 @@ PeiInitPlatform (
     );\r
 \r
 \r
+#ifdef FTPM_ENABLE\r
+  Status = FtpmPolicyInit(PeiServices, &SystemConfiguration);\r
+  if (EFI_ERROR (Status)) {\r
+    DEBUG((EFI_D_ERROR, "fTPM init failed.\n"));\r
+  }\r
+#endif\r
+\r
+\r
   //\r
   // Set the new boot mode for MRC\r
   //\r