[edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header file

Abner Chang posted 1 patch 4 years, 6 months ago
Failed in applying to current master (apply log)
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(-)
[edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header file
Posted by Abner Chang 4 years, 6 months ago
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 <abner.chang@hpe.com>

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Gilbert Chen <gilbert.chen@hpe.com>
---
 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|0x00010055
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0303|UINT16|0x00010055
 
-  ## SMBIOS Docrev field in SMBIOS 3.0 (64-bit) Entry Point Structure.
-  # @Prompt SMBIOS Docrev field in SMBIOS 3.0 (64-bit) Entry Point Structure.
+  ## 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|0x0001006A
 
   ## 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.<BR>
 (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
+(C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development LP<BR>
 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                   = 0x012E,
   ProcessorFamilyWinChip               = 0x0140,
   ProcessorFamilyDSP                   = 0x015E,
-  ProcessorFamilyVideoProcessor        = 0x01F4
+  ProcessorFamilyVideoProcessor        = 0x01F4,
+  ProcessorFamilyRiscvRV32             = 0x0200,
+  ProcessorFamilyRiscVRV64             = 0x0201,
+  ProcessorFamilyRiscVRV128            = 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   = 0x00,
+  ProcessorSpecificBlockArchTypeIa32       = 0x01,
+  ProcessorSpecificBlockArchTypeX64        = 0x02,
+  ProcessorSpecificBlockArchTypeItanium    = 0x03,
+  ProcessorSpecificBlockArchTypeAarch32    = 0x04,
+  ProcessorSpecificBlockArchTypeAarch64    = 0x05,
+  ProcessorSpecificBlockArchTypeRiscVRV32  = 0x06,
+  ProcessorSpecificBlockArchTypeRiscVRV64  = 0x07,
+  ProcessorSpecificBlockArchTypeRiscVRV128 = 0x08
+} PROCESSOR_SPECIFIC_BLOCK_ARCH_TYPE;
+
+///
+/// Processor Specific Block is the standard container of processor-specific 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 back 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 identical 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 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.<BR>
   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
-  (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
+  (C) Copyright 2015-2019 Hewlett Packard Enterprise Development LP<BR>
   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.<BR>
-  (C) Copyright 2017 Hewlett Packard Enterprise Development LP<BR>
+  (C) Copyright 2017 - 2019 Hewlett Packard Enterprise Development LP<BR>
   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.<BR>
-  (C) Copyright 2016-2017 Hewlett Packard Enterprise Development LP<BR>
+  (C) Copyright 2016-2019 Hewlett Packard Enterprise Development LP<BR>
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
 **/
@@ -620,6 +620,10 @@ TABLE_ITEM  ProcessorCharacteristicsTable[] = {
   {
     7,
     L" Power/Performance Control"
+  },
+  {
+    8,
+    L" 128-bit Capable"
   }
 };
 
@@ -3268,6 +3272,44 @@ TABLE_ITEM  MCHostInterfaceTypeTable[] = {
   },
 };
 
+TABLE_ITEM  ProcessorArchitectureTypesTable[] = {
+  {
+    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[] = {
   {
@@ -3447,6 +3489,10 @@ TABLE_ITEM  StructureTypeInfoTable[] = {
     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/UefiShellDebug1CommandsLib.uni b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
index 42a9295..6693be2 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.uni
@@ -2,7 +2,7 @@
 //
 // Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
 // (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
-// (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
+// (C) Copyright 2016 - 2019 Hewlett Packard Enterprise Development LP<BR>
 // 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


-=-=-=-=-=-=-=-=-=-=-=-
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]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header file
Posted by Liming Gao 4 years, 6 months ago
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. 

  As Leif say, SmBios 3.3 spec is not published. This patch will not be pushed until SmBios 3.3 is published. 

>-----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 <michael.d.kinney@intel.com>;
>Gao, Liming <liming.gao@intel.com>; Leif Lindholm <leif.lindholm@linaro.org>;
>Gilbert Chen <gilbert.chen@hpe.com>
>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 <abner.chang@hpe.com>
>
>Cc: Michael D Kinney <michael.d.kinney@intel.com>
>Cc: Liming Gao <liming.gao@intel.com>
>Cc: Leif Lindholm <leif.lindholm@linaro.org>
>Cc: Gilbert Chen <gilbert.chen@hpe.com>
>---
> 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 Structure.
>+  ## 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.<BR>
> (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
>+(C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development LP<BR>
> 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                   = 0x012E,
>   ProcessorFamilyWinChip               = 0x0140,
>   ProcessorFamilyDSP                   = 0x015E,
>-  ProcessorFamilyVideoProcessor        = 0x01F4
>+  ProcessorFamilyVideoProcessor        = 0x01F4,
>+  ProcessorFamilyRiscvRV32             = 0x0200,
>+  ProcessorFamilyRiscVRV64             = 0x0201,
>+  ProcessorFamilyRiscVRV128            = 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   = 0x00,
>+  ProcessorSpecificBlockArchTypeIa32       = 0x01,
>+  ProcessorSpecificBlockArchTypeX64        = 0x02,
>+  ProcessorSpecificBlockArchTypeItanium    = 0x03,
>+  ProcessorSpecificBlockArchTypeAarch32    = 0x04,
>+  ProcessorSpecificBlockArchTypeAarch64    = 0x05,
>+  ProcessorSpecificBlockArchTypeRiscVRV32  = 0x06,
>+  ProcessorSpecificBlockArchTypeRiscVRV64  = 0x07,
>+  ProcessorSpecificBlockArchTypeRiscVRV128 = 0x08
>+} PROCESSOR_SPECIFIC_BLOCK_ARCH_TYPE;
>+
>+///
>+/// Processor Specific Block is the standard container of processor-specific
>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 back 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 identical
>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 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.<BR>
>   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
>-  (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
>+  (C) Copyright 2015-2019 Hewlett Packard Enterprise Development LP<BR>
>   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.<BR>
>-  (C) Copyright 2017 Hewlett Packard Enterprise Development LP<BR>
>+  (C) Copyright 2017 - 2019 Hewlett Packard Enterprise Development LP<BR>
>   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.<BR>
>-  (C) Copyright 2016-2017 Hewlett Packard Enterprise Development LP<BR>
>+  (C) Copyright 2016-2019 Hewlett Packard Enterprise Development LP<BR>
>   SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
>@@ -620,6 +620,10 @@ TABLE_ITEM  ProcessorCharacteristicsTable[] = {
>   {
>     7,
>     L" Power/Performance Control"
>+  },
>+  {
>+    8,
>+    L" 128-bit Capable"
>   }
> };
>
>@@ -3268,6 +3272,44 @@ TABLE_ITEM  MCHostInterfaceTypeTable[] = {
>   },
> };
>
>+TABLE_ITEM  ProcessorArchitectureTypesTable[] = {
>+  {
>+    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[] = {
>   {
>@@ -3447,6 +3489,10 @@ TABLE_ITEM  StructureTypeInfoTable[] = {
>     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.<BR>
> // (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
>-// (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
>+// (C) Copyright 2016 - 2019 Hewlett Packard Enterprise Development LP<BR>
> // 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


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#47554): https://edk2.groups.io/g/devel/message/47554
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]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header file
Posted by Abner Chang 4 years, 5 months ago
Just aware that SMBIOS 3.3.0 is published on DMTF,
https://www.dmtf.org/standards/smbios

The latest version of patch set is PATCH v4, please review it and help to push to mainstream if no further comments. Thanks
Abner

> -----Original Message-----
> From: Gao, Liming [mailto:liming.gao@intel.com]
> Sent: Thursday, September 19, 2019 1:23 PM
> To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@hpe.com>;
> devel@edk2.groups.io
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Leif Lindholm
> <leif.lindholm@linaro.org>; Chen, Gilbert <gilbert.chen@hpe.com>
> Subject: RE: [PATCH v2] MdePkg:Include: Update SmBios header file
> 
> 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.
> 
>   As Leif say, SmBios 3.3 spec is not published. This patch will not be pushed
> until SmBios 3.3 is published.
> 
> >-----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
> ><michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>; Leif
> >Lindholm <leif.lindholm@linaro.org>; Gilbert Chen
> ><gilbert.chen@hpe.com>
> >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 <abner.chang@hpe.com>
> >
> >Cc: Michael D Kinney <michael.d.kinney@intel.com>
> >Cc: Liming Gao <liming.gao@intel.com>
> >Cc: Leif Lindholm <leif.lindholm@linaro.org>
> >Cc: Gilbert Chen <gilbert.chen@hpe.com>
> >---
> > 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|0
> x0
> >0010055
> >+
> >gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0303|UINT16|0
> x0
> >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
> Structure.
> >+  ## 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|0x0001
> 00
> >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.<BR>
> > (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
> >+(C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development
> >+LP<BR>
> > 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                   = 0x012E,
> >   ProcessorFamilyWinChip               = 0x0140,
> >   ProcessorFamilyDSP                   = 0x015E,
> >-  ProcessorFamilyVideoProcessor        = 0x01F4
> >+  ProcessorFamilyVideoProcessor        = 0x01F4,
> >+  ProcessorFamilyRiscvRV32             = 0x0200,
> >+  ProcessorFamilyRiscVRV64             = 0x0201,
> >+  ProcessorFamilyRiscVRV128            = 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   = 0x00,
> >+  ProcessorSpecificBlockArchTypeIa32       = 0x01,
> >+  ProcessorSpecificBlockArchTypeX64        = 0x02,
> >+  ProcessorSpecificBlockArchTypeItanium    = 0x03,
> >+  ProcessorSpecificBlockArchTypeAarch32    = 0x04,
> >+  ProcessorSpecificBlockArchTypeAarch64    = 0x05,
> >+  ProcessorSpecificBlockArchTypeRiscVRV32  = 0x06,
> >+  ProcessorSpecificBlockArchTypeRiscVRV64  = 0x07,
> >+  ProcessorSpecificBlockArchTypeRiscVRV128 = 0x08 }
> >+PROCESSOR_SPECIFIC_BLOCK_ARCH_TYPE;
> >+
> >+///
> >+/// Processor Specific Block is the standard container of
> >+processor-specific
> >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
> >+back 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
> >+identical
> >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 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.<BR>
> >   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
> >-  (C) Copyright 2015-2017 Hewlett Packard Enterprise Development
> >LP<BR>
> >+  (C) Copyright 2015-2019 Hewlett Packard Enterprise Development
> >+ LP<BR>
> >   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.<BR>
> >-  (C) Copyright 2017 Hewlett Packard Enterprise Development LP<BR>
> >+  (C) Copyright 2017 - 2019 Hewlett Packard Enterprise Development
> >+ LP<BR>
> >   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/QueryTabl
> e.c
> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> e.c
> >index bfb7c3b..54e9a52 100644
> >---
> >a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> e.c
> >+++
> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> e.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.<BR>
> >-  (C) Copyright 2016-2017 Hewlett Packard Enterprise Development
> >LP<BR>
> >+  (C) Copyright 2016-2019 Hewlett Packard Enterprise Development
> >+ LP<BR>
> >   SPDX-License-Identifier: BSD-2-Clause-Patent
> >
> > **/
> >@@ -620,6 +620,10 @@ TABLE_ITEM  ProcessorCharacteristicsTable[] = {
> >   {
> >     7,
> >     L" Power/Performance Control"
> >+  },
> >+  {
> >+    8,
> >+    L" 128-bit Capable"
> >   }
> > };
> >
> >@@ -3268,6 +3272,44 @@ TABLE_ITEM  MCHostInterfaceTypeTable[] = {
> >   },
> > };
> >
> >+TABLE_ITEM  ProcessorArchitectureTypesTable[] = {
> >+  {
> >+    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[] = {
> >   {
> >@@ -3447,6 +3489,10 @@ TABLE_ITEM  StructureTypeInfoTable[] = {
> >     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/UefiShellDebug1Comma
> nd
> >sLib.uni
> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comma
> n
> >dsLib.uni
> >index 42a9295..6693be2 100644
> >---
> >a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comma
> nd
> >sLib.uni
> >+++
> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comma
> n
> >dsLib.uni
> >@@ -2,7 +2,7 @@
> > //
> > // Copyright (c) 2010 - 2018, Intel Corporation. All rights
> >reserved.<BR>  // (C) Copyright 2013-2015 Hewlett-Packard Development
> >Company, L.P.<BR> -// (C) Copyright 2016 Hewlett Packard Enterprise
> >Development LP<BR>
> >+// (C) Copyright 2016 - 2019 Hewlett Packard Enterprise Development
> >+LP<BR>
> > // 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


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#48476): https://edk2.groups.io/g/devel/message/48476
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]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header file
Posted by Liming Gao 4 years, 5 months ago
Abner:
  Thanks for your notice. I see the public SMBIOS 3.3.0. 

  For this patch set, I have two minor comments. For other part, Reviewed-by: Liming Gao <liming.gao@intel.com>
1) Please add BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2202 in the commit message. 
2) The comment for gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev is not required to be changed. 
This field is in SMBIOS 3.0 spec. It is not new added one in SMBIOS 3.3.

Thanks
Liming
>-----Original Message-----
>From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
>Abner Chang
>Sent: Friday, October 04, 2019 11:06 PM
>To: Gao, Liming <liming.gao@intel.com>; devel@edk2.groups.io
>Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Leif Lindholm
><leif.lindholm@linaro.org>; Chen, Gilbert <gilbert.chen@hpe.com>
>Subject: Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header
>file
>
>Just aware that SMBIOS 3.3.0 is published on DMTF,
>https://www.dmtf.org/standards/smbios
>
>The latest version of patch set is PATCH v4, please review it and help to push
>to mainstream if no further comments. Thanks
>Abner
>
>> -----Original Message-----
>> From: Gao, Liming [mailto:liming.gao@intel.com]
>> Sent: Thursday, September 19, 2019 1:23 PM
>> To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@hpe.com>;
>> devel@edk2.groups.io
>> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Leif Lindholm
>> <leif.lindholm@linaro.org>; Chen, Gilbert <gilbert.chen@hpe.com>
>> Subject: RE: [PATCH v2] MdePkg:Include: Update SmBios header file
>>
>> 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.
>>
>>   As Leif say, SmBios 3.3 spec is not published. This patch will not be pushed
>> until SmBios 3.3 is published.
>>
>> >-----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
>> ><michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>; Leif
>> >Lindholm <leif.lindholm@linaro.org>; Gilbert Chen
>> ><gilbert.chen@hpe.com>
>> >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 <abner.chang@hpe.com>
>> >
>> >Cc: Michael D Kinney <michael.d.kinney@intel.com>
>> >Cc: Liming Gao <liming.gao@intel.com>
>> >Cc: Leif Lindholm <leif.lindholm@linaro.org>
>> >Cc: Gilbert Chen <gilbert.chen@hpe.com>
>> >---
>> > 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|0
>> x0
>> >0010055
>> >+
>> >gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0303|UINT16|0
>> x0
>> >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
>> Structure.
>> >+  ## 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|0x000
>1
>> 00
>> >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.<BR>
>> > (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
>> >+(C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development
>> >+LP<BR>
>> > 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                   = 0x012E,
>> >   ProcessorFamilyWinChip               = 0x0140,
>> >   ProcessorFamilyDSP                   = 0x015E,
>> >-  ProcessorFamilyVideoProcessor        = 0x01F4
>> >+  ProcessorFamilyVideoProcessor        = 0x01F4,
>> >+  ProcessorFamilyRiscvRV32             = 0x0200,
>> >+  ProcessorFamilyRiscVRV64             = 0x0201,
>> >+  ProcessorFamilyRiscVRV128            = 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   = 0x00,
>> >+  ProcessorSpecificBlockArchTypeIa32       = 0x01,
>> >+  ProcessorSpecificBlockArchTypeX64        = 0x02,
>> >+  ProcessorSpecificBlockArchTypeItanium    = 0x03,
>> >+  ProcessorSpecificBlockArchTypeAarch32    = 0x04,
>> >+  ProcessorSpecificBlockArchTypeAarch64    = 0x05,
>> >+  ProcessorSpecificBlockArchTypeRiscVRV32  = 0x06,
>> >+  ProcessorSpecificBlockArchTypeRiscVRV64  = 0x07,
>> >+  ProcessorSpecificBlockArchTypeRiscVRV128 = 0x08 }
>> >+PROCESSOR_SPECIFIC_BLOCK_ARCH_TYPE;
>> >+
>> >+///
>> >+/// Processor Specific Block is the standard container of
>> >+processor-specific
>> >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
>> >+back 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
>> >+identical
>> >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 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.<BR>
>> >   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
>> >-  (C) Copyright 2015-2017 Hewlett Packard Enterprise Development
>> >LP<BR>
>> >+  (C) Copyright 2015-2019 Hewlett Packard Enterprise Development
>> >+ LP<BR>
>> >   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.<BR>
>> >-  (C) Copyright 2017 Hewlett Packard Enterprise Development LP<BR>
>> >+  (C) Copyright 2017 - 2019 Hewlett Packard Enterprise Development
>> >+ LP<BR>
>> >   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/QueryTabl
>> e.c
>> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
>> e.c
>> >index bfb7c3b..54e9a52 100644
>> >---
>> >a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
>> e.c
>> >+++
>> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
>> e.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.<BR>
>> >-  (C) Copyright 2016-2017 Hewlett Packard Enterprise Development
>> >LP<BR>
>> >+  (C) Copyright 2016-2019 Hewlett Packard Enterprise Development
>> >+ LP<BR>
>> >   SPDX-License-Identifier: BSD-2-Clause-Patent
>> >
>> > **/
>> >@@ -620,6 +620,10 @@ TABLE_ITEM  ProcessorCharacteristicsTable[] = {
>> >   {
>> >     7,
>> >     L" Power/Performance Control"
>> >+  },
>> >+  {
>> >+    8,
>> >+    L" 128-bit Capable"
>> >   }
>> > };
>> >
>> >@@ -3268,6 +3272,44 @@ TABLE_ITEM  MCHostInterfaceTypeTable[] = {
>> >   },
>> > };
>> >
>> >+TABLE_ITEM  ProcessorArchitectureTypesTable[] = {
>> >+  {
>> >+    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[] = {
>> >   {
>> >@@ -3447,6 +3489,10 @@ TABLE_ITEM  StructureTypeInfoTable[] = {
>> >     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/UefiShellDebug1Comm
>a
>> nd
>> >sLib.uni
>> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
>a
>> n
>> >dsLib.uni
>> >index 42a9295..6693be2 100644
>> >---
>> >a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
>a
>> nd
>> >sLib.uni
>> >+++
>> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
>a
>> n
>> >dsLib.uni
>> >@@ -2,7 +2,7 @@
>> > //
>> > // Copyright (c) 2010 - 2018, Intel Corporation. All rights
>> >reserved.<BR>  // (C) Copyright 2013-2015 Hewlett-Packard Development
>> >Company, L.P.<BR> -// (C) Copyright 2016 Hewlett Packard Enterprise
>> >Development LP<BR>
>> >+// (C) Copyright 2016 - 2019 Hewlett Packard Enterprise Development
>> >+LP<BR>
>> > // 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
>
>
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#48514): https://edk2.groups.io/g/devel/message/48514
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]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header file
Posted by Leif Lindholm 4 years, 5 months ago
Hi Liming,

If you push this set (v5), could you possibly also push it to
https://github.com/tianocore/edk2-staging/tree/RISC-V-V2 ?

The three patches apply cleanly on this revision, and are a
prerequisite for the code destined to go in there.

Best Regards,

Leif

On Tue, Oct 08, 2019 at 01:14:35AM +0000, Gao, Liming wrote:
> Abner:
>   Thanks for your notice. I see the public SMBIOS 3.3.0. 
> 
>   For this patch set, I have two minor comments. For other part, Reviewed-by: Liming Gao <liming.gao@intel.com>
> 1) Please add BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2202 in the commit message. 
> 2) The comment for gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev is not required to be changed. 
> This field is in SMBIOS 3.0 spec. It is not new added one in SMBIOS 3.3.
> 
> Thanks
> Liming
> >-----Original Message-----
> >From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> >Abner Chang
> >Sent: Friday, October 04, 2019 11:06 PM
> >To: Gao, Liming <liming.gao@intel.com>; devel@edk2.groups.io
> >Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Leif Lindholm
> ><leif.lindholm@linaro.org>; Chen, Gilbert <gilbert.chen@hpe.com>
> >Subject: Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header
> >file
> >
> >Just aware that SMBIOS 3.3.0 is published on DMTF,
> >https://www.dmtf.org/standards/smbios
> >
> >The latest version of patch set is PATCH v4, please review it and help to push
> >to mainstream if no further comments. Thanks
> >Abner
> >
> >> -----Original Message-----
> >> From: Gao, Liming [mailto:liming.gao@intel.com]
> >> Sent: Thursday, September 19, 2019 1:23 PM
> >> To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@hpe.com>;
> >> devel@edk2.groups.io
> >> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Leif Lindholm
> >> <leif.lindholm@linaro.org>; Chen, Gilbert <gilbert.chen@hpe.com>
> >> Subject: RE: [PATCH v2] MdePkg:Include: Update SmBios header file
> >>
> >> 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.
> >>
> >>   As Leif say, SmBios 3.3 spec is not published. This patch will not be pushed
> >> until SmBios 3.3 is published.
> >>
> >> >-----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
> >> ><michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>; Leif
> >> >Lindholm <leif.lindholm@linaro.org>; Gilbert Chen
> >> ><gilbert.chen@hpe.com>
> >> >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 <abner.chang@hpe.com>
> >> >
> >> >Cc: Michael D Kinney <michael.d.kinney@intel.com>
> >> >Cc: Liming Gao <liming.gao@intel.com>
> >> >Cc: Leif Lindholm <leif.lindholm@linaro.org>
> >> >Cc: Gilbert Chen <gilbert.chen@hpe.com>
> >> >---
> >> > 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|0
> >> x0
> >> >0010055
> >> >+
> >> >gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0303|UINT16|0
> >> x0
> >> >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
> >> Structure.
> >> >+  ## 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|0x000
> >1
> >> 00
> >> >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.<BR>
> >> > (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
> >> >+(C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development
> >> >+LP<BR>
> >> > 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                   = 0x012E,
> >> >   ProcessorFamilyWinChip               = 0x0140,
> >> >   ProcessorFamilyDSP                   = 0x015E,
> >> >-  ProcessorFamilyVideoProcessor        = 0x01F4
> >> >+  ProcessorFamilyVideoProcessor        = 0x01F4,
> >> >+  ProcessorFamilyRiscvRV32             = 0x0200,
> >> >+  ProcessorFamilyRiscVRV64             = 0x0201,
> >> >+  ProcessorFamilyRiscVRV128            = 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   = 0x00,
> >> >+  ProcessorSpecificBlockArchTypeIa32       = 0x01,
> >> >+  ProcessorSpecificBlockArchTypeX64        = 0x02,
> >> >+  ProcessorSpecificBlockArchTypeItanium    = 0x03,
> >> >+  ProcessorSpecificBlockArchTypeAarch32    = 0x04,
> >> >+  ProcessorSpecificBlockArchTypeAarch64    = 0x05,
> >> >+  ProcessorSpecificBlockArchTypeRiscVRV32  = 0x06,
> >> >+  ProcessorSpecificBlockArchTypeRiscVRV64  = 0x07,
> >> >+  ProcessorSpecificBlockArchTypeRiscVRV128 = 0x08 }
> >> >+PROCESSOR_SPECIFIC_BLOCK_ARCH_TYPE;
> >> >+
> >> >+///
> >> >+/// Processor Specific Block is the standard container of
> >> >+processor-specific
> >> >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
> >> >+back 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
> >> >+identical
> >> >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 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.<BR>
> >> >   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
> >> >-  (C) Copyright 2015-2017 Hewlett Packard Enterprise Development
> >> >LP<BR>
> >> >+  (C) Copyright 2015-2019 Hewlett Packard Enterprise Development
> >> >+ LP<BR>
> >> >   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.<BR>
> >> >-  (C) Copyright 2017 Hewlett Packard Enterprise Development LP<BR>
> >> >+  (C) Copyright 2017 - 2019 Hewlett Packard Enterprise Development
> >> >+ LP<BR>
> >> >   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/QueryTabl
> >> e.c
> >> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> >> e.c
> >> >index bfb7c3b..54e9a52 100644
> >> >---
> >> >a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> >> e.c
> >> >+++
> >> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> >> e.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.<BR>
> >> >-  (C) Copyright 2016-2017 Hewlett Packard Enterprise Development
> >> >LP<BR>
> >> >+  (C) Copyright 2016-2019 Hewlett Packard Enterprise Development
> >> >+ LP<BR>
> >> >   SPDX-License-Identifier: BSD-2-Clause-Patent
> >> >
> >> > **/
> >> >@@ -620,6 +620,10 @@ TABLE_ITEM  ProcessorCharacteristicsTable[] = {
> >> >   {
> >> >     7,
> >> >     L" Power/Performance Control"
> >> >+  },
> >> >+  {
> >> >+    8,
> >> >+    L" 128-bit Capable"
> >> >   }
> >> > };
> >> >
> >> >@@ -3268,6 +3272,44 @@ TABLE_ITEM  MCHostInterfaceTypeTable[] = {
> >> >   },
> >> > };
> >> >
> >> >+TABLE_ITEM  ProcessorArchitectureTypesTable[] = {
> >> >+  {
> >> >+    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[] = {
> >> >   {
> >> >@@ -3447,6 +3489,10 @@ TABLE_ITEM  StructureTypeInfoTable[] = {
> >> >     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/UefiShellDebug1Comm
> >a
> >> nd
> >> >sLib.uni
> >> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
> >a
> >> n
> >> >dsLib.uni
> >> >index 42a9295..6693be2 100644
> >> >---
> >> >a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
> >a
> >> nd
> >> >sLib.uni
> >> >+++
> >> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
> >a
> >> n
> >> >dsLib.uni
> >> >@@ -2,7 +2,7 @@
> >> > //
> >> > // Copyright (c) 2010 - 2018, Intel Corporation. All rights
> >> >reserved.<BR>  // (C) Copyright 2013-2015 Hewlett-Packard Development
> >> >Company, L.P.<BR> -// (C) Copyright 2016 Hewlett Packard Enterprise
> >> >Development LP<BR>
> >> >+// (C) Copyright 2016 - 2019 Hewlett Packard Enterprise Development
> >> >+LP<BR>
> >> > // 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
> >
> >
> >
> 

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#48561): https://edk2.groups.io/g/devel/message/48561
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]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header file
Posted by Liming Gao 4 years, 5 months ago
OK. I will push them to edk2-staging/tree/RISC-V-V2.

Thanks
Liming
> -----Original Message-----
> From: Leif Lindholm <leif.lindholm@linaro.org>
> Sent: Tuesday, October 8, 2019 6:11 PM
> To: Gao, Liming <liming.gao@intel.com>
> Cc: devel@edk2.groups.io; abner.chang@hpe.com; Kinney, Michael D <michael.d.kinney@intel.com>; Chen, Gilbert
> <gilbert.chen@hpe.com>
> Subject: Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header file
> 
> Hi Liming,
> 
> If you push this set (v5), could you possibly also push it to
> https://github.com/tianocore/edk2-staging/tree/RISC-V-V2 ?
> 
> The three patches apply cleanly on this revision, and are a
> prerequisite for the code destined to go in there.
> 
> Best Regards,
> 
> Leif
> 
> On Tue, Oct 08, 2019 at 01:14:35AM +0000, Gao, Liming wrote:
> > Abner:
> >   Thanks for your notice. I see the public SMBIOS 3.3.0.
> >
> >   For this patch set, I have two minor comments. For other part, Reviewed-by: Liming Gao <liming.gao@intel.com>
> > 1) Please add BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2202 in the commit message.
> > 2) The comment for gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev is not required to be changed.
> > This field is in SMBIOS 3.0 spec. It is not new added one in SMBIOS 3.3.
> >
> > Thanks
> > Liming
> > >-----Original Message-----
> > >From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> > >Abner Chang
> > >Sent: Friday, October 04, 2019 11:06 PM
> > >To: Gao, Liming <liming.gao@intel.com>; devel@edk2.groups.io
> > >Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Leif Lindholm
> > ><leif.lindholm@linaro.org>; Chen, Gilbert <gilbert.chen@hpe.com>
> > >Subject: Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header
> > >file
> > >
> > >Just aware that SMBIOS 3.3.0 is published on DMTF,
> > >https://www.dmtf.org/standards/smbios
> > >
> > >The latest version of patch set is PATCH v4, please review it and help to push
> > >to mainstream if no further comments. Thanks
> > >Abner
> > >
> > >> -----Original Message-----
> > >> From: Gao, Liming [mailto:liming.gao@intel.com]
> > >> Sent: Thursday, September 19, 2019 1:23 PM
> > >> To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@hpe.com>;
> > >> devel@edk2.groups.io
> > >> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Leif Lindholm
> > >> <leif.lindholm@linaro.org>; Chen, Gilbert <gilbert.chen@hpe.com>
> > >> Subject: RE: [PATCH v2] MdePkg:Include: Update SmBios header file
> > >>
> > >> 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.
> > >>
> > >>   As Leif say, SmBios 3.3 spec is not published. This patch will not be pushed
> > >> until SmBios 3.3 is published.
> > >>
> > >> >-----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
> > >> ><michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>; Leif
> > >> >Lindholm <leif.lindholm@linaro.org>; Gilbert Chen
> > >> ><gilbert.chen@hpe.com>
> > >> >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 <abner.chang@hpe.com>
> > >> >
> > >> >Cc: Michael D Kinney <michael.d.kinney@intel.com>
> > >> >Cc: Liming Gao <liming.gao@intel.com>
> > >> >Cc: Leif Lindholm <leif.lindholm@linaro.org>
> > >> >Cc: Gilbert Chen <gilbert.chen@hpe.com>
> > >> >---
> > >> > 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|0
> > >> x0
> > >> >0010055
> > >> >+
> > >> >gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0303|UINT16|0
> > >> x0
> > >> >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
> > >> Structure.
> > >> >+  ## 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|0x000
> > >1
> > >> 00
> > >> >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.<BR>
> > >> > (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>
> > >> >+(C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development
> > >> >+LP<BR>
> > >> > 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                   = 0x012E,
> > >> >   ProcessorFamilyWinChip               = 0x0140,
> > >> >   ProcessorFamilyDSP                   = 0x015E,
> > >> >-  ProcessorFamilyVideoProcessor        = 0x01F4
> > >> >+  ProcessorFamilyVideoProcessor        = 0x01F4,
> > >> >+  ProcessorFamilyRiscvRV32             = 0x0200,
> > >> >+  ProcessorFamilyRiscVRV64             = 0x0201,
> > >> >+  ProcessorFamilyRiscVRV128            = 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   = 0x00,
> > >> >+  ProcessorSpecificBlockArchTypeIa32       = 0x01,
> > >> >+  ProcessorSpecificBlockArchTypeX64        = 0x02,
> > >> >+  ProcessorSpecificBlockArchTypeItanium    = 0x03,
> > >> >+  ProcessorSpecificBlockArchTypeAarch32    = 0x04,
> > >> >+  ProcessorSpecificBlockArchTypeAarch64    = 0x05,
> > >> >+  ProcessorSpecificBlockArchTypeRiscVRV32  = 0x06,
> > >> >+  ProcessorSpecificBlockArchTypeRiscVRV64  = 0x07,
> > >> >+  ProcessorSpecificBlockArchTypeRiscVRV128 = 0x08 }
> > >> >+PROCESSOR_SPECIFIC_BLOCK_ARCH_TYPE;
> > >> >+
> > >> >+///
> > >> >+/// Processor Specific Block is the standard container of
> > >> >+processor-specific
> > >> >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
> > >> >+back 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
> > >> >+identical
> > >> >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 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.<BR>
> > >> >   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
> > >> >-  (C) Copyright 2015-2017 Hewlett Packard Enterprise Development
> > >> >LP<BR>
> > >> >+  (C) Copyright 2015-2019 Hewlett Packard Enterprise Development
> > >> >+ LP<BR>
> > >> >   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.<BR>
> > >> >-  (C) Copyright 2017 Hewlett Packard Enterprise Development LP<BR>
> > >> >+  (C) Copyright 2017 - 2019 Hewlett Packard Enterprise Development
> > >> >+ LP<BR>
> > >> >   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/QueryTabl
> > >> e.c
> > >> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> > >> e.c
> > >> >index bfb7c3b..54e9a52 100644
> > >> >---
> > >> >a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> > >> e.c
> > >> >+++
> > >> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> > >> e.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.<BR>
> > >> >-  (C) Copyright 2016-2017 Hewlett Packard Enterprise Development
> > >> >LP<BR>
> > >> >+  (C) Copyright 2016-2019 Hewlett Packard Enterprise Development
> > >> >+ LP<BR>
> > >> >   SPDX-License-Identifier: BSD-2-Clause-Patent
> > >> >
> > >> > **/
> > >> >@@ -620,6 +620,10 @@ TABLE_ITEM  ProcessorCharacteristicsTable[] = {
> > >> >   {
> > >> >     7,
> > >> >     L" Power/Performance Control"
> > >> >+  },
> > >> >+  {
> > >> >+    8,
> > >> >+    L" 128-bit Capable"
> > >> >   }
> > >> > };
> > >> >
> > >> >@@ -3268,6 +3272,44 @@ TABLE_ITEM  MCHostInterfaceTypeTable[] = {
> > >> >   },
> > >> > };
> > >> >
> > >> >+TABLE_ITEM  ProcessorArchitectureTypesTable[] = {
> > >> >+  {
> > >> >+    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[] = {
> > >> >   {
> > >> >@@ -3447,6 +3489,10 @@ TABLE_ITEM  StructureTypeInfoTable[] = {
> > >> >     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/UefiShellDebug1Comm
> > >a
> > >> nd
> > >> >sLib.uni
> > >> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
> > >a
> > >> n
> > >> >dsLib.uni
> > >> >index 42a9295..6693be2 100644
> > >> >---
> > >> >a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
> > >a
> > >> nd
> > >> >sLib.uni
> > >> >+++
> > >> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
> > >a
> > >> n
> > >> >dsLib.uni
> > >> >@@ -2,7 +2,7 @@
> > >> > //
> > >> > // Copyright (c) 2010 - 2018, Intel Corporation. All rights
> > >> >reserved.<BR>  // (C) Copyright 2013-2015 Hewlett-Packard Development
> > >> >Company, L.P.<BR> -// (C) Copyright 2016 Hewlett Packard Enterprise
> > >> >Development LP<BR>
> > >> >+// (C) Copyright 2016 - 2019 Hewlett Packard Enterprise Development
> > >> >+LP<BR>
> > >> > // 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
> > >
> > >
> > >
> >

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#48576): https://edk2.groups.io/g/devel/message/48576
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]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios header file
Posted by Abner Chang 4 years, 5 months ago
Thanks Liming,

[PATCH v5] was sent.
I added BZ link in commit message in each patch and reverted the changes on PcdSmbiosDocRev.

Abner

> -----Original Message-----
> From: Gao, Liming [mailto:liming.gao@intel.com]
> Sent: Tuesday, October 8, 2019 9:15 AM
> To: devel@edk2.groups.io; Chang, Abner (HPS SW/FW Technologist)
> <abner.chang@hpe.com>
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Leif Lindholm
> <leif.lindholm@linaro.org>; Chen, Gilbert <gilbert.chen@hpe.com>
> Subject: RE: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios
> header file
> 
> Abner:
>   Thanks for your notice. I see the public SMBIOS 3.3.0.
> 
>   For this patch set, I have two minor comments. For other part, Reviewed-by:
> Liming Gao <liming.gao@intel.com>
> 1) Please add BZ: INVALID URI REMOVED
> 3A__bugzilla.tianocore.org_show-5Fbug.cgi-3Fid-
> 3D2202&d=DwIFAg&c=C5b8zRQO1miGmBeVZ2LFWg&r=_SN6FZBN4Vgi4Ulks
> kz6qU3NYRO03nHp9P7Z5q59A3E&m=gM5jfUqBhKlNrUmWsg_93sw45gXUq
> WoAl7p2YtJ02tE&s=a2Q0nhgk7ms0Ik28D2zOF_GH9vpbZHsZzNHGChN0r7k&e
> =  in the commit message.
> 2) The comment for gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev
> is not required to be changed.
> This field is in SMBIOS 3.0 spec. It is not new added one in SMBIOS 3.3.
> 
> Thanks
> Liming
> >-----Original Message-----
> >From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> >Abner Chang
> >Sent: Friday, October 04, 2019 11:06 PM
> >To: Gao, Liming <liming.gao@intel.com>; devel@edk2.groups.io
> >Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Leif Lindholm
> ><leif.lindholm@linaro.org>; Chen, Gilbert <gilbert.chen@hpe.com>
> >Subject: Re: [edk2-devel] [PATCH v2] MdePkg:Include: Update SmBios
> >header file
> >
> >Just aware that SMBIOS 3.3.0 is published on DMTF,
> >INVALID URI REMOVED
> 3A__www.dmtf.org_stand
> >ards_smbios&d=DwIFAg&c=C5b8zRQO1miGmBeVZ2LFWg&r=_SN6FZBN4V
> gi4Ulkskz6qU3
> >NYRO03nHp9P7Z5q59A3E&m=gM5jfUqBhKlNrUmWsg_93sw45gXUqWoAl7
> p2YtJ02tE&s=0B
> >MjpMouuP-2RINBiN0FS-YOe7mwBQp_2VdCMurVQW4&e=
> >
> >The latest version of patch set is PATCH v4, please review it and help
> >to push to mainstream if no further comments. Thanks Abner
> >
> >> -----Original Message-----
> >> From: Gao, Liming [mailto:liming.gao@intel.com]
> >> Sent: Thursday, September 19, 2019 1:23 PM
> >> To: Chang, Abner (HPS SW/FW Technologist) <abner.chang@hpe.com>;
> >> devel@edk2.groups.io
> >> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Leif Lindholm
> >> <leif.lindholm@linaro.org>; Chen, Gilbert <gilbert.chen@hpe.com>
> >> Subject: RE: [PATCH v2] MdePkg:Include: Update SmBios header file
> >>
> >> 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.
> >>
> >>   As Leif say, SmBios 3.3 spec is not published. This patch will not
> >> be pushed until SmBios 3.3 is published.
> >>
> >> >-----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
> >> ><michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>;
> >> >Leif Lindholm <leif.lindholm@linaro.org>; Gilbert Chen
> >> ><gilbert.chen@hpe.com>
> >> >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 <abner.chang@hpe.com>
> >> >
> >> >Cc: Michael D Kinney <michael.d.kinney@intel.com>
> >> >Cc: Liming Gao <liming.gao@intel.com>
> >> >Cc: Leif Lindholm <leif.lindholm@linaro.org>
> >> >Cc: Gilbert Chen <gilbert.chen@hpe.com>
> >> >---
> >> > 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|0
> >> x0
> >> >0010055
> >> >+
> >>
> >gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0303|UINT16|0
> >> x0
> >> >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
> >> Structure.
> >> >+  ## 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|0x000
> >1
> >> 00
> >> >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.<BR>
> >> > (C) Copyright 2015-2017 Hewlett Packard Enterprise Development
> >> > LP<BR>
> >> >+(C) Copyright 2015 - 2019 Hewlett Packard Enterprise Development
> >> >+LP<BR>
> >> > 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                   = 0x012E,
> >> >   ProcessorFamilyWinChip               = 0x0140,
> >> >   ProcessorFamilyDSP                   = 0x015E,
> >> >-  ProcessorFamilyVideoProcessor        = 0x01F4
> >> >+  ProcessorFamilyVideoProcessor        = 0x01F4,
> >> >+  ProcessorFamilyRiscvRV32             = 0x0200,
> >> >+  ProcessorFamilyRiscVRV64             = 0x0201,
> >> >+  ProcessorFamilyRiscVRV128            = 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   = 0x00,
> >> >+  ProcessorSpecificBlockArchTypeIa32       = 0x01,
> >> >+  ProcessorSpecificBlockArchTypeX64        = 0x02,
> >> >+  ProcessorSpecificBlockArchTypeItanium    = 0x03,
> >> >+  ProcessorSpecificBlockArchTypeAarch32    = 0x04,
> >> >+  ProcessorSpecificBlockArchTypeAarch64    = 0x05,
> >> >+  ProcessorSpecificBlockArchTypeRiscVRV32  = 0x06,
> >> >+  ProcessorSpecificBlockArchTypeRiscVRV64  = 0x07,
> >> >+  ProcessorSpecificBlockArchTypeRiscVRV128 = 0x08 }
> >> >+PROCESSOR_SPECIFIC_BLOCK_ARCH_TYPE;
> >> >+
> >> >+///
> >> >+/// Processor Specific Block is the standard container of
> >> >+processor-specific
> >> >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 back 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
> >> >+identical
> >> >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 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.<BR>
> >> >   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
> >> >-  (C) Copyright 2015-2017 Hewlett Packard Enterprise Development
> >> >LP<BR>
> >> >+  (C) Copyright 2015-2019 Hewlett Packard Enterprise Development
> >> >+ LP<BR>
> >> >   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.<BR>
> >> >-  (C) Copyright 2017 Hewlett Packard Enterprise Development LP<BR>
> >> >+  (C) Copyright 2017 - 2019 Hewlett Packard Enterprise Development
> >> >+ LP<BR>
> >> >   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/QueryTabl
> >> e.c
> >>
> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> >> e.c
> >> >index bfb7c3b..54e9a52 100644
> >> >---
> >>
> >a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> >> e.c
> >> >+++
> >>
> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTabl
> >> e.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.<BR>
> >> >-  (C) Copyright 2016-2017 Hewlett Packard Enterprise Development
> >> >LP<BR>
> >> >+  (C) Copyright 2016-2019 Hewlett Packard Enterprise Development
> >> >+ LP<BR>
> >> >   SPDX-License-Identifier: BSD-2-Clause-Patent
> >> >
> >> > **/
> >> >@@ -620,6 +620,10 @@ TABLE_ITEM  ProcessorCharacteristicsTable[] = {
> >> >   {
> >> >     7,
> >> >     L" Power/Performance Control"
> >> >+  },
> >> >+  {
> >> >+    8,
> >> >+    L" 128-bit Capable"
> >> >   }
> >> > };
> >> >
> >> >@@ -3268,6 +3272,44 @@ TABLE_ITEM  MCHostInterfaceTypeTable[] = {
> >> >   },
> >> > };
> >> >
> >> >+TABLE_ITEM  ProcessorArchitectureTypesTable[] = {
> >> >+  {
> >> >+    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[] = {
> >> >   {
> >> >@@ -3447,6 +3489,10 @@ TABLE_ITEM  StructureTypeInfoTable[] = {
> >> >     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/UefiShellDebug1Comm
> >a
> >> nd
> >> >sLib.uni
> >>
> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
> >a
> >> n
> >> >dsLib.uni
> >> >index 42a9295..6693be2 100644
> >> >---
> >>
> >a/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
> >a
> >> nd
> >> >sLib.uni
> >> >+++
> >>
> >b/ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1Comm
> >a
> >> n
> >> >dsLib.uni
> >> >@@ -2,7 +2,7 @@
> >> > //
> >> > // Copyright (c) 2010 - 2018, Intel Corporation. All rights
> >> >reserved.<BR>  // (C) Copyright 2013-2015 Hewlett-Packard
> >> >Development Company, L.P.<BR> -// (C) Copyright 2016 Hewlett Packard
> >> >Enterprise Development LP<BR>
> >> >+// (C) Copyright 2016 - 2019 Hewlett Packard Enterprise Development
> >> >+LP<BR>
> >> > // 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
> >
> >
> >


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#48559): https://edk2.groups.io/g/devel/message/48559
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]
-=-=-=-=-=-=-=-=-=-=-=-