From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: liming.gao@intel.com) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by groups.io with SMTP; Wed, 18 Sep 2019 22:22:36 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Sep 2019 22:22:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,522,1559545200"; d="scan'208";a="387149071" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga005.fm.intel.com with ESMTP; 18 Sep 2019 22:22:35 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 18 Sep 2019 22:22:35 -0700 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 18 Sep 2019 22:22:35 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 18 Sep 2019 22:22:34 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.32]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.140]) with mapi id 14.03.0439.000; Thu, 19 Sep 2019 13:22:33 +0800 From: "Liming Gao" To: Abner Chang , "devel@edk2.groups.io" CC: "Kinney, Michael D" , Leif Lindholm , Gilbert Chen Subject: Re: [PATCH v2] MdePkg:Include: Update SmBios header file Thread-Topic: [PATCH v2] MdePkg:Include: Update SmBios header file Thread-Index: AQHVbptG1CqDNiTtjUqzmeUamgi3b6cydHYw Date: Thu, 19 Sep 2019 05:22:32 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E4FE58E@SHSMSX104.ccr.corp.intel.com> References: <1568862283-31624-1-git-send-email-abner.chang@hpe.com> In-Reply-To: <1568862283-31624-1-git-send-email-abner.chang@hpe.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Abner: Please add BZ URL in the commit message, and separate this patch to three= changes. Each one is for each package of MdePkg, MdeModulePkg and ShellPkg= .=20 As Leif say, SmBios 3.3 spec is not published. This patch will not be pus= hed until SmBios 3.3 is published.=20 >-----Original Message----- >From: Abner Chang [mailto:abner.chang@hpe.com] >Sent: Thursday, September 19, 2019 11:05 AM >To: devel@edk2.groups.io >Cc: abner.chang@hpe.com; Kinney, Michael D ; >Gao, Liming ; Leif Lindholm ; >Gilbert Chen >Subject: [PATCH v2] MdePkg:Include: Update SmBios header file > >Update SmBios header file to conform with SMBIOS v3.3.0. >The major update is to add definitions of SMBIOS Type 44h record. > >Signed-off-by: Abner Chang > >Cc: Michael D Kinney >Cc: Liming Gao >Cc: Leif Lindholm >Cc: Gilbert Chen >--- > MdeModulePkg/MdeModulePkg.dec | 6 +- > MdePkg/Include/IndustryStandard/SmBios.h | 76 >+++++++++++++++++++++- > .../SmbiosView/PrintInfo.c | 23 ++++++- > .../SmbiosView/PrintInfo.h | 13 +++- > .../SmbiosView/QueryTable.c | 63 +++++++++++++++++= - > .../UefiShellDebug1CommandsLib.uni | 3 +- > 6 files changed, 174 insertions(+), 10 deletions(-) > >diff --git a/MdeModulePkg/MdeModulePkg.dec >b/MdeModulePkg/MdeModulePkg.dec >index 19935c8..e3a65ab 100644 >--- a/MdeModulePkg/MdeModulePkg.dec >+++ b/MdeModulePkg/MdeModulePkg.dec >@@ -1792,10 +1792,10 @@ > > ## SMBIOS version. > # @Prompt SMBIOS version. >- >gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0302|UINT16|0x0 >0010055 >+ >gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0303|UINT16|0x0 >0010055 > >- ## SMBIOS Docrev field in SMBIOS 3.0 (64-bit) Entry Point Structure. >- # @Prompt SMBIOS Docrev field in SMBIOS 3.0 (64-bit) Entry Point Struct= ure. >+ ## SMBIOS Docrev field in SMBIOS 3.3 (64-bit) Entry Point Structure. >+ # @Prompt SMBIOS Docrev field in SMBIOS 3.3 (64-bit) Entry Point >Structure. > >gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0|UINT8|0x000100 >6A > > ## SMBIOS produce method. >diff --git a/MdePkg/Include/IndustryStandard/SmBios.h >b/MdePkg/Include/IndustryStandard/SmBios.h >index f3b6f18..f504cc8 100644 >--- a/MdePkg/Include/IndustryStandard/SmBios.h >+++ b/MdePkg/Include/IndustryStandard/SmBios.h >@@ -1,8 +1,9 @@ > /** @file >- Industry Standard Definitions of SMBIOS Table Specification v3.2.0. >+ Industry Standard Definitions of SMBIOS Table Specification v3.3.0. > > Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP
>+(C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development LP
> SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ >@@ -46,7 +47,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > #define SMBIOS_3_0_TABLE_MAX_LENGTH 0xFFFFFFFF > > // >-// SMBIOS type macros which is according to SMBIOS 2.7 specification. >+// SMBIOS type macros which is according to SMBIOS 3.3.0 specification. > // > #define SMBIOS_TYPE_BIOS_INFORMATION 0 > #define SMBIOS_TYPE_SYSTEM_INFORMATION 1 >@@ -92,6 +93,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > #define SMBIOS_TYPE_ONBOARD_DEVICES_EXTENDED_INFORMATION 41 > #define SMBIOS_TYPE_MANAGEMENT_CONTROLLER_HOST_INTERFACE 42 > #define SMBIOS_TYPE_TPM_DEVICE 43 >+#define SMBIOS_TYPE_PROCESSOR_ADDITIONAL_INFORMATION 44 > > /// > /// Inactive type is added from SMBIOS 2.2. Reference SMBIOS 2.6, chapter >3.3.43. >@@ -727,7 +729,10 @@ typedef enum { > ProcessorFamilyMII =3D 0x012E, > ProcessorFamilyWinChip =3D 0x0140, > ProcessorFamilyDSP =3D 0x015E, >- ProcessorFamilyVideoProcessor =3D 0x01F4 >+ ProcessorFamilyVideoProcessor =3D 0x01F4, >+ ProcessorFamilyRiscvRV32 =3D 0x0200, >+ ProcessorFamilyRiscVRV64 =3D 0x0201, >+ ProcessorFamilyRiscVRV128 =3D 0x0202 > } PROCESSOR_FAMILY2_DATA; > > /// >@@ -857,6 +862,19 @@ typedef struct { > } PROCESSOR_FEATURE_FLAGS; > > typedef struct { >+ UINT32 ProcessorReserved1 :1; >+ UINT32 ProcessorUnknown :1; >+ UINT32 Processor64BitCapble :1; >+ UINT32 ProcessorMultiCore :1; >+ UINT32 ProcessorHardwareThread :1; >+ UINT32 ProcessorExecuteProtection :1; >+ UINT32 ProcessorEnhancedVirtulization :1; >+ UINT32 ProcessorPowerPerformanceCtrl :1; >+ UINT32 Processor128bitCapble :1; >+ UINT32 ProcessorReserved2 :7; >+} PROCESSOR_CHARACTERISTIC_FLAGS; >+ >+typedef struct { > PROCESSOR_SIGNATURE Signature; > PROCESSOR_FEATURE_FLAGS FeatureFlags; > } PROCESSOR_ID_DATA; >@@ -2508,6 +2526,57 @@ typedef struct { > UINT8 InterfaceTypeSpecificData[4]; ///< = This field has a >minimum of four bytes > } SMBIOS_TABLE_TYPE42; > >+ >+/// >+/// Processor Specific Block - Processor Architecture Type >+/// >+typedef enum{ >+ ProcessorSpecificBlockArchTypeReserved =3D 0x00, >+ ProcessorSpecificBlockArchTypeIa32 =3D 0x01, >+ ProcessorSpecificBlockArchTypeX64 =3D 0x02, >+ ProcessorSpecificBlockArchTypeItanium =3D 0x03, >+ ProcessorSpecificBlockArchTypeAarch32 =3D 0x04, >+ ProcessorSpecificBlockArchTypeAarch64 =3D 0x05, >+ ProcessorSpecificBlockArchTypeRiscVRV32 =3D 0x06, >+ ProcessorSpecificBlockArchTypeRiscVRV64 =3D 0x07, >+ ProcessorSpecificBlockArchTypeRiscVRV128 =3D 0x08 >+} PROCESSOR_SPECIFIC_BLOCK_ARCH_TYPE; >+ >+/// >+/// Processor Specific Block is the standard container of processor-speci= fic >data. >+/// >+typedef struct { >+ UINT8 Length; >+ UINT8 ProcessorArchType; >+ /// >+ /// Below followed by Processor-specific data >+ /// >+ /// >+} PROCESSOR_SPECIFIC_BLOCK; >+ >+/// >+/// Processor Additional Information(Type 44). >+/// >+/// The information in this structure defines the processor additional >information in case >+/// SMBIOS type 4 is not sufficient to describe processor characteristics= . >+/// The SMBIOS type 44 structure has a reference handle field to link bac= k to >the related >+/// SMBIOS type 4 structure. There may be multiple SMBIOS type 44 >structures linked to the >+/// same SMBIOS type 4 structure. For example, when cores are not identic= al >in a processor, >+/// SMBIOS type 44 structures describe different core-specific informatio= n. >+/// >+/// SMBIOS type 44 defines the standard header for the processor-specific >block, while the >+/// contents of processor-specific data are maintained by processor >+/// architecture workgroups or vendors in separate documents. >+/// >+typedef struct { >+ SMBIOS_STRUCTURE Hdr; >+ SMBIOS_HANDLE RefHandle; ///< This = field refer to >associated SMBIOS type 4 >+ /// >+ /// Below followed by Processor-specific block >+ /// >+ PROCESSOR_SPECIFIC_BLOCK ProcessorSpecificBlock; >+} SMBIOS_TABLE_TYPE44; >+ > /// > /// TPM Device (Type 43). > /// >@@ -2586,6 +2655,7 @@ typedef union { > SMBIOS_TABLE_TYPE41 *Type41; > SMBIOS_TABLE_TYPE42 *Type42; > SMBIOS_TABLE_TYPE43 *Type43; >+ SMBIOS_TABLE_TYPE44 *Type44; > SMBIOS_TABLE_TYPE126 *Type126; > SMBIOS_TABLE_TYPE127 *Type127; > UINT8 *Raw; >diff --git >a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c >index cfd7a2b..ff0c1db 100644 >--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c >+++ >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c >@@ -3,7 +3,7 @@ > > Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.
> (C) Copyright 2014 Hewlett-Packard Development Company, L.P.
>- (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP
>+ (C) Copyright 2015-2019 Hewlett Packard Enterprise Development LP
> SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ >@@ -1169,6 +1169,15 @@ SmbiosPrintStructure ( > break; > > // >+ // Processor Additional Information (Type 44) >+ // >+ case 44: >+ PRINT_STRUCT_VALUE_H (Struct, Type44, RefHandle); >+ PRINT_STRUCT_VALUE_H (Struct, Type44, >ProcessorSpecificBlock.ProcessorArchType); >+ ProcessorArchitectureType (Struct->Type44- >>ProcessorSpecificBlock.ProcessorArchType, Option); >+ break; >+ >+ // > // Inactive (Type 126) > // > case 126: >@@ -2350,6 +2359,18 @@ DisplayProcessorFamily2 ( > Print (L"Video Processor\n"); > break; > >+ case 0x200: >+ Print (L"RISC-V RV32\n"); >+ break; >+ >+ case 0x201: >+ Print (L"RISC-V RV64\n"); >+ break; >+ >+ case 0x202: >+ Print (L"RISC-V RV128\n"); >+ break; >+ > default: > ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN >(STR_SMBIOSVIEW_PRINTINFO_UNDEFINED_PROC_FAMILY), >gShellDebug1HiiHandle); > } >diff --git >a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.h >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.h >index a8c32ab..22f59d6 100644 >--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.h >+++ >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.h >@@ -2,7 +2,7 @@ > Module to clarify the element info of the smbios structure. > > Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.
>- (C) Copyright 2017 Hewlett Packard Enterprise Development LP
>+ (C) Copyright 2017 - 2019 Hewlett Packard Enterprise Development LP
> SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ >@@ -427,4 +427,15 @@ DisplayTpmDeviceCharacteristics ( > IN UINT8 Option > ); > >+/** >+ Display Processor Architecture Type (Type 44). >+ >+ @param[in] Type The key of the structure. >+ @param[in] Option The optional information. >+**/ >+VOID >+ProcessorArchitectureType ( >+ IN UINT8 Type, >+ IN UINT8 Option >+ ); > #endif >diff --git >a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c >index bfb7c3b..54e9a52 100644 >--- >a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c >+++ >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c >@@ -3,7 +3,7 @@ > And give a interface of query a string out of a table. > > Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.
>- (C) Copyright 2016-2017 Hewlett Packard Enterprise Development LP
>+ (C) Copyright 2016-2019 Hewlett Packard Enterprise Development LP
> SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ >@@ -620,6 +620,10 @@ TABLE_ITEM ProcessorCharacteristicsTable[] =3D { > { > 7, > L" Power/Performance Control" >+ }, >+ { >+ 8, >+ L" 128-bit Capable" > } > }; > >@@ -3268,6 +3272,44 @@ TABLE_ITEM MCHostInterfaceTypeTable[] =3D { > }, > }; > >+TABLE_ITEM ProcessorArchitectureTypesTable[] =3D { >+ { >+ 0, >+ L" Reserved " >+ }, >+ { >+ 1, >+ L" IA32 (x86) " >+ }, >+ { >+ 2, >+ L" x64 (x86-64, intel64, AMD64, EM64T) " >+ }, >+ { >+ 3, >+ L" Intel Itanium architecture " >+ }, >+ { >+ 4, >+ L" 32-bit ARM (Aarch32) " >+ }, >+ { >+ 5, >+ L" 64-bit ARM (Aarch64) " >+ }, >+ { >+ 6, >+ L" 32-bit RISC-V (RV32) " >+ }, >+ { >+ 7, >+ L" 64-bit RISC-V (RV64) " >+ }, >+ { >+ 8, >+ L" 128-bit RISC-V (RV128) " >+ } >+}; > > TABLE_ITEM StructureTypeInfoTable[] =3D { > { >@@ -3447,6 +3489,10 @@ TABLE_ITEM StructureTypeInfoTable[] =3D { > L" TPM Device" > }, > { >+ 44, >+ L" Processor Additional Information" >+ }, >+ { > 0x7E, > L" Inactive" > }, >@@ -4697,6 +4743,21 @@ DisplayMCHostInterfaceType ( > } > > /** >+ Display Processor Architecture Type (Type 44). >+ >+ @param[in] Type The key of the structure. >+ @param[in] Option The optional information. >+**/ >+VOID >+ProcessorArchitectureType ( >+ IN UINT8 Type, >+ IN UINT8 Option >+ ) >+{ >+ PRINT_TABLE_ITEM (ProcessorArchitectureTypesTable, Type); >+} >+ >+/** > Display the structure type information. > > @param[in] Key The key of the structure. >diff --git >a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Command >sLib.uni >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman >dsLib.uni >index 42a9295..6693be2 100644 >--- >a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Command >sLib.uni >+++ >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comman >dsLib.uni >@@ -2,7 +2,7 @@ > // > // Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
> // (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.
>-// (C) Copyright 2016 Hewlett Packard Enterprise Development LP
>+// (C) Copyright 2016 - 2019 Hewlett Packard Enterprise Development LP > // SPDX-License-Identifier: BSD-2-Clause-Patent > // > // Module Name: >@@ -976,6 +976,7 @@ > " 41 - Onboard Devices Extended Information\r\n" > " 42 - Management Controller Host Interface\r\n" > " 43 - TPM Device\r\n" >+" 44 - Processor Additional Information\r\n" > " 2. Enter the SmbiosHandle parameter in hexadecimal format.\r\n" > " Do not use the '0x' prefix format for hexadecimal values.\r\n" > " 3. Internal commands:\r\n" >-- >2.7.4