Frontpage: add device names, FW info to setup screen

Signed-off-by: Matt Devo <matt.devillier@gmail.com>
This commit is contained in:
Matt DeVillier
2016-08-16 11:56:45 -05:00
parent 735fae0452
commit 0286bfae44

View File

@ -689,6 +689,107 @@ GetOptionalStringByIndex (
}
VOID
GetDeviceNameFromProduct (
IN CHAR16 *Product,
OUT CHAR16 **DeviceName
)
{
if (!StrCmp(Product, L"Auron")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebook C740/C910");
} else if (!StrCmp(Product, L"Auron_Paine")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebook 11 C740");
} else if (!StrCmp(Product, L"Auron_Yuna")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebook 15 C910");
} else if (!StrCmp(Product, L"Banjo")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebook 15 CB3-571");
} else if (!StrCmp(Product, L"Buddy")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebase 24");
} else if (!StrCmp(Product, L"Butterfly")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"HP Pavilion Chromebook 14");
} else if (!StrCmp(Product, L"Candy")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Dell Chromebook 11 3120");
} else if (!StrCmp(Product, L"Chell")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"HP Chromebook 13 G1");
} else if (!StrCmp(Product, L"Clapper")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Lenovo N20 Chromebook");
} else if (!StrCmp(Product, L"Cyan")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebook R11 / C738T");
} else if (!StrCmp(Product, L"Edgar")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebook 14");
} else if (!StrCmp(Product, L"Enguarde")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Lenovo N21 Chromebook");
} else if (!StrCmp(Product, L"Falco")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"HP Chromebook 14");
} else if (!StrCmp(Product, L"Gandof")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Toshiba Chromebook2 2015");
} else if (!StrCmp(Product, L"Glimmer")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Lenovo ThinkPad 11e");
} else if (!StrCmp(Product, L"Gnawty")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebook 11 CB3-111/131");
} else if (!StrCmp(Product, L"Guado")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Asus Chromebox CN62");
} else if (!StrCmp(Product, L"Kip")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"HP Chromebook 11 G3/G4");
} else if (!StrCmp(Product, L"Leon")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Toshiba Chromebook");
} else if (!StrCmp(Product, L"Librem 13 v2")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Purism Librem 13 v2");
} else if (!StrCmp(Product, L"Lulu")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Dell Chromebook 13 7310");
} else if (!StrCmp(Product, L"Link")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Google Chromebook Pixel 2013");
} else if (!StrCmp(Product, L"Lumpy")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Samsung Chromebook Series 5 550");
} else if (!StrCmp(Product, L"Mccloud")) {
StrCatS (*DeviceName, 0x60 / sizeof (CHAR16), L"Acer Chromebox CXI");
} else if (!StrCmp(Product, L"Monroe")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"LG Chromebase");
} else if (!StrCmp(Product, L"Ninja")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"AOpen Chromebox Commercial");
} else if (!StrCmp(Product, L"Orco")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Lenovo Ideapad 100s");
} else if (!StrCmp(Product, L"Panther")) {
StrCatS (*DeviceName, 0x60 / sizeof (CHAR16), L"Asus Chromebox CN60");
} else if (!StrCmp(Product, L"Parrot")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebook C710");
} else if (!StrCmp(Product, L"Peppy")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebook C720");
} else if (!StrCmp(Product, L"Quawks")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Asus Chromebook C300");
} else if (!StrCmp(Product, L"Reks")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Lenovo N22 Chromebook");
} else if (!StrCmp(Product, L"Rikku")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Acer Chromebox CXI2");
} else if (!StrCmp(Product, L"Samus")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Google Chromebook Pixel 2015");
} else if (!StrCmp(Product, L"Sentry")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Lenovo ThinkPad 13 Chromebook");
} else if (!StrCmp(Product, L"Squawks")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Asus Chromebook C200");
} else if (!StrCmp(Product, L"Stout")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Lenovo ThinkPad X131e Chromebook");
} else if (!StrCmp(Product, L"Stumpy")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Samsung Chromebox Series 3");
} else if (!StrCmp(Product, L"Sumo")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"AOpen Chromebase Commercial");
} else if (!StrCmp(Product, L"Swanky")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Toshiba Chromebook2 2014");
} else if (!StrCmp(Product, L"Tidus")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Lenovo ThinkCentre Chromebox");
} else if (!StrCmp(Product, L"Tricky")) {
StrCatS (*DeviceName, 0x60 / sizeof (CHAR16), L"Dell Chromebox 3010");
} else if (!StrCmp(Product, L"Winky")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Samsung Chromebook 2");
} else if (!StrCmp(Product, L"Wolf")) {
StrCatS (*DeviceName, 0x40 / sizeof (CHAR16), L"Dell Chromebook 11 2013");
} else if (!StrCmp(Product, L"Zako")) {
StrCatS (*DeviceName, 0x60 / sizeof (CHAR16), L"HP Chromebox CB1");
}
//etc etc
}
/**
Update the banner information for the Front Page based on DataHub information.
@ -699,7 +800,10 @@ UpdateFrontPageStrings (
)
{
UINT8 StrIndex;
UINT8 Str2Index;
CHAR16 *NewString;
CHAR16 *NewString2;
CHAR16 *NewString3;
EFI_STATUS Status;
EFI_STRING_ID TokenToUpdate;
EFI_SMBIOS_HANDLE SmbiosHandle;
@ -725,21 +829,36 @@ UpdateFrontPageStrings (
SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;
Status = Smbios->GetNext (Smbios, &SmbiosHandle, NULL, &Record, NULL);
while (!EFI_ERROR(Status)) {
if (Record->Type == SMBIOS_TYPE_BIOS_INFORMATION) {
NewString3 = AllocateZeroPool (0x60);
if (Record->Type == EFI_SMBIOS_TYPE_BIOS_INFORMATION) {
Type0Record = (SMBIOS_TABLE_TYPE0 *) Record;
StrIndex = Type0Record->BiosVersion;
Str2Index = Type0Record->BiosReleaseDate;
GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type0Record + Type0Record->Hdr.Length), StrIndex, &NewString);
GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type0Record + Type0Record->Hdr.Length), Str2Index, &NewString2);
StrCatS (NewString3, 0x40 / sizeof (CHAR16), L"FW: ");
StrCatS (NewString3, 0x40 / sizeof (CHAR16), NewString2);
StrCatS (NewString3, 0x40 / sizeof (CHAR16), L"::");
StrCatS (NewString3, 0x40 / sizeof (CHAR16), NewString);
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_BIOS_VERSION);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString3, NULL);
FreePool (NewString);
}
if (Record->Type == SMBIOS_TYPE_SYSTEM_INFORMATION) {
Type1Record = (SMBIOS_TABLE_TYPE1 *) Record;
StrIndex = Type1Record->ProductName;
Str2Index = Type1Record->Manufacturer;
GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type1Record + Type1Record->Hdr.Length), StrIndex, &NewString);
NewString2 = AllocateZeroPool (0x60);
GetDeviceNameFromProduct(NewString, &NewString2);
StrCatS (NewString3, 0x60 / sizeof (CHAR16), NewString2);
StrCatS (NewString3, 0x60 / sizeof (CHAR16), L" (");
StrCatS (NewString3, 0x60 / sizeof (CHAR16), NewString);
StrCatS (NewString3, 0x60 / sizeof (CHAR16), L")");
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_COMPUTER_MODEL);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString3, NULL);
FreePool (NewString);
}
@ -752,13 +871,13 @@ UpdateFrontPageStrings (
FreePool (NewString);
}
if (Record->Type == SMBIOS_TYPE_PROCESSOR_INFORMATION) {
Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;
ConvertProcessorToString(Type4Record->CurrentSpeed, 6, &NewString);
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_SPEED);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);
FreePool (NewString);
}
// if (Record->Type == SMBIOS_TYPE_PROCESSOR_INFORMATION) {
// Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;
// ConvertProcessorToString(Type4Record->CurrentSpeed, 6, &NewString);
// TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_SPEED);
// HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);
// FreePool (NewString);
// }
if ( Record->Type == SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS ) {
Type19Record = (SMBIOS_TABLE_TYPE19 *) Record;
@ -769,16 +888,15 @@ UpdateFrontPageStrings (
InstalledMemory += RShiftU64(Type19Record->ExtendedEndingAddress -
Type19Record->ExtendedStartingAddress + 1, 20);
}
// now update the total installed RAM size
ConvertMemorySizeToString ((UINT32)InstalledMemory, &NewString );
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_MEMORY_SIZE);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);
FreePool (NewString);
}
Status = Smbios->GetNext (Smbios, &SmbiosHandle, NULL, &Record, NULL);
}
// now update the total installed RAM size
ConvertMemorySizeToString ((UINT32)InstalledMemory, &NewString );
TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_MEMORY_SIZE);
HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);
FreePool (NewString);
}
return ;