/** @file
System Congfig Update.
@copyright
Copyright 2017 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include "SystemConfigUpdateDxe.h"
#include
EFI_PLATFORM_INFO *mPlatformInfo = NULL;
/**
Update the IioDefaults
@param *SYSTEM_CONFIGURATION Pointer to the SystemConfiguration structure
@retval None
**/
VOID
IioDefaultConfigUpdateCallback (
IN SYSTEM_CONFIGURATION *Default
)
{
UINT8 BoardId;
BoardId = mPlatformInfo->BoardId;
Default->PlatformOCSupport = 0;
if (BoardId == TypeHedtCRB) {
Default->PlatformOCSupport = 1;
}
}
SYSTEM_CONFIG_UPDATE_DATA SystemConfigUpdateTable = {
SYSTEM_CONFIG_UPDATE_SIGNATURE,
SYSTEM_CONFIG_UPDATE_VERSION,
IioDefaultConfigUpdateCallback
};
/**
The Driver Entry Point.
The function is the driver Entry point.
@param ImageHandle A handle for the image that is initializing this driver
@param SystemTable A pointer to the EFI system table
@retval EFI_SUCCESS: Driver initialized successfully
@retval EFI_LOAD_ERROR: Failed to Initialize or has been loaded
@retval EFI_OUT_OF_RESOURCES Could not allocate needed resources
**/
EFI_STATUS
EFIAPI
SystemConfigUpdateEntry (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
UBA_CONFIG_DATABASE_PROTOCOL *UbaConfigProtocol = NULL;
EFI_HOB_GUID_TYPE *GuidHob;
GuidHob = GetFirstGuidHob (&gEfiPlatformInfoGuid);
ASSERT (GuidHob != NULL);
mPlatformInfo = GET_GUID_HOB_DATA(GuidHob);
DEBUG((DEBUG_INFO, "UBA:System Config Update Table.\n"));
Status = gBS->LocateProtocol (
&gUbaConfigDatabaseProtocolGuid,
NULL,
(VOID **) &UbaConfigProtocol
);
if (EFI_ERROR(Status)) {
return Status;
}
Status = UbaConfigProtocol->AddData (
UbaConfigProtocol,
&gSystemConfigUpdateDataGuid,
&SystemConfigUpdateTable,
sizeof(SystemConfigUpdateTable)
);
if (EFI_ERROR(Status)) {
return Status;
}
return Status;
}