> -----Original Message-----
> From: Ke, Bo-ChangX <bo-changx...@intel.com>
> Sent: Monday, April 11, 2022 3:05 PM
> To: devel@edk2.groups.io
> Cc: Ni, Ray <ray...@intel.com>; Gao, Zhichao <zhichao....@intel.com>
> Subject: [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields
> 
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3896
> 
> update smbiosview type 9 related fileds.
> 
> Signed-off-by: Bo Chang Ke <bo-changx...@intel.com>
> Cc: Ray Ni <ray...@intel.com>
> Cc: Zhichao Gao <zhichao....@intel.com>
> ---
>  .../SmbiosView/PrintInfo.c                    |  11 +-
>  .../SmbiosView/QueryTable.c                   | 238 ++++++++++++++++++
>  .../SmbiosView/QueryTable.h                   |  36 +++
>  .../SmbiosView/SmbiosViewStrings.uni          |   5 +-
>  4 files changed, 285 insertions(+), 5 deletions(-)
> 
> diff --git
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
> index b144600a25..0fa40dbe0c 100644
> ---
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
> +++
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
> @@ -637,6 +637,13 @@ SmbiosPrintStructure (
>            }
>          }
>        }
> +      if (AE_SMBIOS_VERSION (0x3, 0x2)) {
> +        if (Struct->Hdr->Length > 0x12) {
> +          DisplaySystemSlotHeight(Struct->Type9->SlotHeight, Option);
> +          DisplaySystemSlotPhysicalWidth(Struct->Type9->SlotPhysicalWidth,
> Option);
> +          DisplaySystemSlotInformation(Struct->Type9->SlotInformation,
> Option);
> +        }
> +      }

There are some condition check in above code. Why put these separately? And 
please add the white space between the function name and first '('.
Others looks OK to me.

Thanks,
Zhichao

