123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /** @file
- Implementation of Fsp SI Policy Initialization.
- Copyright (c) 2019 - 2020 Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #include <PeiFspPolicyInitLib.h>
- #include <Ppi/SiPolicy.h>
- #include <Library/ConfigBlockLib.h>
- /**
- Performs FSP SI 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
- PeiFspSiPolicyInitPreMem (
- IN OUT FSPM_UPD *FspmUpd
- )
- {
- EFI_STATUS Status;
- SI_PREMEM_POLICY_PPI *SiPreMemPolicyPpi;
- //
- // Locate SiPreMemPolicyPpi
- //
- SiPreMemPolicyPpi = NULL;
- Status = PeiServicesLocatePpi (
- &gSiPreMemPolicyPpiGuid,
- 0,
- NULL,
- (VOID **) &SiPreMemPolicyPpi
- );
- if (EFI_ERROR (Status)) {
- return EFI_NOT_FOUND;
- }
- return EFI_SUCCESS;
- }
- /**
- Performs FSP SI 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
- PeiFspSiPolicyInit (
- IN OUT FSPS_UPD *FspsUpd
- )
- {
- EFI_STATUS Status;
- SI_POLICY_PPI *SiPolicy;
- SI_CONFIG *SiConfig;
- //
- // Locate SiPolicyPpi
- //
- SiPolicy = NULL;
- Status = PeiServicesLocatePpi (
- &gSiPolicyPpiGuid,
- 0,
- NULL,
- (VOID **) &SiPolicy
- );
- if (EFI_ERROR (Status)) {
- return EFI_NOT_FOUND;
- }
- Status = GetConfigBlock ((VOID *) SiPolicy, &gSiConfigGuid, (VOID *) &SiConfig);
- ASSERT_EFI_ERROR (Status);
- //
- // Update SiConfig policies
- //
- FspsUpd->FspsConfig.SiCsmFlag = (UINT8)SiConfig->CsmFlag;
- FspsUpd->FspsConfig.SiSsidTablePtr = (UINT32)(UINTN)SiConfig->SsidTablePtr;
- FspsUpd->FspsConfig.SiNumberOfSsidTableEntry = (UINT16)SiConfig->NumberOfSsidTableEntry;
- FspsUpd->FspsConfig.TraceHubMemBase = SiConfig->TraceHubMemBase;
- return EFI_SUCCESS;
- }
|