MdeModulePkg/UiApp: Make it look like current FrontPage

Signed-off-by: Jeremy Soller <jeremy@system76.com>
Signed-off-by: Tim Crawford <tcrawford@system76.com>
This commit is contained in:
Tim Crawford
2021-10-22 20:28:04 -06:00
parent 8a0955dfa8
commit 2d04a62512
8 changed files with 75 additions and 644 deletions

View File

@ -17,7 +17,6 @@ EFI_GUID mFrontPageGuid = FRONT_PAGE_FORMSET_GUID;
BOOLEAN mResetRequired = FALSE;
EFI_FORM_BROWSER2_PROTOCOL *gFormBrowser2;
CHAR8 *mLanguageString;
BOOLEAN mModeInitialized = FALSE;
//
// Boot video resolution and text mode.
@ -38,7 +37,6 @@ FRONT_PAGE_CALLBACK_DATA gFrontPagePrivate = {
FRONT_PAGE_CALLBACK_DATA_SIGNATURE,
NULL,
NULL,
NULL,
{
FakeExtractConfig,
FakeRouteConfig,
@ -211,7 +209,7 @@ UpdateFrontPageForm (
//
StartGuidLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));
StartGuidLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
StartGuidLabel->Number = LABEL_FRANTPAGE_INFORMATION;
StartGuidLabel->Number = LABEL_FRONTPAGE_INFORMATION;
//
// Create Hii Extend Label OpCode as the end opcode
//
@ -367,10 +365,6 @@ FreeFrontPage(
// Publish our HII data
//
HiiRemovePackages (gFrontPagePrivate.HiiHandle);
if (gFrontPagePrivate.LanguageToken != NULL) {
FreePool (gFrontPagePrivate.LanguageToken);
gFrontPagePrivate.LanguageToken = NULL;
}
}
/**
@ -539,129 +533,81 @@ UpdateFrontPageBannerStrings (
VOID
)
{
CHAR16 *MemoryStr;
EFI_STATUS Status;
EFI_STRING_ID TokenToUpdate;
EFI_PHYSICAL_ADDRESS *Table;
SMBIOS_TABLE_ENTRY_POINT *EntryPoint;
SMBIOS_STRUCTURE_POINTER SmbiosTable;
UINT64 InstalledMemory;
InstalledMemory = 0;
//
// Update Front Page strings
//
Status = EfiGetSystemConfigurationTable (&gEfiSmbiosTableGuid, (VOID **) &Table);
if (EFI_ERROR (Status) || Table == NULL) {
} else {
EntryPoint = (SMBIOS_TABLE_ENTRY_POINT*)Table;
return;
}
SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_BIOS_INFORMATION , 0);
EntryPoint = (SMBIOS_TABLE_ENTRY_POINT*)Table;
if (SmbiosTable.Raw != NULL) {
CHAR16 *FwVersion;
CHAR16 *FwDate;
CHAR16 *TmpBuffer;
UINT8 VersionIdx;
UINT8 DateIdx;
SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_BIOS_INFORMATION , 0);
if (SmbiosTable.Raw != NULL) {
CHAR16 *FwVersion;
CHAR16 *TmpBuffer;
UINT8 VersionIdx;
TmpBuffer = AllocateZeroPool (0x60);
TmpBuffer = AllocateZeroPool (0x60);
VersionIdx = SmbiosTable.Type0->BiosVersion;
DateIdx = SmbiosTable.Type0->BiosReleaseDate;
VersionIdx = SmbiosTable.Type0->BiosVersion;
GetOptionalStringByIndex ((CHAR8*)((UINT8*)SmbiosTable.Raw + SmbiosTable.Hdr->Length), VersionIdx, &FwVersion);
GetOptionalStringByIndex ((CHAR8*)((UINT8*)SmbiosTable.Raw + SmbiosTable.Hdr->Length), VersionIdx, &FwVersion);
GetOptionalStringByIndex ((CHAR8*)((UINT8*)SmbiosTable.Raw + SmbiosTable.Hdr->Length), DateIdx, &FwDate);
StrCatS (TmpBuffer, 0x60 / sizeof (CHAR16), L"FW: ");
StrCatS (TmpBuffer, 0x60 / sizeof (CHAR16), FwVersion);
StrCatS (TmpBuffer, 0x60 / sizeof (CHAR16), L" ");
StrCatS (TmpBuffer, 0x60 / sizeof (CHAR16), FwDate);
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_BIOS_VERSION);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, TmpBuffer, NULL);
StrCatS (TmpBuffer, 0x60 / sizeof (CHAR16), L"Version: ");
StrCatS (TmpBuffer, 0x60 / sizeof (CHAR16), FwVersion);
FreePool (FwVersion);
FreePool (FwDate);
FreePool (TmpBuffer);
}
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_BIOS_VERSION);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, TmpBuffer, NULL);
SmbiosTable = GetSmbiosTableFromType (EntryPoint, SMBIOS_TYPE_SYSTEM_INFORMATION , 0);
if (SmbiosTable.Raw != NULL) {
CHAR16 *ProductName;
CHAR16 *Manufacturer;
CHAR16 *DeviceName;
CHAR16 *TmpBuffer;
UINT8 ProductIdx;
UINT8 ManIdx;
FreePool (FwVersion);
FreePool (TmpBuffer);
}
TmpBuffer = AllocateZeroPool (0x60);
DeviceName = AllocateZeroPool (0x60);
SmbiosTable = GetSmbiosTableFromType (EntryPoint, SMBIOS_TYPE_SYSTEM_INFORMATION , 0);
if (SmbiosTable.Raw != NULL) {
CHAR16 *Manufacturer;
CHAR16 *ProductName;
CHAR16 *ProductVersion;
CHAR16 *Title;
CHAR16 *Model;
UINT8 ModelIdx;
UINT8 ManIdx;
UINT8 VersionIdx;
ProductIdx = SmbiosTable.Type1->ProductName;
ManIdx = SmbiosTable.Type1->Manufacturer;
GetOptionalStringByIndex ((CHAR8*)((UINT8*)SmbiosTable.Raw + SmbiosTable.Hdr->Length), ProductIdx, &ProductName);
GetOptionalStringByIndex ((CHAR8*)((UINT8*)SmbiosTable.Raw + SmbiosTable.Hdr->Length), ManIdx, &Manufacturer);
Title = AllocateZeroPool (0x60);
Model = AllocateZeroPool (0x60);
StrCatS (TmpBuffer, 0x60 / sizeof (CHAR16), Manufacturer);
StrCatS (TmpBuffer, 0x60 / sizeof (CHAR16), L" ");
StrCatS (TmpBuffer, 0x60 / sizeof (CHAR16), ProductName);
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_COMPUTER_MODEL);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, TmpBuffer, NULL);
FreePool (ProductName);
FreePool (Manufacturer);
FreePool (DeviceName);
FreePool (TmpBuffer);
}
ManIdx = SmbiosTable.Type1->Manufacturer;
ModelIdx = SmbiosTable.Type1->ProductName;
SmbiosTable = GetSmbiosTableFromType (EntryPoint, SMBIOS_TYPE_PROCESSOR_INFORMATION , 0);
if (SmbiosTable.Raw != NULL) {
CHAR16 *ProcessorVersion;
CHAR16 *TmpBuffer;
UINT8 CpuIdx;
GetOptionalStringByIndex ((CHAR8*)((UINT8*)SmbiosTable.Raw + SmbiosTable.Hdr->Length), ModelIdx, &ProductName);
GetOptionalStringByIndex ((CHAR8*)((UINT8*)SmbiosTable.Raw + SmbiosTable.Hdr->Length), ManIdx, &Manufacturer);
TmpBuffer = AllocateZeroPool (0x60);
StrCatS (Title, 0x60 / sizeof (CHAR16), Manufacturer);
StrCatS (Title, 0x60 / sizeof (CHAR16), L" ");
StrCatS (Title, 0x60 / sizeof (CHAR16), ProductName);
CpuIdx = SmbiosTable.Type4->ProcessorVersion;
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_TITLE);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, Title, NULL);
GetOptionalStringByIndex ((CHAR8*)((UINT8*)SmbiosTable.Raw + SmbiosTable.Hdr->Length), CpuIdx, &ProcessorVersion);
StrCatS (TmpBuffer, 0x60 / sizeof (CHAR16), ProcessorVersion);
// Trim leading spaces
while (TmpBuffer[0] == 0x20) {
TmpBuffer = &TmpBuffer[1];
}
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_MODEL);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, TmpBuffer, NULL);
FreePool (ProcessorVersion);
FreePool (TmpBuffer);
}
VersionIdx = SmbiosTable.Type1->Version;
GetOptionalStringByIndex ((CHAR8*)((UINT8*)SmbiosTable.Raw + SmbiosTable.Hdr->Length), VersionIdx, &ProductVersion);
SmbiosTable = GetSmbiosTableFromType (EntryPoint, SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS , 0);
if (SmbiosTable.Raw != NULL) {
if (SmbiosTable.Type19->StartingAddress != 0xFFFFFFFF ) {
InstalledMemory += RShiftU64(SmbiosTable.Type19->EndingAddress -
SmbiosTable.Type19->StartingAddress + 1, 10);
} else {
InstalledMemory += RShiftU64(SmbiosTable.Type19->ExtendedEndingAddress -
SmbiosTable.Type19->ExtendedStartingAddress + 1, 20);
}
StrCatS (Model, 0x60 / sizeof (CHAR16), L"Model: ");
StrCatS (Model, 0x60 / sizeof (CHAR16), ProductVersion);
// now update the total installed RAM size
ConvertMemorySizeToString ((UINT32)InstalledMemory, &MemoryStr );
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_MEMORY_SIZE);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, MemoryStr, NULL);
FreePool (MemoryStr);
}
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_COMPUTER_MODEL);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, Model, NULL);
FreePool (Model);
FreePool (Title);
FreePool (ProductVersion);
FreePool (ProductName);
FreePool (Manufacturer);
}
}
@ -1029,11 +975,6 @@ UiEntry (
FreeFrontPage ();
if (mLanguageString != NULL) {
FreePool (mLanguageString);
mLanguageString = NULL;
}
//
//Will leave browser, check any reset required change is applied? if yes, reset system
//
@ -1046,10 +987,6 @@ UiEntry (
// user change any option setting which needs a reset to be effective, and the reset will be applied according to the user selection.
//
/**
Record the info that a reset is required.
A module boolean variable is used to record whether a reset is required.
@ -1064,10 +1001,6 @@ EnableResetRequired (
mResetRequired = TRUE;
}
/**
Check if user changed any option setting which needs a system reset to be effective.