> 
>        break;
>      }
> @@ -2898,10 +2905,6 @@ DisplaySystemSlotId (
>    IN UINT8   Option
>    )
>  {
> -  //
> -  // Display slot type first
> -  //
> -  DisplaySystemSlotType (SlotType, Option);
> 
>    ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> (STR_SMBIOSVIEW_PRINTINFO_SLOT_ID), gShellDebug1HiiHandle);
>    //
> diff --git
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.
> c
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.
> c
> index c4a6acb167..96e0e4036a 100644
> ---
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.
> c
> +++
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.
> +++ c
> @@ -1447,6 +1447,27 @@ TABLE_ITEM  SystemSlotTypeTable[] = {
>      0x23,
>      L"PCI Express Mini 76-pin (CEM spec. 2.0) Corresponds to Display-Mini
> card"
>    },
> +  {
> +    0x24,
> +    L"PCI Express Gen 4 SFF-8639 (U.2)"
> +  },
> +  {
> +    0x25,
> +    L"PCI Express Gen 5 SFF-8639 (U.2)"
> +  },
> +  {
> +    0x26,
> +    L"OCP NIC 3.0 Small Form Factor (SFF)"
> +  },
> +  {
> +    0x27,
> +    L"OCP NIC 3.0 Large Form Factor (LFF)"
> +  },
> +  {
> +    0x28,
> +    L"OCP NIC Prior to 3.0"
> +  },
> +
>    {
>      SlotTypeCXLFlexbus10,
>      L"CXL Flexbus 1.0"
> @@ -1566,6 +1587,42 @@ TABLE_ITEM  SystemSlotTypeTable[] = {
>    {
>      SlotTypePciExpressGen4X16,
>      L"PCI Express Gen 4 X16"
> +  },
> +  {
> +    SlotTypePCIExpressGen5,
> +    L"PCI Express Gen 5"
> +  },
> +  {
> +    SlotTypePCIExpressGen5X1,
> +    L"PCI Express Gen 5 x1"
> +  },
> +  {
> +    SlotTypePCIExpressGen5X2,
> +    L"PCI Express Gen 5 x2"
> +  },
> +  {
> +    SlotTypePCIExpressGen5X4,
> +    L"PCI Express Gen 5 x4"
> +  },
> +  {
> +    SlotTypePCIExpressGen5X8,
> +    L"PCI Express Gen 5 x8"
> +  },
> +  {
> +    SlotTypePCIExpressGen5X16,
> +    L"PCI Express Gen 5 x16"
> +  },
> +  {
> +    SlotTypePCIExpressGen6andBeyond,
> +    L"PCI Express Gen 6 and Beyond"
> +  },
> +  {
> +    SlotTypeEnterpriseandDatacenter1UE1FormFactorSlot,
> +    L"Enterprise and Datacenter 1U E1 Form Factor Slot"
> +  },
> +  {
> +    SlotTypeEnterpriseandDatacenter3E3FormFactorSlot,
> +    L"Enterprise and Datacenter 3'E3 Form Factor Slot"
>    }
>  };
> 
> @@ -1628,6 +1685,96 @@ TABLE_ITEM  SystemSlotDataBusWidthTable[] = {
>    }
>  };
> 
> +TABLE_ITEM  SystemSlotPhysicalWidthTable[] = {
> +  {
> +    0x01,
> +    L" Other"
> +  },
> +  {
> +    0x02,
> +    L" Unknown"
> +  },
> +  {
> +    0x03,
> +    L" 8 bit"
> +  },
> +  {
> +    0x04,
> +    L" 16 bit"
> +  },
> +  {
> +    0x05,
> +    L" 32 bit"
> +  },
> +  {
> +    0x06,
> +    L" 64 bit"
> +  },
> +  {
> +    0x07,
> +    L" 128 bit"
> +  },
> +  {
> +    0x08,
> +    L" 1x or x1"
> +  },
> +  {
> +    0x09,
> +    L" 2x or x2"
> +  },
> +  {
> +    0x0A,
> +    L" 4x or x4"
> +  },
> +  {
> +    0x0B,
> +    L" 8x or x8"
> +  },
> +  {
> +    0x0C,
> +    L" 12x or x12"
> +  },
> +  {
> +    0x0D,
> +    L" 16x or x16"
> +  },
> +  {
> +    0x0E,
> +    L" 32x or x32"
> +  }
> +};
> +
> +TABLE_ITEM  SystemSlotInformationTable[] = {
> +  {
> +    0x00,
> +    L" Others"
> +  },
> +  {
> +    0x01,
> +    L" Gen 1"
> +  },
> +  {
> +    0x02,
> +    L" Gen 2"
> +  },
> +  {
> +    0x03,
> +    L" Gen 3"
> +  },
> +  {
> +    0x04,
> +    L" Gen 4"
> +  },
> +  {
> +    0x05,
> +    L" Gen 5"
> +  },
> +  {
> +    0x06,
> +    L" Gen 6"
> +  }
> +};
> +
>  TABLE_ITEM  SystemSlotCurrentUsageTable[] = {
>    {
>      0x01,
> @@ -1670,6 +1817,30 @@ TABLE_ITEM  SystemSlotLengthTable[] = {
>    },
>  };
> 
> +TABLE_ITEM  SystemSlotHeightTable[] = {
> +  {
> +    0x00,
> +    L" Not applicable"
> +  },
> +  {
> +    0x01,
> +    L" Other"
> +  },
> +  {
> +    0x02,
> +    L" Unkown"
> +  },
> +  {
> +    0x03,
> +    L" Full height"
> +  },
> +  {
> +    0x04,
> +    L" Low-Profile"
> +  },
> +
> +};
> +
>  TABLE_ITEM  SlotCharacteristics1Table[] = {
>    {
>      0,
> @@ -1722,6 +1893,22 @@ TABLE_ITEM  SlotCharacteristics2Table[] = {
>    {
>      3,
>      L" PCIe slot supports bifurcation"
> +  },
> +  {
> +    4,
> +    L" Slot supports async/surprise removal"
> +  },
> +  {
> +    5,
> +    L" Flexbus slot, CXL 1.0 capable"
> +  },
> +  {
> +    6,
> +    L" Flexbus slot, CXL 2.0 capable"
> +  },
> +  {
> +    7,
> +    L" Reserved"
>    }
>  };
> 
> @@ -4208,6 +4395,57 @@ DisplaySlotCharacteristics2 (
>    PRINT_BITS_INFO (SlotCharacteristics2Table, Chara2);  }
> 
> +/**
> +  Display System Slots (Type 9) Information.
> +
> +  @param[in] Width      The key of the structure.
> +  @param[in] Option     The optional information.
> +**/
> +VOID
> +DisplaySystemSlotInformation (
> +  IN UINT8  Width,
> +  IN UINT8  Option
> +  )
> +{
> +  ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> +(STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_INFORMATION),
> +gShellDebug1HiiHandle);
> +  PRINT_INFO_OPTION (Width, Option);
> +  PRINT_TABLE_ITEM (SystemSlotInformationTable, Width); }
> +
> +/**
> +  Display System Slots (Type 9) Physical Width.
> +
> +  @param[in] Width      The key of the structure.
> +  @param[in] Option     The optional information.
> +**/
> +VOID
> +DisplaySystemSlotPhysicalWidth (
> +  IN UINT8  Width,
> +  IN UINT8  Option
> +  )
> +{
> +  ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> +(STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_PHYSICAL_WIDTH),
> +gShellDebug1HiiHandle);
> +  PRINT_INFO_OPTION (Width, Option);
> +  PRINT_TABLE_ITEM (SystemSlotPhysicalWidthTable, Width); }
> +
> +/**
> +  Display System Slots (Type 9) slot height.
> +
> +  @param[in] Length     The key of the structure.
> +  @param[in] Option     The optional information.
> +**/
> +VOID
> +DisplaySystemSlotHeight (
> +  IN UINT8  Length,
> +  IN UINT8  Option
> +  )
> +{
> +  ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> +(STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_HEIGHT),
> gShellDebug1HiiHandle);
> +  PRINT_INFO_OPTION (Length, Option);
> +  PRINT_TABLE_ITEM (SystemSlotHeightTable, Length); }
> +
>  /**
>    Display On Board Devices Information (Type 10) types.
> 
> diff --git
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.
> h
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.
> h
> index 5111d35f63..5f062762b3 100644
> ---
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.
> h
> +++
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.
> +++ h
> @@ -415,6 +415,42 @@ DisplaySlotCharacteristics2 (
>    IN UINT8  Option
>    );
> 
> +/**
> +  Display System Slots (Type 9) Information.
> +
> +  @param[in] Width      The key of the structure.
> +  @param[in] Option     The optional information.
> +**/
> +VOID
> +DisplaySystemSlotInformation (
> +  IN UINT8  Width,
> +  IN UINT8  Option
> +  );
> +
> +/**
> +  Display System Slots (Type 9) Physical Width.
> +
> +  @param[in] Width      The key of the structure.
> +  @param[in] Option     The optional information.
> +**/
> +VOID
> +DisplaySystemSlotPhysicalWidth (
> +  IN UINT8  Width,
> +  IN UINT8  Option
> +  );
> +
> +/**
> +  Display System Slots (Type 9) slot height.
> +
> +  @param[in] Length     The key of the structure.
> +  @param[in] Option     The optional information.
> +**/
> +VOID
> +DisplaySystemSlotHeight (
> +  IN UINT8  Length,
> +  IN UINT8  Option
> +  );
> +
>  /**
>    Display On Board Devices Information (Type 10) types.
> 
> diff --git
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosView
> Strings.uni
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosView
> Strings.uni
> index 9433e8a25f..a8728d6abc 100644
> ---
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosView
> Strings.uni
> +++
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosView
> S
> +++ trings.uni
> @@ -294,7 +294,7 @@
>  #string STR_SMBIOSVIEW_PRINTINFO_MEM_SIZE                       #language en-
> US " Memory Size: %d MB\r\n"
>  #string STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_DOUBLE_BANK
> #language en-US "The memory module has a Double-bank connection\r\n"
>  #string STR_SMBIOSVIEW_PRINTINFO_MEM_MODULE_SINGLE_BANK
> #language en-US "The memory module has a Single-bank connection\r\n"
> -#string STR_SMBIOSVIEW_PRINTINFO_SLOT_ID                        #language en-
> US " Slot Id:"
> +#string STR_SMBIOSVIEW_PRINTINFO_SLOT_ID                        #language en-
> US "Slot Id:"
>  #string STR_SMBIOSVIEW_PRINTINFO_LOGICAL_MICRO_CHAN
> #language en-US " the logical Micro Channel slot number is:"
>  #string STR_SMBIOSVIEW_PRINTINFO_ONE_VAR_D                      #language
> en-US " %d\r\n"
>  #string STR_SMBIOSVIEW_PRINTINFO_ERROR_NOT_1_15
> #language en-US " error, not 1-15.\r\n"
> @@ -412,6 +412,9 @@
>  #string STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_LENGTH
> #language en-US "System Slot Length: "
>  #string STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS
> #language en-US "Slot characteristics 1: "
>  #string STR_SMBIOSVIEW_QUERYTABLE_SLOT_CHARACTERISTICS_2
> #language en-US "Slot characteristics 2: "
> +#string STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_INFORMATION
> #language en-US "System Slot Information: "
> +#string STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_HEIGHT
> #language en-US "System Slot Height: "
> +#string STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_SLOT_PHYSICAL_WIDTH
> #language en-US "System Slot Physical Width: "
>  #string STR_SMBIOSVIEW_QUERYTABLE_ONBOARD_DEVICE_TYPE
> #language en-US "Onboard Device Type: "
>  #string STR_SMBIOSVIEW_QUERYTABLE_SYSTEM_EVENT_LOG_TYPE
> #language en-US "System Event Log Type: "
>  #string STR_SMBIOSVIEW_QUERYTABLE_EVENT_LOG_VAR_DATA_FORMAT
> #language en-US "Event Log Variable Data Format Types: "
> --
> 2.32.0.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#88749): https://edk2.groups.io/g/devel/message/88749
Mute This Topic: https://groups.io/mt/90330104/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to