/** @file
This file is the library for CPU DXE Policy initialization.
Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include
/**
This function prints the CPU DXE phase policy.
@param[in] DxeCpuPolicy - CPU DXE Policy protocol
**/
VOID
CpuDxePrintPolicyProtocol (
IN DXE_CPU_POLICY_PROTOCOL *DxeCpuPolicy
)
{
DEBUG_CODE_BEGIN ();
DEBUG ((DEBUG_INFO, "\n------------------------ CPU Policy (DXE) print BEGIN -----------------\n"));
DEBUG ((DEBUG_INFO, "Revision : %x\n", DxeCpuPolicy->Revision));
ASSERT (DxeCpuPolicy->Revision == DXE_CPU_POLICY_PROTOCOL_REVISION);
DEBUG ((DEBUG_INFO, "\n------------------------ CPU_DXE_CONFIG -----------------\n"));
DEBUG ((DEBUG_INFO, "EnableDts : %x\n", DxeCpuPolicy->EnableDts));
DEBUG ((DEBUG_INFO, "\n------------------------ CPU Policy (DXE) print END -----------------\n"));
DEBUG_CODE_END ();
}
/**
Get data for CPU policy from setup options.
@param[in] DxeCpuPolicy The pointer to get CPU Policy protocol instance
@retval EFI_SUCCESS Operation success.
**/
EFI_STATUS
EFIAPI
UpdateDxeSiCpuPolicy (
IN OUT DXE_CPU_POLICY_PROTOCOL *DxeCpuPolicy
)
{
return EFI_SUCCESS;
}
/**
CpuInstallPolicyProtocol installs CPU Policy.
While installed, RC assumes the Policy is ready and finalized. So please update and override
any setting before calling this function.
@param[in] ImageHandle Image handle of this driver.
@param[in] DxeCpuPolicy The pointer to CPU Policy Protocol instance
@retval EFI_SUCCESS The policy is installed.
@retval EFI_OUT_OF_RESOURCES Insufficient resources to create buffer
**/
EFI_STATUS
EFIAPI
CpuInstallPolicyProtocol (
IN EFI_HANDLE ImageHandle,
IN DXE_CPU_POLICY_PROTOCOL *DxeCpuPolicy
)
{
EFI_STATUS Status;
///
/// Print CPU DXE Policy
///
CpuDxePrintPolicyProtocol(DxeCpuPolicy);
///
/// Install the DXE_CPU_POLICY_PROTOCOL interface
///
Status = gBS->InstallMultipleProtocolInterfaces (
&ImageHandle,
&gDxeCpuPolicyProtocolGuid,
DxeCpuPolicy,
NULL
);
ASSERT_EFI_ERROR (Status);
return Status;
}