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>
SerialNumType01,\r
UuidType01,\r
SystemManufacturerType01,\r
SerialNumType01,\r
UuidType01,\r
SystemManufacturerType01,\r
SkuNumberType01,\r
FamilyType01,\r
AssertTagType02,\r
SerialNumberType02,\r
BoardManufacturerType02,\r
SkuNumberType01,\r
FamilyType01,\r
AssertTagType02,\r
SerialNumberType02,\r
BoardManufacturerType02,\r
+ ProductNameType02,\r
+ VersionType02,\r
SkuNumberType02,\r
ChassisLocationType02,\r
AssetTagType03,\r
SkuNumberType02,\r
ChassisLocationType02,\r
AssetTagType03,\r
if (StrLen (Product) > 0) {\r
TokenToUpdate = STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME);\r
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Product, NULL);\r
if (StrLen (Product) > 0) {\r
TokenToUpdate = STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME);\r
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Product, NULL);\r
+ } else {\r
+ OemUpdateSmbiosInfo (\r
+ mSmbiosMiscHiiHandle,\r
+ STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME),\r
+ ProductNameType01\r
+ );\r
}\r
\r
pVersion = (CHAR16 *)PcdGetPtr (PcdSystemVersion);\r
if (StrLen (pVersion) > 0) {\r
TokenToUpdate = STRING_TOKEN (STR_MISC_SYSTEM_VERSION);\r
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, pVersion, NULL);\r
}\r
\r
pVersion = (CHAR16 *)PcdGetPtr (PcdSystemVersion);\r
if (StrLen (pVersion) > 0) {\r
TokenToUpdate = STRING_TOKEN (STR_MISC_SYSTEM_VERSION);\r
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, pVersion, NULL);\r
+ } else {\r
+ OemUpdateSmbiosInfo (\r
+ mSmbiosMiscHiiHandle,\r
+ STRING_TOKEN (STR_MISC_SYSTEM_VERSION),\r
+ VersionType01\r
+ );\r
}\r
\r
OemUpdateSmbiosInfo (\r
}\r
\r
OemUpdateSmbiosInfo (\r
if (StrLen (BaseBoardManufacturer) > 0) {\r
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER);\r
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardManufacturer, NULL);\r
if (StrLen (BaseBoardManufacturer) > 0) {\r
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER);\r
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardManufacturer, NULL);\r
+ } else {\r
+ OemUpdateSmbiosInfo (\r
+ mSmbiosMiscHiiHandle,\r
+ STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER),\r
+ BoardManufacturerType02\r
+ );\r
}\r
\r
BaseBoardProductName = (CHAR16 *)PcdGetPtr (PcdBaseBoardProductName);\r
if (StrLen (BaseBoardProductName) > 0) {\r
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME);\r
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardProductName, NULL);\r
}\r
\r
BaseBoardProductName = (CHAR16 *)PcdGetPtr (PcdBaseBoardProductName);\r
if (StrLen (BaseBoardProductName) > 0) {\r
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME);\r
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardProductName, NULL);\r
+ } else {\r
+ OemUpdateSmbiosInfo (\r
+ mSmbiosMiscHiiHandle,\r
+ STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME),\r
+ ProductNameType02\r
+ );\r
}\r
\r
Version = (CHAR16 *)PcdGetPtr (PcdBaseBoardVersion);\r
if (StrLen (Version) > 0) {\r
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION);\r
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL);\r
}\r
\r
Version = (CHAR16 *)PcdGetPtr (PcdBaseBoardVersion);\r
if (StrLen (Version) > 0) {\r
TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION);\r
HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL);\r
+ } else {\r
+ OemUpdateSmbiosInfo (\r
+ mSmbiosMiscHiiHandle,\r
+ STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION),\r
+ VersionType02\r
+ );\r
}\r
\r
OemUpdateSmbiosInfo (\r
}\r
\r
OemUpdateSmbiosInfo (\r