#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
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
);\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