From nobody Sun Apr 28 19:18:45 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+47531+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+47531+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=hpe.com ARC-Seal: i=1; a=rsa-sha256; t=1568864121; cv=none; d=zoho.com; s=zohoarc; b=Na7+ucKJLYTqw/W20rTCiz4E7CNsCKC2uq1qAKLG/HzpJBr/MfyqNlIEetI8AAbtOnli2GeBAVntwQUz5q/7IZbJhpEREJY90sGYxVbjCbFo5RY2SeVJ6ga3wQYcjb0K0fUnWJrbvw49GSTlRpKMO72eBSENAdYmBa+ddwQCKuI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1568864121; h=Cc:Date:From:List-Id:List-Unsubscribe:Message-ID:Reply-To:Sender:Subject:To:ARC-Authentication-Results; bh=v5qGAk0uybQGFeMiLloigvJLQtLx1vmm/mStZP6qINc=; b=CAYe+XL8Bi5WQvHqCZnNPbCNwlDX9CSmfQgrr6s3vkbJDGek5G9voyhI9nAAdQgQnEhNt+Br7q/8iGUcDbDO8toa7Y5xrOz2RojzUy14p3ro/cRAVHHF29zLAbcS8cpTs5OyznN21nbN5ch8LdGM5vcmw0CPkfdgkX0pMAB7de8= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+47531+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1568864121844439.0417594433561; Wed, 18 Sep 2019 20:35:21 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id yvEXYY1788612xpxazT3C0De; Wed, 18 Sep 2019 20:35:21 -0700 X-Received: from mx0a-002e3701.pphosted.com (mx0a-002e3701.pphosted.com [148.163.147.86]) by groups.io with SMTP; Wed, 18 Sep 2019 20:35:20 -0700 X-Received: from pps.filterd (m0134421.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x8J3Qf58015545; Thu, 19 Sep 2019 03:35:19 GMT X-Received: from g4t3425.houston.hpe.com (g4t3425.houston.hpe.com [15.241.140.78]) by mx0b-002e3701.pphosted.com with ESMTP id 2v3vatn8mx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 19 Sep 2019 03:35:18 +0000 X-Received: from g4t3433.houston.hpecorp.net (g4t3433.houston.hpecorp.net [16.208.49.245]) by g4t3425.houston.hpe.com (Postfix) with ESMTP id 6BA948D; Thu, 19 Sep 2019 03:35:18 +0000 (UTC) X-Received: from UB16Abner.asiapacific.hpqcorp.net (ub16abner.asiapacific.hpqcorp.net [15.119.209.44]) by g4t3433.houston.hpecorp.net (Postfix) with ESMTP id 9A66045; Thu, 19 Sep 2019 03:35:16 +0000 (UTC) From: "Abner Chang" To: devel@edk2.groups.io Cc: abner.chang@hpe.com, Michael D Kinney , Liming Gao , Leif Lindholm , Gilbert Chen Subject: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header file Date: Thu, 19 Sep 2019 11:04:43 +0800 Message-Id: <1568862283-31624-1-git-send-email-abner.chang@hpe.com> X-HPE-SCL: -1 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,abner.chang@hpe.com X-Gm-Message-State: cyfqYFicsh8SMivR5ctcF8uMx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1568864121; bh=wZFxg2MjR650Y/u4koPj4x2Sx1f1d87VyGnGFGmZY9U=; h=Cc:Date:From:Reply-To:Subject:To; b=lgw56S4bDTgMltzmGqWZ+hjNF9/AnMDGwHppkOMgdeqFz9LoHifAOOjl3ay2c0A0eDl 2KcNAmAp0E4KDOgb6+BxU1gZ0OELGKTsGp1CfU0K2mj7PC518zx5Wka2XtfeNysBUlUTN cudQG+uwXPbk9B0n/9JFTuEFtBYdMuzwOyI= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 @@ =20 ## SMBIOS version. # @Prompt SMBIOS version. - gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0302|UINT16|0x00010055 + gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0303|UINT16|0x00010055 =20 - ## SMBIOS Docrev field in SMBIOS 3.0 (64-bit) Entry Point Structure. - # @Prompt SMBIOS Docrev field in SMBIOS 3.0 (64-bit) Entry Point Structu= re. + ## SMBIOS Docrev field in SMBIOS 3.3 (64-bit) Entry Point Structure. + # @Prompt SMBIOS Docrev field in SMBIOS 3.3 (64-bit) Entry Point Structu= re. gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0|UINT8|0x0001006A =20 ## SMBIOS produce method. diff --git a/MdePkg/Include/IndustryStandard/SmBios.h b/MdePkg/Include/Indu= stryStandard/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. =20 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 =20 **/ @@ -46,7 +47,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #define SMBIOS_3_0_TABLE_MAX_LENGTH 0xFFFFFFFF =20 // -// 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 =20 /// /// 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; =20 /// @@ -857,6 +862,19 @@ typedef struct { } PROCESSOR_FEATURE_FLAGS; =20 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]; ///< T= his field has a minimum of four bytes } SMBIOS_TABLE_TYPE42; =20 + +/// +/// 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-specif= ic 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 inf= ormation in case +/// SMBIOS type 4 is not sufficient to describe processor characteristics. +/// The SMBIOS type 44 structure has a reference handle field to link back= to the related +/// SMBIOS type 4 structure. There may be multiple SMBIOS type 44 structur= es linked to the +/// same SMBIOS type 4 structure. For example, when cores are not identica= l in a processor, +/// SMBIOS type 44 structures describe different core-specific information. +/// +/// 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 f= ield 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/PrintIn= fo.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 @@ =20 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 =20 **/ @@ -1169,6 +1169,15 @@ SmbiosPrintStructure ( break; =20 // + // Processor Additional Information (Type 44) + // + case 44: + PRINT_STRUCT_VALUE_H (Struct, Type44, RefHandle); + PRINT_STRUCT_VALUE_H (Struct, Type44, ProcessorSpecificBlock.Processor= ArchType); + ProcessorArchitectureType (Struct->Type44->ProcessorSpecificBlock.Proc= essorArchType, Option); + break; + + // // Inactive (Type 126) // case 126: @@ -2350,6 +2359,18 @@ DisplayProcessorFamily2 ( Print (L"Video Processor\n"); break; =20 + 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_UND= EFINED_PROC_FAMILY), gShellDebug1HiiHandle); } diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintIn= fo.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. =20 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 =20 **/ @@ -427,4 +427,15 @@ DisplayTpmDeviceCharacteristics ( IN UINT8 Option ); =20 +/** + 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/QueryTa= ble.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. =20 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 =20 **/ @@ -620,6 +620,10 @@ TABLE_ITEM ProcessorCharacteristicsTable[] =3D { { 7, L" Power/Performance Control" + }, + { + 8, + L" 128-bit Capable" } }; =20 @@ -3268,6 +3272,44 @@ TABLE_ITEM MCHostInterfaceTypeTable[] =3D { }, }; =20 +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) " + } +}; =20 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 ( } =20 /** + 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. =20 @param[in] Key The key of the structure. diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Com= mandsLib.uni b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1C= ommandsLib.uni index 42a9295..6693be2 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLi= b.uni +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLi= b.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" --=20 2.7.4 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47531): https://edk2.groups.io/g/devel/message/47531 Mute This Topic: https://groups.io/mt/34196247/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-