/** @file
Intel PEI CPU Policy update by board configuration
Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "PeiPolicyBoardConfig.h"
#include
/**
This function performs PEI CPU Policy update by board configuration.
@param[in, out] SiPolicy The SI Policy PPI instance
@retval EFI_SUCCESS The SI Policy is successfully updated.
@retval Others The SI Policy is not successfully updated.
**/
EFI_STATUS
EFIAPI
UpdatePeiCpuPolicyBoardConfig (
IN OUT SI_POLICY_PPI *SiPolicyPpi
)
{
EFI_STATUS Status;
SA_MISC_PEI_PREMEM_CONFIG *MiscPeiPreMemConfig;
SI_PREMEM_POLICY_PPI *SiPreMemPolicyPpi;
CPU_CONFIG *CpuConfig;
DEBUG((DEBUG_INFO, "Updating CPU Policy by board config in Post Mem\n"));
Status = PeiServicesLocatePpi(
&gSiPreMemPolicyPpiGuid,
0,
NULL,
(VOID **)&SiPreMemPolicyPpi
);
ASSERT_EFI_ERROR(Status);
Status = GetConfigBlock((VOID *) SiPreMemPolicyPpi, &gSaMiscPeiPreMemConfigGuid, (VOID *) &MiscPeiPreMemConfig);
ASSERT_EFI_ERROR(Status);
Status = GetConfigBlock ((VOID *) SiPolicyPpi, &gCpuConfigGuid, (VOID *) &CpuConfig);
ASSERT_EFI_ERROR (Status);
return Status;
}