/** @file SiliconPolicyInit PEIM. This PEIM initializes silicon policy with the defaults from the silicon provider. We publish a PPI that is consumed by a shim library instance that provides the functions used by the common MinPlatformPkg PolicyInit pre and post memory code. @copyright Copyright 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include #include #include #include #include STATIC SILICON_POLICY_INIT_LIB_PPI mSiliconPolicyInitLibPpi = { SiliconPolicyInitPreMem, SiliconPolicyDonePreMem, SiliconPolicyInitPostMem, SiliconPolicyDonePostMem }; STATIC EFI_PEI_PPI_DESCRIPTOR mSiliconPolicyInitLibPpiDescriptor = { EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST, &gSiliconPolicyInitLibInterfaceGuid, &mSiliconPolicyInitLibPpi }; /** Entry point function for the PEIM @param FileHandle Handle of the file being invoked. @param PeiServices Describes the list of possible PEI Services. @return EFI_SUCCESS If we installed our PPI **/ EFI_STATUS EFIAPI SiliconPolicyInitPreAndPostMemPeimEntry ( IN EFI_PEI_FILE_HANDLE FileHandle, IN CONST EFI_PEI_SERVICES **PeiServices ) { EFI_STATUS Status = EFI_SUCCESS; // // Just produce our PPI // Status = PeiServicesInstallPpi (&mSiliconPolicyInitLibPpiDescriptor); if (EFI_ERROR (Status)) { DEBUG ((EFI_D_ERROR, "EntryPoint: failed to register PPI!\n")); ASSERT_EFI_ERROR (Status); return Status; } return Status; }