From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (NAM12-BN8-obe.outbound.protection.outlook.com [40.107.237.116]) by mx.groups.io with SMTP id smtpd.web11.34894.1679457113755217467 for ; Tue, 21 Mar 2023 20:51:54 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="no key for verify" header.i=@amperemail.onmicrosoft.com header.s=selector1-amperemail-onmicrosoft-com header.b=WNDf+Vk6; spf=pass (domain: os.amperecomputing.com, ip: 40.107.237.116, mailfrom: tinhnguyen@os.amperecomputing.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LQIvTieXN76qwttHOMHJjJjfOCZ6bZdrhFbrGNIpV5+VPxNSJWXJOxMd622CnDrTlBEyZ8rpXr2mxYwmWn+vSgqeTJe7wEOUyP70c2aw8wap2oDI/GME4okYV3YvfZPQBENlv2KrPKoyD/Witqzsf1COSpQ7lpRHvZsBK0tA5sTVmdOGH+THoIDMytas2WcKqLBx2Vcotv8f95IM+yMNThpEWW2+qyhEm8urT1x/iN7u38hznRInCSlUGTdjDKbDoh2adXD/DCMx0nWSd0amzJDk2Su0DHUbFyS6vDWJpFb2xNcWTR7WKr4jeTE1IQ7qFHO97IWyxkILo1GMzy9r9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JAoRT2BoqtZjxki3QSVApY7jawfmccdPeFiSVeIHITQ=; b=nMS7iEMChrvAiuXjc4zeLpjXMOHcNenlaMOmrPtuqJkWwtqFz7+oETcptVwsnAYx6ZNLODzqJONtgOimdX8ujOct+VWSlXqSv1k7tr9AWAp1rz/5rc7fqwPVFvfYXmu3FFuX14wkBMB5bkGeNNw/9x/bjmWlTi3lHQYBTJaurQg3ceBKUl4uhOzCpVS1o8lSzMOBLRBM1jKQpS9IW21VP3YmzPivqtMNYma8UUvdXeb/grc7GnzYO2DfMoWZ56LT3j5xU9D1V9zzPKS7/+wwWDDE77ch9kp2I36LSvdf/nCzWm5GK2KMR2KUxsQ/7ln/l2Yad+iuOd0gt6a5AeXXxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=amperemail.onmicrosoft.com; dkim=pass header.d=amperemail.onmicrosoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amperemail.onmicrosoft.com; s=selector1-amperemail-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JAoRT2BoqtZjxki3QSVApY7jawfmccdPeFiSVeIHITQ=; b=WNDf+Vk6D6yfKmoE6o1s6DC5ZQgWDQePTP2il/Yy50CE4PSs98iWMtJeulL+X7Cxj8EvXE/XGsD3OXD81/pzcHdSAqwOQ/aQbhqHYHxVxnnQY/2doANUytlgbADE+oqqW/TPuWXmO2JCqB2ddgrfzBmGpQw0oNwwXWMGCbMZHQw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amperemail.onmicrosoft.com; Received: from MWHPR0101MB2942.prod.exchangelabs.com (2603:10b6:301:2e::14) by BN6PR0101MB2850.prod.exchangelabs.com (2603:10b6:405:2c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.24; Wed, 22 Mar 2023 03:51:46 +0000 Received: from MWHPR0101MB2942.prod.exchangelabs.com ([fe80::1d06:a51a:ca3d:c2f6]) by MWHPR0101MB2942.prod.exchangelabs.com ([fe80::1d06:a51a:ca3d:c2f6%4]) with mapi id 15.20.6178.024; Wed, 22 Mar 2023 03:51:46 +0000 Message-ID: <5e1be8e8-2af0-24db-2846-23f664c3c461@amperemail.onmicrosoft.com> Date: Wed, 22 Mar 2023 10:51:37 +0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [edk2-devel] [PATCH v3 1/1] ArmPkg/SmbiosMiscDxe: Adjust the priority of getting firmware version To: Oliver Smith-Denny , devel@edk2.groups.io, tinhnguyen@os.amperecomputing.com CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, nhi@os.amperecomputing.com, rebecca@bsdio.com References: <20230321031638.1241041-1-tinhnguyen@os.amperecomputing.com> From: "Tinh Nguyen" In-Reply-To: X-ClientProxiedBy: SG2PR02CA0129.apcprd02.prod.outlook.com (2603:1096:4:188::19) To MWHPR0101MB2942.prod.exchangelabs.com (2603:10b6:301:2e::14) Return-Path: tinhnguyen@os.amperecomputing.com MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR0101MB2942:EE_|BN6PR0101MB2850:EE_ X-MS-Office365-Filtering-Correlation-Id: 969affaa-a0e3-49e6-456f-08db2a88c1f0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ax6ecP1MnbIdW63dHf5BAWpU40korhjX++bYfQPUHzLHoO0DYgTKs1hTdopg/zAHiQCPilJeOauryH5DZQxCtq2ErFoZyMJ95/0typMzkbEbqLqqSrR6+MXae4OI5RRnG7ON06el03fg9BEuERbO3JmAHWocmW5C+aLUWdXQFD9CJADY21jufR2MYLt0tkCDgVRTc0ltNxgPFxzMkEVtR51xvuRXlTVs94+pJiM4VMKrG2hNf+k/dBNWi7Ca2ARbglvoWQlztOYYsVbU1QVgERIQTShnpPe33evcW8MzIoNibcHr3nYRWMCsaO4wXYzBhiIxAvc9hK0R8oD8i1X/pmSgeU/E3lUDU7pf7iC1nre4lTLbYzD2HhIKgryEv0g4k0XrkRyU/njPs3tcs97rpt8BvEOlUzxyHe+L0QmrcKhkRct+ZwdbN/0IZhLW7VG4MGT/gV/hh+RU2TmAomknkAiICQnfBQiMpQ79bh7/pVdtD0ZmuJPNNcINIGWhZ+faZaLq243SDzprpSpJeVlVkYVQLOlDer4PLN6S3eSQ3nq9lxN92HGhoOeKH/ndoX6SrrPQ/9CjOrmouQMp5vODvwrR0bgPoXQsGLZsQrMmzNLDMbJCxNanOg5D6FmTYLR3DH4otPuqq3Tij4PdntM6QF1nLcVxQpGbEBdtP+AS/NeZJtNvrTeWwRa6MBy8dhss X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR0101MB2942.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(376002)(39850400004)(136003)(346002)(366004)(396003)(451199018)(31696002)(83170400001)(38100700002)(5660300002)(2906002)(41300700001)(4326008)(66476007)(8676002)(66556008)(8936002)(66946007)(2616005)(186003)(42882007)(53546011)(83380400001)(6512007)(478600001)(316002)(26005)(6666004)(966005)(6506007)(6486002)(66899018)(31686004)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?N/1Wv5daYUuH9Rotmp/FNN0elaZKgrfAOgUPuNr5YisBgN/HJUy0h5kePHYj?= =?us-ascii?Q?8g+XwzscO4LTtuDCnQ2F9Cc8GNgZOEi++oFXmYDqKY3IqXuCWLJDSO76VTwZ?= =?us-ascii?Q?fuGQYds8AZ5Y6TePEj7H9z0B26ZyDgR07ky4ug89gGw9smV+3rGdOOpE5tmk?= =?us-ascii?Q?E4bSoQKLCuUYiv/3K1ikZY6d6qqcmOX5cyqbyS5r2yUroyjaTh0QzmFK6iX5?= =?us-ascii?Q?b8SLoL7aGgQCdCONBI27/PDFjkJBEVqlRgopni95d7xeaKXP09O5wzZuVZzQ?= =?us-ascii?Q?asuZAbxSPKPypVszndd9atwRvhuRR3GhMaX4KJRvKbPiuOAaw3rAu3edJUti?= =?us-ascii?Q?ULGqxFwm+OkyyZuVhadFZAlaP7xCg0H4nhFQ7hc2tiN6ILCTkgvfcv9t3+mn?= =?us-ascii?Q?xcquCraCLCfwIjE6fUSeWZhD9NPWe5f6fYo6pwqLrXb85ZI23/EothGfhrzO?= =?us-ascii?Q?9wLEbmXbLMGpGk5L0sIGBnsT72qg4kfRxH4oeZ4Inhh6QIOyoXXJlOnqgKiA?= =?us-ascii?Q?hM9JGVHur+bYnBpXe+ZLHSVAioICVWKjpoQF6EbHNQRnY6lzENjNlvLJNj7i?= =?us-ascii?Q?7NeecywscPScnzSVVwKBPAvZCbZm9UDzqf286iZRbdA6Z5H6M/bSF1GnbWDC?= =?us-ascii?Q?D4tAhD3CWx00JdJZCnMVufMW7GSTKjZTXmv1MtXoJaa5S9J82+vYDzNe4dAj?= =?us-ascii?Q?kaJDh3Pkou+ZvSPZR3q5I0gowq+filPawGiasroOrmOK6UrdPoUu6vNCHh+8?= =?us-ascii?Q?1DllzEZmAAFlPt2mUJa7BmF/UbtAPe4kUWCix+FXM8EGt+SFWYcnbsJdXEOZ?= =?us-ascii?Q?Yvwt8nzpkA0wvGNISZRBrORqr7zTi4X6DI/TDx5L3co03Z0ysK6UbSbB1jaS?= =?us-ascii?Q?TvSDRKk87kj2sKZXA0VeWIdha8QzKD7q5xZyo3jqD4y+lR+LQ9/cT3w9GwLg?= =?us-ascii?Q?BcO5Urd2fc/trMJNUEezRKdBc16jZDpLw0nQukvEHhHeLGaaOmv6wz6E+dck?= =?us-ascii?Q?rpVVOe7Jd/mJf3zdrWZ3z+XNYv6L912NBUlC9gbjoXlzsBfAi8rU3btUsSwb?= =?us-ascii?Q?mEUkkwjOrk5FxKkv4JphcK6yVIiCaQzWmVQBBQISO7xpRVxRScjQzu3T7G07?= =?us-ascii?Q?FlSxt9w6ke8FkIucAcREvpiJEhBOB/lp0iz9pLaQrTRl0NbHt4K9Tg4zpMVB?= =?us-ascii?Q?pQ0v7U5aq3dHPiwjELnRXwvHssjVrPrUqVkANR82i+Y22dEKKpymhtQfuAZv?= =?us-ascii?Q?/9VgDYyEKE3Ax+MmDC6ARfRznXaKKmyMAfgsL1mVGjPTSVjRuPjfw761EF8v?= =?us-ascii?Q?YVETCbG7YGqfmQ5ViU/fdlp1IUbbOuFLQy4KhzWgerAWZxXCKtayaOIICLGX?= =?us-ascii?Q?MP0RBlR8t+qj/2p7ROo1CVb+Yn78eC2pmGA6KMFeS0dM61+4u1oPLe7JDJWr?= =?us-ascii?Q?pTm4rl3QAjzSb6YZWG3/VtmdAg8ZRtyBLxEKUc0wMozVmO5W2+6PuiCT8kDe?= =?us-ascii?Q?bWb1tx5Rw1eBipqLOSkAroBZ+ICO8JElggo2UbpCzZa2NpycwsZPdjWi9hl+?= =?us-ascii?Q?cTfnDiWT+jpoxVLlCiQVTXXLoCpxVlKCKR6tZKUg0lodjB1/Ya99AVZ6fOyP?= =?us-ascii?Q?PhoND5WobzHew1KOwuloL0t+m8ZajGjZtk2qQunBLxwE?= X-OriginatorOrg: amperemail.onmicrosoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 969affaa-a0e3-49e6-456f-08db2a88c1f0 X-MS-Exchange-CrossTenant-AuthSource: MWHPR0101MB2942.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2023 03:51:46.3224 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: n2LLqPLwJPqgSkDXBVckOKtXcfono31WzKoQiwpMloLYUwuh3CI7hXsR06aE9zfXm7SaV9nkm6+gJNyroDqrZHz0Z6kHCn/5av/UxZ9mxVvsAPvykgKA5IljEYT5UsXH X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR0101MB2850 Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable 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 > > 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 >> Reviewed-by: Rebecca Cran >> --- >> >> Changes since v1: >> =C2=A0=C2=A0 + Change GetBiosVersion () to SetBiosVersion () and move th= e=20 >> selection logic >> =C2=A0=C2=A0 fully into SetBiosVersion (). >> Changes since v2: >> =C2=A0=C2=A0 + Add Reviewed-by: Rebecca Cran and rem= ove=20 >> @retval >> =C2=A0=C2=A0 VOID >> >> ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c=20 >> | 57 ++++++++++++-------- >> =C2=A0 1 file changed, 35 insertions(+), 22 deletions(-) >> >> diff --git=20 >> a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c= =20 >> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c >> index 66ead22a6e2c..876a74614285 100644 >> ---=20 >> a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c >> +++=20 >> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunction.c >> @@ -1,6 +1,6 @@ >> =C2=A0 /** @file >> =C2=A0 -=C2=A0 Copyright (c) 2022, Ampere Computing LLC. All rights rese= rved.
>> +=C2=A0 Copyright (c) 2022 - 2023, Ampere Computing LLC. All rights=20 >> reserved.
>> =C2=A0=C2=A0=C2=A0 Copyright (c) 2021, NUVIA Inc. All rights reserved. >> =C2=A0=C2=A0=C2=A0 Copyright (c) 2009, Intel Corporation. All rights res= erved.
>> =C2=A0=C2=A0=C2=A0 Copyright (c) 2015, Hisilicon Limited. All rights res= erved.
>> @@ -124,22 +124,46 @@ GetBiosReleaseDate ( >> =C2=A0=C2=A0=C2=A0 return ReleaseDate; >> =C2=A0 } >> =C2=A0 -/** >> -=C2=A0 Fetches the firmware ('BIOS') version from the >> -=C2=A0 FirmwareVersionInfo HOB. >> +/**=C2=A0 Fetches the Firmware version string for SMBIOS type 0 >> + >> +=C2=A0 This function get the Firmware version string from OemMiscLib fi= rst, >> +=C2=A0 if it is invalid then PcdFirmwareVersionString is used as a fall= back. > > nit: this function comment seems a bit at odds with the name of the=20 > function (i.e. the comment says it gets the FW version, but the name=20 > of the function is SetBiosVersion, which I see was changed in this=20 > patch). Perhaps updating the comment to indicate it retrieves the BIOS=20 > version from OemMiscLib or PcdFirmwareVersionString and then sets it=20 > in SMBIOS. > >> =C2=A0 -=C2=A0 @return The version as a UTF-16 string >> =C2=A0 **/ >> -CHAR16 * >> -GetBiosVersion ( >> +VOID >> +SetBiosVersion ( >> =C2=A0=C2=A0=C2=A0 VOID >> =C2=A0=C2=A0=C2=A0 ) >> =C2=A0 { >> -=C2=A0 CHAR16=C2=A0 *ReleaseString; >> +=C2=A0 CHAR16=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *DefaultV= ersionString; >> +=C2=A0 CHAR16=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 *Version; >> +=C2=A0 EFI_STRING_ID=C2=A0 TokenToUpdate; >> =C2=A0 -=C2=A0 ReleaseString =3D (CHAR16 *)FixedPcdGetPtr=20 >> (PcdFirmwareVersionString); >> +=C2=A0 DefaultVersionString =3D HiiGetString ( >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 mSmbiosMiscHiiHandle, >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 STRING_TOKEN (STR_MISC_BIOS_VERSION), >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 NULL >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 ); >> =C2=A0 -=C2=A0 return ReleaseString; >> +=C2=A0 OemUpdateSmbiosInfo ( >> +=C2=A0=C2=A0=C2=A0 mSmbiosMiscHiiHandle, >> +=C2=A0=C2=A0=C2=A0 STRING_TOKEN (STR_MISC_BIOS_VERSION), >> +=C2=A0=C2=A0=C2=A0 BiosVersionType00 >> +=C2=A0=C2=A0=C2=A0 ); >> + >> +=C2=A0 Version =3D HiiGetString ( >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 mSmbiosMiscHiiHandle, >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 STRING_TOKEN (STR_MISC_BIOS_VERSION), >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 NULL >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 ); >> + >> +=C2=A0 if (((StrCmp (Version, DefaultVersionString) =3D=3D 0) || (StrLe= n=20 >> (Version) =3D=3D 0))) { >> +=C2=A0=C2=A0=C2=A0 Version =3D (CHAR16 *)FixedPcdGetPtr (PcdFirmwareVer= sionString); >> +=C2=A0=C2=A0=C2=A0 if (StrLen (Version) > 0) { >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 TokenToUpdate =3D STRING_TOKEN (STR_MISC= _BIOS_VERSION); >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 HiiSetString (mSmbiosMiscHiiHandle, Toke= nToUpdate, Version,=20 >> NULL); >> +=C2=A0=C2=A0=C2=A0 } >> +=C2=A0 } >> =C2=A0 } >> =C2=A0 =C2=A0 /** >> @@ -187,18 +211,7 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscBiosVendor) { >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 HiiSetString (mSmbiosMiscHiiHandle, Token= ToUpdate, Vendor, NULL); >> =C2=A0=C2=A0=C2=A0 } >> =C2=A0 -=C2=A0 Version =3D GetBiosVersion (); >> - >> -=C2=A0 if (StrLen (Version) > 0) { >> -=C2=A0=C2=A0=C2=A0 TokenToUpdate =3D STRING_TOKEN (STR_MISC_BIOS_VERSIO= N); >> -=C2=A0=C2=A0=C2=A0 HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, V= ersion, NULL); >> -=C2=A0 } else { >> -=C2=A0=C2=A0=C2=A0 OemUpdateSmbiosInfo ( >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mSmbiosMiscHiiHandle, >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 STRING_TOKEN (STR_MISC_BIOS_VERSION), >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 BiosVersionType00 >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ); >> -=C2=A0 } >> +=C2=A0 SetBiosVersion (); >> =C2=A0 =C2=A0=C2=A0=C2=A0 Char16String =3D GetBiosReleaseDate (); >> =C2=A0=C2=A0=C2=A0 if (StrLen (Char16String) > 0) { >> --=20 >> 2.39.2 >> >> >>=20 >> >>