alder_lake_bios/Intel/AlderLake/AlderLakeChipsetPkg/UefiSetupUtilityDxe/Main/GetMeVersion.c

96 lines
2.9 KiB
C

/** @file
;******************************************************************************
;* Copyright (c) 2018, Insyde Software Corporation. All Rights Reserved.
;*
;* You may not reproduce, distribute, publish, display, perform, modify, adapt,
;* transmit, broadcast, present, recite, release, license or otherwise exploit
;* any part of this publication in any form, by any means, without the prior
;* written permission of Insyde Software Corporation.
;*
;******************************************************************************
*/
#include <PlatformInfo.h>
EFI_STATUS
GetMeVersion (
IN VOID *OpCodeHandle,
IN EFI_HII_HANDLE MainHiiHandle,
IN EFI_HII_HANDLE AdvanceHiiHandle,
IN CHAR16 *StringBuffer
)
{
EFI_STATUS Status;
UINTN VariableSize;
STRING_REF MeFwVersionString;
STRING_REF MeVersionString;
UINTN Index;
ME_INFO_SETUP_DATA MeInfoSetupData;
ME_SETUP MeSetup;
STEPPING_STRING_DEFINITION MeFwSkuString[] = {
{IntelMeConsumerFw, L"CONSUMER"},
{IntelMeCorporateFw, L"CORPORATE"},
{0xFF, L""}
};
Status = EFI_UNSUPPORTED;
VariableSize = sizeof(ME_INFO_SETUP_DATA);
Status = gRT->GetVariable (
L"MeInfoSetup",
&gMeInfoSetupGuid,
NULL,
&VariableSize,
&MeInfoSetupData
);
if (EFI_ERROR(Status)) {
return Status;
}
VariableSize = sizeof (ME_SETUP);
Status = gRT->GetVariable (
L"MeSetup",
&gMeSetupVariableGuid,
NULL,
&VariableSize,
&MeSetup
);
if (EFI_ERROR(Status)) {
return Status;
}
if (!EFI_ERROR (Status)) {
for (Index = 0; MeFwSkuString[Index].ReversionValue != 0xFF; Index++) {
if (MeSetup.MeImageType == MeFwSkuString[Index].ReversionValue) {
break;
}
}
UnicodeSPrint (
StringBuffer,
0x100,
L"%d.%d.%d.%d / %s",
(UINTN) (UINT16) MeInfoSetupData.MeMajor,
(UINTN) (UINT16) MeInfoSetupData.MeMinor,
(UINTN) (UINT16) MeInfoSetupData.MeHotFix,
(UINTN) (UINT16) MeInfoSetupData.MeBuildNo,
MeFwSkuString[Index].SteppingString
);
} else {
StringBuffer=HiiGetString (AdvanceHiiHandle, STRING_TOKEN (STR_ME_VERSION), NULL);
}
MeVersionString=HiiSetString (MainHiiHandle, 0, StringBuffer, NULL);
NewStringToHandle (
AdvanceHiiHandle,
STRING_TOKEN (STR_ME_FW_VERSION_STRING),
MainHiiHandle,
&MeFwVersionString
);
HiiCreateTextOpCode (OpCodeHandle,MeFwVersionString, 0, MeVersionString );
return Status;
}