From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web10.9945.1684462199325099501 for ; Thu, 18 May 2023 19:09:59 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=SNHC6uYn; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: zhichao.gao@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1684462199; x=1715998199; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=B5RVvHqRxxSvWno7x7Pq8GTZTh5HDV2jiJqNkR2xfNg=; b=SNHC6uYnMZu8jvBNBdCXlFWWHZ3Lz7VVaY0kfdCnw4tFXWwqFW59ICMX 20YTmGUkKMw4EQx/xUflnWNlvZnwI3F7AZR4ZXIGhebhqkaMejl7t0SKc uOKaXn8Uuk5aiw84eOHm1jftg3PMpFt7b9UkR9W+RC3NepT6Ls1LtU2Jb 3xOY9oX0wmHkiB1Bb+cte3tUGdwkTp9+5XcP4fluQnTEIHN4wtTKh1d/9 VLmeQGRY/ZKBEN2moJhw1bPDnGiPGz4P1OVluX7Ov6tW5EkvpiMrZH+dY W78lINnqjlAn2X7S3eL2KYB3I9Dmxixf9Iz+JY60F0IcWIqbBkO5CVsgO g==; X-IronPort-AV: E=McAfee;i="6600,9927,10714"; a="331863517" X-IronPort-AV: E=Sophos;i="6.00,175,1681196400"; d="scan'208";a="331863517" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 May 2023 19:09:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10714"; a="826613267" X-IronPort-AV: E=Sophos;i="6.00,175,1681196400"; d="scan'208";a="826613267" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga004.jf.intel.com with ESMTP; 18 May 2023 19:09:56 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Thu, 18 May 2023 19:09:57 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Thu, 18 May 2023 19:09:57 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.174) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Thu, 18 May 2023 19:09:57 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BVy22n2Grz4QLqY2hSQEt0sRh9jOIrt7rgdMVB1mGyxL94FOtLEV7FLILtVZKnbq1N4mxxWLv+mxM/7Lhca70x6b3DaWV2p09dpyOSUewSgmwhCAhJm0W5Z7piU9dudYNn+ZKeZANNKxSp1vICt5b55sTc7kekc9P4ZjGuaxKKLE+hujjs6UtZBzS1pKR2O4U59yUPqCk3uBu/JG0NCFhNWzXrAZE4Je0UfwID0u6GyXgY8giu67IChM56yqE8tdI3krWIkfUeGNY+ffEz3sPzfRE+WFc9oY+DKWzuAh+HD82TsSWwWLcsSh8DLV8CB5yxCX4V3ZPUcTZi8jZmq2sw== 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=xb7Za/3D4Z8ViXyH06M+fopEUzKCelbi0ornsKO91z0=; b=M46o2mVJY2JD+MfjoVze5PSoJkS92GUiQzsgyWwZBDisPxI1B4bklcUC4EXuLSXA3vk0s/zNcsmttOAWv8e9zjtW01A0KnnCqcyl8OvrLefjSfzEZUvPt+eysqBjcezGZjVZGNJQZ0Q8e0sxwTrs0kF1Si6d94IORIUJR2a271LhsXOuRQua1dXsJuYILW8eib3XfxExz0yIViNEjLAz0PNtfp5AzUGbCpsI0kLbp2yatYm/VYDN8pG+IlNglRzZD+AvnqE4UNMQZryma5B5uqi75pJt4cJPwhzJ2H485Ex/ngT3rd110QK1EX3XQiZRqzTZJnU7Rn0BJFOpxKrGqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH7PR11MB6377.namprd11.prod.outlook.com (2603:10b6:510:1fb::13) by DS0PR11MB6421.namprd11.prod.outlook.com (2603:10b6:8:c7::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.17; Fri, 19 May 2023 02:09:55 +0000 Received: from PH7PR11MB6377.namprd11.prod.outlook.com ([fe80::c785:1a9a:411b:50f1]) by PH7PR11MB6377.namprd11.prod.outlook.com ([fe80::c785:1a9a:411b:50f1%6]) with mapi id 15.20.6387.030; Fri, 19 May 2023 02:09:55 +0000 From: "Gao, Zhichao" To: Simon Wang , "devel@edk2.groups.io" CC: "Ni, Ray" Subject: Re: [PATCH] ShellPkg/SmbiosView: type 45 and type 46 support. Thread-Topic: [PATCH] ShellPkg/SmbiosView: type 45 and type 46 support. Thread-Index: AQHZfjEJRTjfVytTTU2u5m6OKtSDwa9g8Xew Date: Fri, 19 May 2023 02:09:54 +0000 Message-ID: References: <763ffe5fb3ad78efc8d3cd693d97dff527a9eb33.1683166519.git.simowang@nvidia.com> In-Reply-To: <763ffe5fb3ad78efc8d3cd693d97dff527a9eb33.1683166519.git.simowang@nvidia.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR11MB6377:EE_|DS0PR11MB6421:EE_ x-ms-office365-filtering-correlation-id: 95161e55-e7c1-4317-ca00-08db580e2354 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ByuVqP7RSurbNb3tY7wvYCLPV5aUsHO5cvy6nQweCbB0mbhWLy1UFAjaEgsbHvC4MImrxE30TwRMT5M1ySXzK7UC/mCYqntbY8YE1iDLnMXUz31eggvmn82Ebvq+SZpgL6b/HDm3H4QmONF3zU4DIFqFsqQcmERj+GE41hCHF2P3/clR5029ti4Yz5lhRmSHALNZ+mdUej+lBySQkY9Dv4DbRlZVTa/XfcJNJEl8IulXBTi37qbULHUueJRl06zKwl1IJY4/hjRtE5zBpW6uxVidv58wq0gc0pyA9gRbodrJs0vLamShyfc9DQ9xOmpRdFrqPiYWDoi13M8D9t4fP3lzKe6qLmUao9f63o0MIuRzVzCshvcCOhR9sbTHxzF77V/Dea4y4XxF1bsW1YC2h4JbVlDmeB0+tM8fP8z8zvDORDpNzH/0Jb4rAL+jo9RI+EOOfQlOXTYg50vm81upLuflmYh9FfJExdCmP77d8/gjdfJuDZZfN99WbxlWNwHA/aZMWHmgr0RRk7EAE7u5/VnarbkXgRoHw8YTRgQD3hiw9vX5zWc4ADtu72CEnx5GKqBoURXVU2aZCqSOoZmmynzbUKhfpDDtSiqk+dinFWL9/VxRK0EPEYMgJ3hQ/YhA x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR11MB6377.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(396003)(376002)(346002)(39860400002)(366004)(451199021)(7696005)(83380400001)(186003)(19627235002)(71200400001)(66446008)(110136005)(478600001)(9686003)(6506007)(26005)(107886003)(53546011)(8936002)(52536014)(30864003)(5660300002)(82960400001)(122000001)(33656002)(38100700002)(41300700001)(66556008)(66946007)(8676002)(66476007)(64756008)(55016003)(76116006)(4326008)(2906002)(316002)(38070700005)(86362001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?rD4Z65Fv8HnegzTzIMkhrt8f1Az/ZvwUbPY6MR2EtYGrTCWtx0aTArnqG3Vf?= =?us-ascii?Q?Vvl/oW05l0/RIJ2o0nkzkraFPSXuTORClKBVPdvyEjZZW5danmUzksgjoKIb?= =?us-ascii?Q?Vv0JvwvxyVHj5jRaPxbB6baPUFXWIPYnnVupz5iGgTcQWKt0yTjai0evcexE?= =?us-ascii?Q?jwu+W6FA9Ev3Aoh9yRhIbcgQEwwPwsEbNLhfIsthHdR0EwyPXYEro1leHVqD?= =?us-ascii?Q?9qYxNpAPZ6tGcSIYAGlwy+t4C3JaPbG5klTPpUhffZ9L/HhIsgP6NJLchebx?= =?us-ascii?Q?DuaIcy/XcXJXeA+WhheYvPbXvEMxXluWp0s1w4u87JLnhHiGHX6xJr48+Q3T?= =?us-ascii?Q?cazYvIIrQNwnowvUYDHU6I8CtOaQtJnxqmkjqoZrePRJt7NsY8YsdUhE8nqn?= =?us-ascii?Q?u7WU0L0Qfkg0LQBYszfZ7Q0hoiGKJfMiqpXqukwNu4zTsE0H3aROW7i1PFXk?= =?us-ascii?Q?S0up8xQAvqWeTL323WOqp75wGBMkRh5hgH4MiSnehh+W3EvScMQue31/sl46?= =?us-ascii?Q?aWh6bQ7RQX7y5g2OwMdSWLl7CI14VNGcHj3akcFA9SQV1ieBV7r9YFx9yXQO?= =?us-ascii?Q?w/kSiEdCllTLubqsEepn4G2pHOL3AHhXwTQTukUv1BMGHMBAygZavmo9vDP8?= =?us-ascii?Q?HCCpa+j+l4zrmiY0jGQhEGju+R+Rs2sjPX2XPtFYm6c4XRXKrOc1+Kh/m7gK?= =?us-ascii?Q?+qNsIfttxxE25ux2Sh+vRXU+00TkqXNhaglPDJlc8PJUdsxIRcm5WMbLNUol?= =?us-ascii?Q?xwlGwcydadXSx+gKOEVL4a3x6P7LZBv9hyRtFc8IyelHDNl59BIG1IBGZbjW?= =?us-ascii?Q?4JMf69kixhn//aFrWgNgssuKRXesSjiOhaaHIMar+PFbW+oHIV8i9ABEwWna?= =?us-ascii?Q?5FwqrDUlttx48G4dl+FFivgqkyUoCifLG9EgAfo7W2YY3MzBCESm7aP8uq20?= =?us-ascii?Q?NGrtt67x5+vNBggMkRbLnA45omypn6i4BnLwvLGSBwMxW4lDAz/HzRLF61fq?= =?us-ascii?Q?ynimxw/22OLjr/gYvj81fSTRRhzWwA/9MIt34KZHd0F686hq/92M6FehFq3E?= =?us-ascii?Q?EQ+EmQglEVdZI2QjTgDzrnetl5wRpc/ivGE7bdcBaKvPvgHe9OadqaRJZ2AH?= =?us-ascii?Q?4MisFbrVn/IaFzcJE4QwsmVVsegCNZYuPMZiGoHClx/p6KYV6C6z+ji5XOBy?= =?us-ascii?Q?Gp4ECTT3BRLAg/gq0s8SsHj1mhxgSO4GIu1B9OaX8OuFEgRA1bYUUeDJ7qu5?= =?us-ascii?Q?Ky8d/2ah6eDJ7XdzzSXwfq63nFkgu5K5R//ww0lOKfc3Umg268QEz+34SbfY?= =?us-ascii?Q?RdVA2WrGIKoSsEEHccLULAOzBZEDTIfC6v0jJ9TN7DcH+azdPInFpDCa+RVU?= =?us-ascii?Q?Gg19BAJlBBfnRf7aIh4t3FeMNEjzU+tiT4d2DMk+gXsPoxfNY5LrWMu6PaBX?= =?us-ascii?Q?dwq4PAd+oK8ebPPLSbYE9Y9fgUKl5hpb3rzgDIkFBgZrdtIT/EY3PBm0xqMc?= =?us-ascii?Q?zfvQBF0dDw0tc/zN76oRwSB2yphI8QCPWaGb6waCjp/rh08g/I6T9E7/3xtE?= =?us-ascii?Q?5CO/Y8iJK/nNm0+1OwrU4WP/RZUe/oUCpOh8oyQG?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB6377.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 95161e55-e7c1-4317-ca00-08db580e2354 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2023 02:09:54.8188 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QwCvYUZLOPfNn1FIjM12AreHquBMSwOKFEWP9/h5Asc16L8wy+uJELjmAeh+vdLDNkv/+smChFzCsb8r68hkLw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6421 Return-Path: zhichao.gao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Zhichao Gao Thanks, Zhichao -----Original Message----- From: Simon Wang =20 Sent: Thursday, May 4, 2023 10:34 AM To: devel@edk2.groups.io Cc: Ni, Ray ; Gao, Zhichao Subject: [PATCH] ShellPkg/SmbiosView: type 45 and type 46 support. The initial version of Smbios Specification 3.6.0 type 45 and type 46 suppo= rt. Signed-off-by: Simon Wang Cc: Ray Ni Cc: Zhichao Gao --- .../SmbiosView/PrintInfo.c | 111 +++++++++++++++++- .../SmbiosView/PrintInfo.h | 25 ++++ .../SmbiosView/QueryTable.c | 81 +++++++++++++ .../SmbiosView/SmbiosViewStrings.uni | 9 +- 4 files changed, 222 insertions(+), 4 deletions(-) diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintIn= fo.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c index 1811cf0c44..e6a110beee 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c @@ -5,6 +5,7 @@ Copyright (c) 1985 - 2022, American Megatrends International LLC.
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.
(C) Copyright 2015-2019 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -305,9 +306,10 @@ SmbiosPrintStructure ( IN UINT8 Option ) { - UINT8 Index; - UINT8 Index2; - UINT8 *Buffer; + UINT8 Index; + UINT8 Index2; + UINT8 *Buffer; + EFI_STRING String; =20 if (Struct =3D=3D NULL) { return EFI_INVALID_PARAMETER; @@ -1302,6 +1304,109 @@ SmbiosPrintStructure ( break; =20 // + // Firmware Inventory (Type 45) + // + case 45: + PRINT_PENDING_STRING (Struct, Type45, FirmwareComponentName); + PRINT_PENDING_STRING (Struct, Type45, FirmwareVersion); + if (Struct->Type45->FirmwareVersionFormat =3D=3D VersionFormatTypeFr= eeForm) { + String =3D L"Free-form string"; + } else if (Struct->Type45->FirmwareVersionFormat =3D=3D VersionForma= tTypeMajorMinor) { + String =3D L"MAJOR.MINOR"; + } else if (Struct->Type45->FirmwareVersionFormat =3D=3D VersionForma= tType32BitHex) { + String =3D L"32-bit hexadecimal string"; + } else if (Struct->Type45->FirmwareVersionFormat =3D=3D VersionForma= tTypeMajorMinor) { + String =3D L"64-bit hexadecimal string"; + } else if (Struct->Type45->FirmwareVersionFormat >=3D 0x80) { + String =3D L"BIOS Vendor/OEM-specific"; + } else { + String =3D L"Reserved"; + } + + ShellPrintHiiEx ( + -1, + -1, + NULL, + STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_VERSION_FORMAT), + gShellDebug1HiiHandle, + String + ); + PRINT_PENDING_STRING (Struct, Type45, FirmwareId); + if (Struct->Type45->FirmwareIdFormat =3D=3D FirmwareIdFormatTypeFree= Form) { + String =3D L"Free-form string"; + } else if (Struct->Type45->FirmwareIdFormat =3D=3D FirmwareIdFormatT= ypeUuid) { + String =3D L"RFC4122 UUID string"; + } else if (Struct->Type45->FirmwareIdFormat >=3D 0x80) { + String =3D L"BIOS Vendor/OEM-specific"; + } else { + String =3D L"Reserved"; + } + + ShellPrintHiiEx ( + -1, + -1, + NULL, + STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_ID_FORMAT), + gShellDebug1HiiHandle, + String + ); + PRINT_PENDING_STRING (Struct, Type45, ReleaseDate); + PRINT_PENDING_STRING (Struct, Type45, Manufacturer); + PRINT_PENDING_STRING (Struct, Type45, LowestSupportedVersion); + if (Struct->Type45->ImageSize !=3D MAX_UINT64) { + PRINT_STRUCT_VALUE_H (Struct, Type45, ImageSize); + } else { + ShellPrintHiiEx ( + -1, + -1, + NULL, + STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_IMAGE_SIZE_UNKNOWN), + gShellDebug1HiiHandle + ); + } + + DisplayFirmwareCharacteristics (ReadUnaligned16 ((UINT16 *)(UINTN)&(= Struct->Type45->Characteristics)), Option); + DisplayFirmwareState (*(UINT8 *)(UINTN)&(Struct->Type45->State),=20 + Option); + + PRINT_STRUCT_VALUE_H (Struct, Type45, AssociatedComponentCount); + if (Struct->Hdr->Length > sizeof (*Struct->Type45)) { + for (Index =3D 0; Index < Struct->Type45->AssociatedComponentCount= ; Index++) { + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_SMBIOSVIEW_PRIN= TINFO_FIRMWARE_INVENTORY_ASSOCIATED), gShellDebug1HiiHandle); + Print (L" 0x%04X ", Buffer[sizeof (*Struct->Type45) + (Index = * sizeof (SMBIOS_HANDLE))]); + Print (L"\n"); + } + } + + break; + + // + // String Property (Type 46) + // + case 46: + if (Struct->Type46->StringPropertyId =3D=3D StringPropertyIdDevicePa= th) { + String =3D L"UEFI device path"; + } else if ((Struct->Type46->StringPropertyId >=3D StringPropertyIdBi= osVendor) && + (Struct->Type46->StringPropertyId < StringPropertyIdOem)) + { + String =3D L"BIOS vendor defined"; + } else if (Struct->Type46->StringPropertyId >=3D StringPropertyIdOem= ) { + String =3D L"OEM defined"; + } else { + String =3D L"Reserved"; + } + + ShellPrintHiiEx ( + -1, + -1, + NULL, + STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_STRING_PROPERTY_ID), + gShellDebug1HiiHandle, + String + ); + PRINT_PENDING_STRING (Struct, Type46, StringPropertyValue); + PRINT_STRUCT_VALUE_H (Struct, Type46, ParentHandle); + break; + // // Inactive (Type 126) // case 126: diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintIn= fo.h b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.h index 8ecec693ad..4f52932a4d 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.h +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.h @@ -3,6 +3,7 @@ =20 Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.
(C) Copyright 2017 - 2019 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -439,4 +440,28 @@ DisplayProcessorArchitectureType ( IN UINT8 Option ); =20 +/** + Display Firmware Characteristics (Type 45) details. + + @param[in] Chara The information bits. + @param[in] Option The optional information. +**/ +VOID +DisplayFirmwareCharacteristics ( + IN UINT16 Chara, + IN UINT8 Option + ); + +/** + Display Firmware state (Type 45) details. + + @param[in] Key The key of the structure. + @param[in] Option The optional information. +**/ +VOID +DisplayFirmwareState ( + IN UINT8 Key, + IN UINT8 Option + ); + #endif diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTa= ble.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c index edb46817e4..29b5a29001 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable. +++ c @@ -4,6 +4,7 @@ =20 Copyright (c) 2005 - 2021, Intel Corporation. All rights reserved.
(C) Copyright 2016-2019 Hewlett Packard Enterprise Development LP
+ Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -3622,6 +3623,52 @@ TABLE_ITEM ProcessorArchitectureTypesTable[] =3D { } }; =20 +TABLE_ITEM FirmwareInventoryCharTable[] =3D { + { + 0, + L"Updatable" + }, + { + 1, + L"Write-Protect" + } +}; + +TABLE_ITEM FirmwareInventoryStateTable[] =3D { + { + 1, + L" Other" + }, + { + 2, + L" Unknown " + }, + { + 3, + L" Disabled: This firmware component is disabled. " + }, + { + 4, + L" Enabled: This firmware component is enabled. " + }, + { + 5, + L" Absent: This firmware component is either not present or not detec= ted " + }, + { + 6, + L" StandbyOffline: This firmware is enabled but awaits an external ac= tion to activate it. " + }, + { + 7, + L" StandbySpare: This firmware is part of a redundancy set and awaits= a failover or other external action to activate it. " + }, + { + 8, + L" UnavailableOffline: This firmware component is present but cannot = be used. " + }, +}; + TABLE_ITEM StructureTypeInfoTable[] =3D { { 0, @@ -5126,6 +5173,40 @@ DisplayProcessorArchitectureType ( PRINT_TABLE_ITEM (ProcessorArchitectureTypesTable, Key); } =20 +/** + Display Firmware Characteristics (Type 45) details. + + @param[in] Chara The information bits. + @param[in] Option The optional information. +**/ +VOID +DisplayFirmwareCharacteristics ( + IN UINT16 Chara, + IN UINT8 Option + ) +{ + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN=20 +(STR_SMBIOSVIEW_QUERYTABLE_FIRMWARE_INVENTORY_CHAR),=20 +gShellDebug1HiiHandle); + PRINT_INFO_OPTION (Chara, Option); + PRINT_BITS_INFO (FirmwareInventoryCharTable, Chara); } + +/** + Display Firmware state (Type 45) details. + + @param[in] Key The key of the structure. + @param[in] Option The optional information. +**/ +VOID +DisplayFirmwareState ( + IN UINT8 Key, + IN UINT8 Option + ) +{ + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN=20 +(STR_SMBIOSVIEW_QUERYTABLE_FIRMWARE_INVENTORY_STATE),=20 +gShellDebug1HiiHandle); + PRINT_INFO_OPTION (Key, Option); + PRINT_TABLE_ITEM (FirmwareInventoryStateTable, Key); } + /** Display the structure type information. =20 diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosV= iewStrings.uni b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/Smb= iosViewStrings.uni index 73f7b2ab19..971e0d09bd 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosViewStri= ngs.uni +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosViewS +++ trings.uni @@ -4,6 +4,7 @@ // Copyright (c) 1985 - 2022, American Megatrends International LLC.
= // (C) Copyright 2014-2015 Hewlett-Packard Development Company, L.P.
/= / (C) Copyright 2015-2019 Hewlett Packard Enterprise Development LP
+// Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved= . // SPDX-License-Identifier: BSD-2-Clause-Patent // // Module Name: @@ -511,4 +512,10 @@ #string STR_SMBIOSVIEW_PRINTINFO_IPMI_SPECIFICATION_REVISION #language = en-US "IPMISpecificationRevision: %d.%d\n" #string STR_SMBIOSVIEW_PRINTINFO_NV_STORAGE_DEVICE_NOT_PRESENT #language = en-US "NVStorageDevice: Not Present\n" #string STR_SMBIOSVIEW_PRINTINFO_BASE_ADDRESS #language = en-US "BaseAddress: 0x%x\n" - +#string STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_VERSION_FORMAT #language = en-US "FirmwareVersionFormat: %s\r\n" +#string STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_ID_FORMAT #language = en-US "FirmwareIdFormat: %s\r\n" +#string STR_SMBIOSVIEW_QUERYTABLE_FIRMWARE_INVENTORY_CHAR #language = en-US "Characteristics:\r\n" +#string STR_SMBIOSVIEW_QUERYTABLE_FIRMWARE_INVENTORY_STATE #language = en-US "State:\r\n" +#string STR_SMBIOSVIEW_PRINTINFO_FIRMWARE_INVENTORY_ASSOCIATED #language = en-US " Associated handle:\r\n" +#string STR_SMBIOSVIEW_PRINTINFO_IMAGE_SIZE_UNKNOWN #language = en-US "ImageSize: Unknown\r\n" +#string STR_SMBIOSVIEW_PRINTINFO_STRING_PROPERTY_ID #language = en-US "String Property ID: %s\r\n" -- 2.40.0