123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /** @file
- Implementation of Fsp Me Policy Initialization.
- Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #include <PeiFspPolicyInitLib.h>
- #include <ConfigBlock/MePeiConfig.h>
- #include <Ppi/SiPolicy.h>
- #include <Library/ConfigBlockLib.h>
- /**
- Performs FSP ME PEI Policy pre mem initialization.
- @param[in][out] FspmUpd Pointer to FSP UPD Data.
- @retval EFI_SUCCESS FSP UPD Data is updated.
- @retval EFI_NOT_FOUND Fail to locate required PPI.
- @retval Other FSP UPD Data update process fail.
- **/
- EFI_STATUS
- EFIAPI
- PeiFspMePolicyInitPreMem (
- IN OUT FSPM_UPD *FspmUpd
- )
- {
- EFI_STATUS Status;
- SI_PREMEM_POLICY_PPI *SiPreMemPolicy;
- ME_PEI_PREMEM_CONFIG *MePeiPreMemConfig;
- DEBUG ((DEBUG_INFO, "PeiFspMePolicyInitPreMem\n"));
- //
- // Locate gSiPreMemPolicyPpi
- //
- SiPreMemPolicy = NULL;
- Status = PeiServicesLocatePpi (
- &gSiPreMemPolicyPpiGuid,
- 0,
- NULL,
- (VOID **) &SiPreMemPolicy
- );
- if (EFI_ERROR (Status)) {
- return EFI_NOT_FOUND;
- }
- Status = GetConfigBlock ((VOID *) SiPreMemPolicy, &gMePeiPreMemConfigGuid, (VOID *) &MePeiPreMemConfig);
- ASSERT_EFI_ERROR (Status);
- FspmUpd->FspmConfig.HeciTimeouts = (UINT8) MePeiPreMemConfig->HeciTimeouts;
- //
- // Test policies
- //
- FspmUpd->FspmTestConfig.DidInitStat = (UINT8) MePeiPreMemConfig->DidInitStat;
- FspmUpd->FspmTestConfig.DisableCpuReplacedPolling = (UINT8) MePeiPreMemConfig->DisableCpuReplacedPolling;
- FspmUpd->FspmTestConfig.SendDidMsg = (UINT8) MePeiPreMemConfig->SendDidMsg;
- FspmUpd->FspmTestConfig.DisableHeciRetry = (UINT8) MePeiPreMemConfig->DisableHeciRetry;
- FspmUpd->FspmTestConfig.DisableMessageCheck = (UINT8) MePeiPreMemConfig->DisableMessageCheck;
- FspmUpd->FspmTestConfig.SkipMbpHob = (UINT8) MePeiPreMemConfig->SkipMbpHob;
- FspmUpd->FspmTestConfig.HeciCommunication2 = (UINT8) MePeiPreMemConfig->HeciCommunication2;
- FspmUpd->FspmTestConfig.KtDeviceEnable = (UINT8) MePeiPreMemConfig->KtDeviceEnable;
- FspmUpd->FspmConfig.Heci1BarAddress = MePeiPreMemConfig->Heci1BarAddress;
- FspmUpd->FspmConfig.Heci2BarAddress = MePeiPreMemConfig->Heci2BarAddress;
- FspmUpd->FspmConfig.Heci3BarAddress = MePeiPreMemConfig->Heci3BarAddress;
- return EFI_SUCCESS;
- }
- /**
- Performs FSP ME PEI Policy initialization.
- @param[in][out] FspsUpd Pointer to FSP UPD Data.
- @retval EFI_SUCCESS FSP UPD Data is updated.
- @retval EFI_NOT_FOUND Fail to locate required PPI.
- @retval Other FSP UPD Data update process fail.
- **/
- EFI_STATUS
- EFIAPI
- PeiFspMePolicyInit (
- IN OUT FSPS_UPD *FspsUpd
- )
- {
- EFI_STATUS Status;
- SI_POLICY_PPI *SiPolicyPpi;
- ME_PEI_CONFIG *MePeiConfig;
- DEBUG ((DEBUG_INFO, "PeiFspMePolicyInit \n"));
- //
- // Locate gSiPolicyPpiGuid
- //
- SiPolicyPpi = NULL;
- Status = PeiServicesLocatePpi (
- &gSiPolicyPpiGuid,
- 0,
- NULL,
- (VOID **) &SiPolicyPpi
- );
- if (EFI_ERROR (Status)) {
- return EFI_NOT_FOUND;
- }
- Status = GetConfigBlock ((VOID *) SiPolicyPpi, &gMePeiConfigGuid, (VOID *) &MePeiConfig);
- ASSERT_EFI_ERROR (Status);
- FspsUpd->FspsConfig.Heci3Enabled = (UINT8) MePeiConfig->Heci3Enabled;
- FspsUpd->FspsConfig.MeUnconfigOnRtcClear = (UINT8) MePeiConfig->MeUnconfigOnRtcClear;
- //
- // Test policies
- //
- FspsUpd->FspsTestConfig.MctpBroadcastCycle = (UINT8) MePeiConfig->MctpBroadcastCycle;
- FspsUpd->FspsTestConfig.EndOfPostMessage = (UINT8) MePeiConfig->EndOfPostMessage;
- FspsUpd->FspsTestConfig.DisableD0I3SettingForHeci = (UINT8) MePeiConfig->DisableD0I3SettingForHeci;
- return EFI_SUCCESS;
- }
|