[edk2-devel] [PATCH 2/3] ArmPkg/SmbiosMiscDxe: Get full SMBIOS strings from OemMiscLib
Sami Mujawar
sami.mujawar at arm.com
Wed Dec 15 17:19:30 UTC 2021
Hi Nhi,
Other than the code style issue (which I believe uncrustify will
complain about), this patch looks good to me.
With that fixed.
Reviewed-by: Sami Mujawar <sami.mujawar at arm.com>
Regards,
Sami Mujawar
On 01/12/2021 04:10 AM, Nhi Pham via groups.io wrote:
> 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.
>
> Cc: Leif Lindholm <leif at nuviainc.com>
> Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
> Cc: Rebecca Cran <rebecca at nuviainc.com>
> Signed-off-by: Nhi Pham <nhi at os.amperecomputing.com>
> ---
> ArmPkg/Include/Library/OemMiscLib.h | 3 +++
> ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerFunction.c | 10 ++++++++++
> ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturerFunction.c | 15 +++++++++++++++
> 3 files changed, 28 insertions(+)
>
> diff --git a/ArmPkg/Include/Library/OemMiscLib.h b/ArmPkg/Include/Library/OemMiscLib.h
> index 0b03fe8d4de3..aa68c0a92632 100644
> --- a/ArmPkg/Include/Library/OemMiscLib.h
> +++ b/ArmPkg/Include/Library/OemMiscLib.h
> @@ -44,11 +44,14 @@ typedef enum
> SerialNumType01,
> UuidType01,
> SystemManufacturerType01,
> + VersionType01,
> SkuNumberType01,
> FamilyType01,
> AssertTagType02,
> SerialNumberType02,
> BoardManufacturerType02,
> + ProductNameType02,
> + VersionType02,
> SkuNumberType02,
> ChassisLocationType02,
> AssetTagType03,
> diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerFunction.c b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerFunction.c
> index 2c69c2593f5d..2c73d63444fe 100644
> --- a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerFunction.c
> +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type01/MiscSystemManufacturerFunction.c
> @@ -75,12 +75,22 @@ SMBIOS_MISC_TABLE_FUNCTION(MiscSystemManufacturer)
> if (StrLen (Product) > 0) {
> TokenToUpdate = STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME);
> HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Product, NULL);
> + } else {
> + OemUpdateSmbiosInfo (mSmbiosMiscHiiHandle,
> + STRING_TOKEN (STR_MISC_SYSTEM_PRODUCT_NAME),
> + ProductNameType01
> + );
[SAMI] I think uncrustify would fail here, similar issue at other places.
> }
>
> pVersion = (CHAR16 *) PcdGetPtr (PcdSystemVersion);
> if (StrLen (pVersion) > 0) {
> TokenToUpdate = STRING_TOKEN (STR_MISC_SYSTEM_VERSION);
> HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, pVersion, NULL);
> + } else {
> + OemUpdateSmbiosInfo (mSmbiosMiscHiiHandle,
> + STRING_TOKEN (STR_MISC_SYSTEM_VERSION),
> + VersionType01
> + );
> }
>
> OemUpdateSmbiosInfo (mSmbiosMiscHiiHandle,
> diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturerFunction.c b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturerFunction.c
> index 097777a23904..7f397d8d2aaa 100644
> --- a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturerFunction.c
> +++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type02/MiscBaseBoardManufacturerFunction.c
> @@ -79,18 +79,33 @@ SMBIOS_MISC_TABLE_FUNCTION(MiscBaseBoardManufacturer)
> if (StrLen (BaseBoardManufacturer) > 0) {
> TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER);
> HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardManufacturer, NULL);
> + } else {
> + OemUpdateSmbiosInfo (mSmbiosMiscHiiHandle,
> + STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER),
> + BoardManufacturerType02
> + );
> }
>
> BaseBoardProductName = (CHAR16 *) PcdGetPtr (PcdBaseBoardProductName);
> if (StrLen (BaseBoardProductName) > 0) {
> TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME);
> HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, BaseBoardProductName, NULL);
> + } else {
> + OemUpdateSmbiosInfo (mSmbiosMiscHiiHandle,
> + STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME),
> + ProductNameType02
> + );
> }
>
> Version = (CHAR16 *) PcdGetPtr (PcdBaseBoardVersion);
> if (StrLen (Version) > 0) {
> TokenToUpdate = STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION);
> HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL);
> + } else {
> + OemUpdateSmbiosInfo (mSmbiosMiscHiiHandle,
> + STRING_TOKEN (STR_MISC_BASE_BOARD_VERSION),
> + VersionType02
> + );
> }
>
> OemUpdateSmbiosInfo (mSmbiosMiscHiiHandle,
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#84917): https://edk2.groups.io/g/devel/message/84917
Mute This Topic: https://groups.io/mt/87420727/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list