[edk2-devel] [PATCH v3 1/1] ArmPkg/SmbiosMiscDxe: Adjust the priority of getting firmware version

Tinh Nguyen via groups.io tinhnguyen=os.amperecomputing.com at groups.io
Wed Mar 22 03:51:37 UTC 2023


Thanks Oliver

will be improved in the next version

- Tinh

On 3/21/2023 11:57 PM, Oliver Smith-Denny wrote:
> One nit below, otherwise:
>
> Reviewed-by: Oliver Smith-Denny <osd at smith-denny.com>
>
> Thanks!
>
> On 3/20/2023 8:16 PM, Tinh Nguyen via groups.io wrote:
>> The BIOS Firmware Version in the SMBIOS Type 0 can be fetched from
>> the fixed PcdFirmwareVersionString or platform specific OemMiscLib.
>> In fact, the support from OemMiscLib comes into play when the firmware
>> version may be modified at boot time for extended information.
>> Therefore, the priority of getting the version from OemMiscLib should
>> be higher.
>>
>> In case there is no modification in the OemMiscLib, we have to keep
>> HII string STR_MISC_BIOS_VERSION empty or 'Not Specified'
>> to indicate that the firmware version should be fetched from
>> the PcdFirmwareVersionString.
>>
>> Signed-off-by: Tinh Nguyen <tinhnguyen at os.amperecomputing.com>
>> Reviewed-by: Rebecca Cran <rebecca at bsdio.com>
>> ---
>>
>> Changes since v1:
>>    + Change GetBiosVersion () to SetBiosVersion () and move the 
>> selection logic
>>    fully into SetBiosVersion ().
>> Changes since v2:
>>    + Add Reviewed-by: Rebecca Cran <rebecca at bsdio.com> and remove 
>> @retval
>>    VOID
>>
>> ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c 
>> | 57 ++++++++++++--------
>>   1 file changed, 35 insertions(+), 22 deletions(-)
>>
>> diff --git 
>> a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c 
>> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c
>> index 66ead22a6e2c..876a74614285 100644
>> --- 
>> a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c
>> +++ 
>> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c
>> @@ -1,6 +1,6 @@
>>   /** @file
>>   -  Copyright (c) 2022, Ampere Computing LLC. All rights reserved.<BR>
>> +  Copyright (c) 2022 - 2023, Ampere Computing LLC. All rights 
>> reserved.<BR>
>>     Copyright (c) 2021, NUVIA Inc. All rights reserved.<BR>
>>     Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
>>     Copyright (c) 2015, Hisilicon Limited. All rights reserved.<BR>
>> @@ -124,22 +124,46 @@ GetBiosReleaseDate (
>>     return ReleaseDate;
>>   }
>>   -/**
>> -  Fetches the firmware ('BIOS') version from the
>> -  FirmwareVersionInfo HOB.
>> +/**  Fetches the Firmware version string for SMBIOS type 0
>> +
>> +  This function get the Firmware version string from OemMiscLib first,
>> +  if it is invalid then PcdFirmwareVersionString is used as a fallback.
>
> nit: this function comment seems a bit at odds with the name of the 
> function (i.e. the comment says it gets the FW version, but the name 
> of the function is SetBiosVersion, which I see was changed in this 
> patch). Perhaps updating the comment to indicate it retrieves the BIOS 
> version from OemMiscLib or PcdFirmwareVersionString and then sets it 
> in SMBIOS.
>
>>   -  @return The version as a UTF-16 string
>>   **/
>> -CHAR16 *
>> -GetBiosVersion (
>> +VOID
>> +SetBiosVersion (
>>     VOID
>>     )
>>   {
>> -  CHAR16  *ReleaseString;
>> +  CHAR16         *DefaultVersionString;
>> +  CHAR16         *Version;
>> +  EFI_STRING_ID  TokenToUpdate;
>>   -  ReleaseString = (CHAR16 *)FixedPcdGetPtr 
>> (PcdFirmwareVersionString);
>> +  DefaultVersionString = HiiGetString (
>> +                           mSmbiosMiscHiiHandle,
>> +                           STRING_TOKEN (STR_MISC_BIOS_VERSION),
>> +                           NULL
>> +                           );
>>   -  return ReleaseString;
>> +  OemUpdateSmbiosInfo (
>> +    mSmbiosMiscHiiHandle,
>> +    STRING_TOKEN (STR_MISC_BIOS_VERSION),
>> +    BiosVersionType00
>> +    );
>> +
>> +  Version = HiiGetString (
>> +              mSmbiosMiscHiiHandle,
>> +              STRING_TOKEN (STR_MISC_BIOS_VERSION),
>> +              NULL
>> +              );
>> +
>> +  if (((StrCmp (Version, DefaultVersionString) == 0) || (StrLen 
>> (Version) == 0))) {
>> +    Version = (CHAR16 *)FixedPcdGetPtr (PcdFirmwareVersionString);
>> +    if (StrLen (Version) > 0) {
>> +      TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_VERSION);
>> +      HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, 
>> NULL);
>> +    }
>> +  }
>>   }
>>     /**
>> @@ -187,18 +211,7 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscBiosVendor) {
>>       HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Vendor, NULL);
>>     }
>>   -  Version = GetBiosVersion ();
>> -
>> -  if (StrLen (Version) > 0) {
>> -    TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_VERSION);
>> -    HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL);
>> -  } else {
>> -    OemUpdateSmbiosInfo (
>> -      mSmbiosMiscHiiHandle,
>> -      STRING_TOKEN (STR_MISC_BIOS_VERSION),
>> -      BiosVersionType00
>> -      );
>> -  }
>> +  SetBiosVersion ();
>>       Char16String = GetBiosReleaseDate ();
>>     if (StrLen (Char16String) > 0) {
>> -- 
>> 2.39.2
>>
>>
>> 
>>
>>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#101554): https://edk2.groups.io/g/devel/message/101554
Mute This Topic: https://groups.io/mt/97748102/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