From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (NAM12-MW2-obe.outbound.protection.outlook.com [40.107.244.109]) by mx.groups.io with SMTP id smtpd.web11.4542.1679368648116657531 for ; Mon, 20 Mar 2023 20:17:28 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@os.amperecomputing.com header.s=selector2 header.b=amaAKtVl; spf=pass (domain: os.amperecomputing.com, ip: 40.107.244.109, mailfrom: tinhnguyen@os.amperecomputing.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W9hlk6fGwZl2gv8MSpuEIMAzzViSJWs+mIJqBwSHnOZ8T1TYC5aJ33Yal4UX4ubps/HlNy8TFjOgYTmwbzolYj0d9A05PRzQIlk2c6hul5ddF6Mdylqb88hF/fTYOfrXPePZXOtZ/dgdpjHIfTbUVJA3sJc6+HbWeSTAhykZcBJZGYVxzB09t6nkJtMH5xeKKayPwEoyeyQXdc+BwO60wIiWwPzw/Zy8BTZ1+IlEMqaVSf2XDsEzJr3IiYUm08XiYsYhp1gZds4E3SdIMMQPba1WhnWzqpRBmbZvKNXOEbJ5d5ctM+1ls4tuBOz1D3kiqI1Vg3pzV+X9euXGZVFWkQ== 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=oq3TXkGfQoBCw3Dyc6EdtWJ9Uf8tzVHWAa2ltYiMpCI=; b=WNeXL5wo/gAQMvduJ0vZeFamwsa42slj85etN5AGY379rZNutpURlSHgWr707/kZ5LCvL9pn3DdqdMYGv4yJmdRor0V1aXnLTHZHKb/DsTZwPA8+mWhmwCAfGVuiFqk6P46i0Yn92jv+cp6PeV/lEBqR/ClHN8tkDXY2mSJyPvgQyUIbWpEULUM/tNVQbzUosD+u/QaoCVDL9aGCV5lnX/NZa0SNWsfbECk6sWd8EApYTubGGncIX2fXkgHbO53llsit3J+xUkd9Q3v3Sva4VtDytLUrnfpFCSZxUbdT++gWJUgPoqdhK02nWl7jwJOVVI6Q0P/fuCIiQqbCrnnYWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oq3TXkGfQoBCw3Dyc6EdtWJ9Uf8tzVHWAa2ltYiMpCI=; b=amaAKtVlGILmM/87OnKEV1WHJbHV4C+t1UgZDgRxBMJ2tSxHrTF6m8vbr7XlrXdCnX4LAbVh8nevENfmntmux4VuoOjY31Eufly/Yl+UJuUepvWz4wknMGvAnzn/d52dvivcXxoAgZqldIRzGJ84smnX+ksj9rmx9/Ktfdo1oL4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from MWHPR0101MB2942.prod.exchangelabs.com (2603:10b6:301:2e::14) by SN6PR01MB4845.prod.exchangelabs.com (2603:10b6:805:d5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Tue, 21 Mar 2023 03:17:23 +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; Tue, 21 Mar 2023 03:17:22 +0000 From: "Tinh Nguyen" To: devel@edk2.groups.io CC: patches@amperecomputing.com, quic_llindhol@quicinc.com, ardb+tianocore@kernel.org, nhi@os.amperecomputing.com, rebecca@bsdio.com, Tinh Nguyen Subject: [PATCH v3 1/1] ArmPkg/SmbiosMiscDxe: Adjust the priority of getting firmware version Date: Tue, 21 Mar 2023 10:16:38 +0700 Message-ID: <20230321031638.1241041-1-tinhnguyen@os.amperecomputing.com> X-Mailer: git-send-email 2.39.2 X-ClientProxiedBy: SI2PR01CA0011.apcprd01.prod.exchangelabs.com (2603:1096:4:191::6) 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_|SN6PR01MB4845:EE_ X-MS-Office365-Filtering-Correlation-Id: 82a65167-79e7-44a4-8bb7-08db29bac91e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Sbx9k5nsDuR7oZlOwbIr3TLEBwXiZtE1PjNMxWgQvvYE6Bm0hrzHEjpi4YVR84SCbGhV0RD4bSVq6UsRe+Uwg4mdnh+QdOT+eRrsXpgA95Y3u8t6zzDQaw2h2lQ+H+0XMjQ/Z0Gx4yHE3aL4N5E5HXhqmGHXXrM30agX2/joSCURfFSGRe7+kC1T+rFoH/QqWw7EhBJlPNOs9SWHrU1l/VE0k+HsakqfsExYJ1cPkBl193G54hpgdqqPy84hiKZS8zz0keLxotB1fAPykTBShh94r9fGi7h1S8tX9y0eOqMgeXEFnhjKwc3+G5UD0AJff2JTYy7CQBYWwUTZ9l5gDOEsjfxlhLLwwMk0e9d2zXT5J69kGIpmbZe/7jp+XML7mUB30GcULI1pdm82wwbrAdUWXVI3hWPRR5LFEgW8LW2XuqUL4Q9woZ1wiLHFaa7esHh48qTdpLOg0m88oMROxVP8DSd+ZShm/a4d5AbVO+hbpVt/fOKvlNLrjGgfEHm7jn4+UIcZ8W2STDuvIOaYE26Omuu9ALuXVeDn7YgY1/IPCcBDZPyuy7Vxe4wODRfXC20uxnE9BISXQ1uyqmLsW7INgeSZQDdiAcHd50autLF8YXCrX0nmkb5YZSHKeaLOBcKOLeZLDFfQSHSA6BTQ3kunZ4afkYBQoj49RlG976KicGeFkySGjy1ZKim5RvZrCxt32OsgWseZiM6OJCvqqQ== 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)(396003)(366004)(39850400004)(376002)(346002)(136003)(451199018)(83380400001)(86362001)(107886003)(38350700002)(2616005)(38100700002)(2906002)(66476007)(4326008)(5660300002)(8676002)(6916009)(41300700001)(8936002)(66556008)(66946007)(1076003)(6506007)(52116002)(6666004)(6512007)(186003)(6486002)(478600001)(26005)(316002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?n0ZKquoSUmOBoKZNj9jCNgHljzS0sn+IQeIqjG7lyF/h/m4f2PUiqdVyQXAy?= =?us-ascii?Q?JRaitB6QjqZXj65p32S716h7hBTJMrOFebVs49NoEinoTvSltKVLD2Klse8M?= =?us-ascii?Q?Xi2I6UklwYj8SkajEWMBPdb4pJilrk2e3YSHtSKRsADnvlDGzXA/nBiyyDxy?= =?us-ascii?Q?SBhrlzcCGYIOh5Af1DfPzb5vzAi7aVvYNMhjWJ2HqQLHMRtHiV3wfMK1fCDb?= =?us-ascii?Q?t1DEt1x2zemvf3sTC6jBZihif/mUXnsVtYFInoDD4JvVnHiLzPTuMozh8DRS?= =?us-ascii?Q?Eb0s6dSno4JOo0HKFhGx4zyBR8jA2l7htySFHUsHNocrVfgAyw43G6GCBlaT?= =?us-ascii?Q?In+aJCIlHGjYU5hnwoGuom7vO5aBsOtiS17gIptDN79krk1iHI0toTOAwXs2?= =?us-ascii?Q?6MstpsC2lC6dMbLHp3evnGootXsxtJ+4ZJRDNF976GGfHDIAEFDGTvjpPeI7?= =?us-ascii?Q?j+MV2SsxB3WxfNfQgWfISOFNh4YgmUXdoOOtOnDQmgdO3NfXC7eEQdk/+VAa?= =?us-ascii?Q?W5OAG6KbnkRGqcjTf0BkkpiytE3SulyDUCnckk+/5xrnTQ9Xx3dHwm5mGyIZ?= =?us-ascii?Q?IWM7vOIEMYdBHDNZHxVdWH9Am642q1Zk8wqyvVZO1pOfevy433LhJ/qXwQl/?= =?us-ascii?Q?OwWuuvqFaU50ZnkN2DkWTxtEHczkNmVdXl3odgsRP/ZH+Q2dNjCp2jDvxw7v?= =?us-ascii?Q?w2WdagEVwZ/Shbq304Y6vFaXP1tWAk32uwmnVunpNygjVUSlEEHxd2fbNcsX?= =?us-ascii?Q?zF2AeRyuTbbOBjOH5uPe55tEZcqVms1UhvpNwscmRmTgKA+jbC7qYdJNLSxR?= =?us-ascii?Q?Y0GR3vZWZgrQ6HKh3J2nvROo3FinNV8xh1ssHjz/B4LCaZNjLXq+a/e4nHFh?= =?us-ascii?Q?4t/5rF1mKX9wmrzX4IYTkypBvDAlcQlx2qwdpKy8ouoGnOmQYeJCMpyPWpTt?= =?us-ascii?Q?yWDcikqOl+VZjuDAVSOKC+OywP+uClned4ioNnmdmrksiP+Fy4afkKUr3pyA?= =?us-ascii?Q?5rPSu8SRBE4hMl7M770hLacoON4bptfFsNBgH9gELCQBzE3yKcR1KbhtGrWY?= =?us-ascii?Q?FjTlIhnw7k1QJsh3UwBaisXN3CKSW+iNxr6U1f0EvAVJIv4Rpjw3aumgnoLM?= =?us-ascii?Q?OJO9AWLEhuPD10KhEbW2bezYh7MVXgBnk0nBnXjTlN7EcDpTJR3Hnof7lMKk?= =?us-ascii?Q?sY6q3OxiRP9V2VJPNh8128LbM6DuOPzZcm2cr2hIuK+Ahwj9eo4aQihYlEFx?= =?us-ascii?Q?1Q2jr1LMyUaEAzRa+o13qu3qJ0ASlV32qpwOSl4VmV8f04lVLRGFwkxAR3/7?= =?us-ascii?Q?pe7YOnEwV2PabW5f9PvZN/ESEGaVWCkSaAsNPyf+evx+YvtQBbklVvTKiULt?= =?us-ascii?Q?mpjtscV+IeUGmE7hGEhOmE19K+yIZp1IxuSk3hRIl9la4HawIk3PVmhgNiWV?= =?us-ascii?Q?j5lZ7KwbFhiHyf3xoIyWeIxNRakH8axpLg8wWZaSMWnW/790eb5IZ8RGsMvU?= =?us-ascii?Q?gTq3z4J95PRB+EUwleapVijXrhlNXj44mgktCd6DujHcpGagv8yZ6zXPiHPG?= =?us-ascii?Q?CRVmv0eAvBKwg8Sh+tJD1QOWI0RE4KQNZiR5sKjM4nm9MBlkmE3/stJ84Yht?= =?us-ascii?Q?iQyk8+CP3LHEeU5DWO+Nw2AHzmyZYtzMF/e+5cbfW6dK?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82a65167-79e7-44a4-8bb7-08db29bac91e X-MS-Exchange-CrossTenant-AuthSource: MWHPR0101MB2942.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2023 03:17:22.0747 (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: u3KaIqYVNdyeAXltvyio4GMK1nUh7RHKeg/SIsWqtDSJlv6cP5kk0L0bGCPh6JUS/XnsFccNOIF3m5xJO4+Csk0rJ47jmGmGTrzKxvsFEqsHzYGAouLDR6OuNW1QWC4R X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR01MB4845 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain 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: + Change GetBiosVersion () to SetBiosVersion () and move the selection lo= gic fully into SetBiosVersion (). Changes since v2: + Add Reviewed-by: Rebecca Cran 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/MiscBiosVendorFun= ction.c b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFuncti= on.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 =20 - Copyright (c) 2022, Ampere Computing LLC. All rights reserved.
+ Copyright (c) 2022 - 2023, Ampere Computing LLC. All rights reserved. Copyright (c) 2021, NUVIA Inc. All rights reserved.
Copyright (c) 2009, Intel Corporation. All rights reserved.
Copyright (c) 2015, Hisilicon Limited. All rights reserved.
@@ -124,22 +124,46 @@ GetBiosReleaseDate ( return ReleaseDate; } =20 -/** - 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. =20 - @return The version as a UTF-16 string **/ -CHAR16 * -GetBiosVersion ( +VOID +SetBiosVersion ( VOID ) { - CHAR16 *ReleaseString; + CHAR16 *DefaultVersionString; + CHAR16 *Version; + EFI_STRING_ID TokenToUpdate; =20 - ReleaseString =3D (CHAR16 *)FixedPcdGetPtr (PcdFirmwareVersionString); + DefaultVersionString =3D HiiGetString ( + mSmbiosMiscHiiHandle, + STRING_TOKEN (STR_MISC_BIOS_VERSION), + NULL + ); =20 - return ReleaseString; + OemUpdateSmbiosInfo ( + mSmbiosMiscHiiHandle, + STRING_TOKEN (STR_MISC_BIOS_VERSION), + BiosVersionType00 + ); + + Version =3D HiiGetString ( + mSmbiosMiscHiiHandle, + STRING_TOKEN (STR_MISC_BIOS_VERSION), + NULL + ); + + if (((StrCmp (Version, DefaultVersionString) =3D=3D 0) || (StrLen (Versi= on) =3D=3D 0))) { + Version =3D (CHAR16 *)FixedPcdGetPtr (PcdFirmwareVersionString); + if (StrLen (Version) > 0) { + TokenToUpdate =3D STRING_TOKEN (STR_MISC_BIOS_VERSION); + HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL); + } + } } =20 /** @@ -187,18 +211,7 @@ SMBIOS_MISC_TABLE_FUNCTION (MiscBiosVendor) { HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Vendor, NULL); } =20 - Version =3D GetBiosVersion (); - - if (StrLen (Version) > 0) { - TokenToUpdate =3D STRING_TOKEN (STR_MISC_BIOS_VERSION); - HiiSetString (mSmbiosMiscHiiHandle, TokenToUpdate, Version, NULL); - } else { - OemUpdateSmbiosInfo ( - mSmbiosMiscHiiHandle, - STRING_TOKEN (STR_MISC_BIOS_VERSION), - BiosVersionType00 - ); - } + SetBiosVersion (); =20 Char16String =3D GetBiosReleaseDate (); if (StrLen (Char16String) > 0) { -- 2.39.2