public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Tinh Nguyen" <tinhnguyen@os.amperecomputing.com>
To: Leif Lindholm <quic_llindhol@quicinc.com>,
	Tinh Nguyen <tinhnguyen@os.amperecomputing.com>
Cc: devel@edk2.groups.io, patches@amperecomputing.com,
	ardb+tianocore@kernel.org, Nhi Pham <nhi@os.amperecomputing.com>
Subject: Re: [PATCH 1/1] ArmPkg/SmbiosMiscDxe: Adjust the priority of getting firmware version
Date: Mon, 13 Mar 2023 23:52:41 +0700	[thread overview]
Message-ID: <0e962fce-d8d2-9622-94af-5f32e5a51ca4@amperemail.onmicrosoft.com> (raw)
In-Reply-To: <ZA87Kdervo3ZHM7r@qc-i7.hemma.eciton.net>

Hi Leif,

My comments is in below

On 3/13/2023 10:03 PM, Leif Lindholm wrote:
> On Mon, Mar 13, 2023 at 13:43:21 +0700, Tinh Nguyen 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.
> Wait. Firmware version modified at boot time for extended information?
> What type of extended information?
That could be SCP version, TF-A version, etc.
>> 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.
>>
>> Reviewed-by: Nhi Pham <nhi@os.amperecomputing.com>
>> Signed-off-by: Tinh Nguyen <tinhnguyen@os.amperecomputing.com>
>> ---
>>   ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c | 36 ++++++++++++++------
>>   1 file changed, 25 insertions(+), 11 deletions(-)
>>
>> diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c
>> index 66ead22a6e2c..31a3f6cde544 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>
>> @@ -170,6 +170,7 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscBiosVendor) {
>>     EFI_STRING_ID       TokenToGet;
>>     SMBIOS_TABLE_TYPE0  *SmbiosRecord;
>>     SMBIOS_TABLE_TYPE0  *InputData;
>> +  CHAR16              *DefaultVersionString;
>>   
>>     //
>>     // First check for invalid parameters.
>> @@ -187,17 +188,30 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscBiosVendor) {
>>       HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Vendor, NULL);
>>     }
>>   
>> -  Version = GetBiosVersion ();
> GetBiosVersion exists as a helper function to avoid cluttering
> higher-level functions with unnecessary details. If this change is
> needed, that is where it should go.

This change is based on existing code, and goal is to get the Firmware 
version string from OemMiscLib first, rather than PcdFirmwareVersionString.

  I would rather not make any changes that aren't relevant.

> But I still don't understand the purpose of this patch, so cannot
> comment on whether I feel this is the right approach or not.
> Please elaborate.

The firmware version is currently being updated:

1. Get the string from Fixed PcdFirmwareVersionString.

2. Check to see if this string is null; if not, update the SMBIOS 
firmware version string.

3. if PcdFirmwareVersionString is null, retrieve the string from OemMiscLib.


As you can see, the implementation is intended to honor the 
PcdFirmwareVersionString.

We can't get the extend information (which can be derived from runtime) 
into the SMBIOS firmware version string if we don't set 
PcdFirmwareVersionString null

However,  in some cases we don't want to set PcdFirmwareVersionString to 
null because it might be used by other modules.


   I think it makes sense to prioritize OemMiscLib since it's more 
flexible than Pcd.
> /
>      Leif
>
>> +  DefaultVersionString = HiiGetString (
>> +                           mSmbiosMiscHiiHandle,
>> +                           STRING_TOKEN (STR_MISC_BIOS_VERSION),
>> +                           NULL
>> +                           );
>>   
>> -  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
>> -      );
>> +  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 = GetBiosVersion ();
>> +    if (StrLen (Version) > 0) {
>> +      TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_VERSION);
>> +      HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL);
>> +    }
>>     }
>>   
>>     Char16String = GetBiosReleaseDate ();
>> -- 
>> 2.39.2
>>

  reply	other threads:[~2023-03-13 16:52 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-13  6:43 [PATCH 1/1] ArmPkg/SmbiosMiscDxe: Adjust the priority of getting firmware version Tinh Nguyen
2023-03-13 15:03 ` Leif Lindholm
2023-03-13 16:52   ` Tinh Nguyen [this message]
2023-03-14 12:48     ` [edk2-devel] " Leif Lindholm
2023-03-14 17:59       ` Rebecca Cran
2023-03-17 14:52         ` Tinh Nguyen
2023-03-16  8:30 ` Tinh Nguyen
2023-03-16 13:00   ` [edk2-devel] " Rebecca Cran
2023-03-17 14:50     ` Tinh Nguyen
2023-03-17 14:50     ` Tinh Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0e962fce-d8d2-9622-94af-5f32e5a51ca4@amperemail.onmicrosoft.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox