ArmPkg/SmbiosMiscDxe: Get full SMBIOS strings from OemMiscLib
Typically, the information of the SMBIOS type 1/2/3 is fetched from an FRU device during UEFI booting intead of fixed PCDs. Therefore, this patch is to add more HII string fields in the OemMiscLib and support updating these SMBIOS types with the strings provided by the OemMiscLib if the PCDs are empty. Signed-off-by: Nhi Pham <nhi@os.amperecomputing.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
@@ -40,11 +40,14 @@ typedef enum {
|
|||||||
SerialNumType01,
|
SerialNumType01,
|
||||||
UuidType01,
|
UuidType01,
|
||||||
SystemManufacturerType01,
|
SystemManufacturerType01,
|
||||||
|
VersionType01,
|
||||||
SkuNumberType01,
|
SkuNumberType01,
|
||||||
FamilyType01,
|
FamilyType01,
|
||||||
AssertTagType02,
|
AssertTagType02,
|
||||||
SerialNumberType02,
|
SerialNumberType02,
|
||||||
BoardManufacturerType02,
|
BoardManufacturerType02,
|
||||||
|
ProductNameType02,
|
||||||
|
VersionType02,
|
||||||
SkuNumberType02,
|
SkuNumberType02,
|
||||||
ChassisLocationType02,
|
ChassisLocationType02,
|
||||||
AssetTagType03,
|
AssetTagType03,
|
||||||
|
@@ -74,12 +74,24 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscSystemManufacturer) {
|
|||||||
if (StrLen (Product) > 0) {
|
if (StrLen (Product) > 0) {
|
||||||
TokenToUpdate = STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME);
|
TokenToUpdate = STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME);
|
||||||
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Product, NULL);
|
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Product, NULL);
|
||||||
|
} else {
|
||||||
|
OemUpdateSmbiosInfo (
|
||||||
|
mSmbiosMiscHiiHandle,
|
||||||
|
STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME),
|
||||||
|
ProductNameType01
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
pVersion = (CHAR16 *)PcdGetPtr (PcdSystemVersion);
|
pVersion = (CHAR16 *)PcdGetPtr (PcdSystemVersion);
|
||||||
if (StrLen (pVersion) > 0) {
|
if (StrLen (pVersion) > 0) {
|
||||||
TokenToUpdate = STRING_TOKEN (STR_MISC_SYSTEM_VERSION);
|
TokenToUpdate = STRING_TOKEN (STR_MISC_SYSTEM_VERSION);
|
||||||
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, pVersion, NULL);
|
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, pVersion, NULL);
|
||||||
|
} else {
|
||||||
|
OemUpdateSmbiosInfo (
|
||||||
|
mSmbiosMiscHiiHandle,
|
||||||
|
STRING_TOKEN (STR_MISC_SYSTEM_VERSION),
|
||||||
|
VersionType01
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
OemUpdateSmbiosInfo (
|
OemUpdateSmbiosInfo (
|
||||||
|
@@ -77,18 +77,36 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscBaseBoardManufacturer) {
|
|||||||
if (StrLen (BaseBoardManufacturer) > 0) {
|
if (StrLen (BaseBoardManufacturer) > 0) {
|
||||||
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER);
|
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER);
|
||||||
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardManufacturer, NULL);
|
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardManufacturer, NULL);
|
||||||
|
} else {
|
||||||
|
OemUpdateSmbiosInfo (
|
||||||
|
mSmbiosMiscHiiHandle,
|
||||||
|
STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER),
|
||||||
|
BoardManufacturerType02
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseBoardProductName = (CHAR16 *)PcdGetPtr (PcdBaseBoardProductName);
|
BaseBoardProductName = (CHAR16 *)PcdGetPtr (PcdBaseBoardProductName);
|
||||||
if (StrLen (BaseBoardProductName) > 0) {
|
if (StrLen (BaseBoardProductName) > 0) {
|
||||||
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME);
|
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME);
|
||||||
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardProductName, NULL);
|
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardProductName, NULL);
|
||||||
|
} else {
|
||||||
|
OemUpdateSmbiosInfo (
|
||||||
|
mSmbiosMiscHiiHandle,
|
||||||
|
STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME),
|
||||||
|
ProductNameType02
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Version = (CHAR16 *)PcdGetPtr (PcdBaseBoardVersion);
|
Version = (CHAR16 *)PcdGetPtr (PcdBaseBoardVersion);
|
||||||
if (StrLen (Version) > 0) {
|
if (StrLen (Version) > 0) {
|
||||||
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION);
|
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION);
|
||||||
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL);
|
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL);
|
||||||
|
} else {
|
||||||
|
OemUpdateSmbiosInfo (
|
||||||
|
mSmbiosMiscHiiHandle,
|
||||||
|
STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION),
|
||||||
|
VersionType02
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
OemUpdateSmbiosInfo (
|
OemUpdateSmbiosInfo (
|
||||||
|
Reference in New Issue
Block a user