Yes. I also prefer to have two patches. > -----Original Message----- > From: Zeng, Star <star.z...@intel.com> > Sent: Monday, April 11, 2022 11:46 AM > To: Ke, Bo-ChangX <bo-changx...@intel.com>; devel@edk2.groups.io > Cc: Bi, Dandan <dandan...@intel.com>; Gao, Liming <gaolim...@byosoft.com.cn>; > Kinney, Michael D > <michael.d.kin...@intel.com>; Liu, Zhiguang <zhiguang....@intel.com>; Ni, Ray > <ray...@intel.com>; Gao, Zhichao > <zhichao....@intel.com>; Zeng, Star <star.z...@intel.com> > Subject: RE: [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields > > Personally, you'd better to split this one patch to two, one is for MdePkg > and another is for ShellPkg. > Also cc MdePkg and ShellPkg maintainers. > > > Thanks, > Star > -----Original Message----- > From: Ke, Bo-ChangX <bo-changx...@intel.com> > Sent: Friday, April 8, 2022 1:55 PM > To: devel@edk2.groups.io > Cc: Bi, Dandan <dandan...@intel.com>; Zeng, Star <star.z...@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: Dandan Bi <dandan...@intel.com> > Cc: Star Zeng <star.z...@intel.com> > --- > MdePkg/Include/IndustryStandard/SmBios.h | 50 +++- > .../SmbiosView/PrintInfo.c | 11 +- > .../SmbiosView/QueryTable.c | 238 ++++++++++++++++++ > .../SmbiosView/QueryTable.h | 36 +++ > .../SmbiosView/SmbiosViewStrings.uni | 5 +- > 5 files changed, 334 insertions(+), 6 deletions(-) > > diff --git a/MdePkg/Include/IndustryStandard/SmBios.h > b/MdePkg/Include/IndustryStandard/SmBios.h > index 2b1567b052..cb39470c92 100644 > --- a/MdePkg/Include/IndustryStandard/SmBios.h > +++ b/MdePkg/Include/IndustryStandard/SmBios.h > @@ -1306,6 +1306,11 @@ typedef enum { > SlotTypePciExpressMini52pinWithBSKO = 0x21, ///< PCI Express Mini > 52-pin (CEM spec. 2.0) with bottom-side keep- > outs. > SlotTypePciExpressMini52pinWithoutBSKO = 0x22, ///< PCI Express Mini > 52-pin (CEM spec. 2.0) without bottom-side > keep-outs. > SlotTypePciExpressMini76pin = 0x23, ///< PCI Express Mini > 76-pin (CEM spec. 2.0) Corresponds to Display-Mini > card. > + SlotTypePCIExpressGen4SFF_8639 = 0x24, ///< U.2 > + SlotTypePCIExpressGen5SFF_8639 = 0x25, ///< U.2 > + SlotTypeOCPNIC30SmallFormFactor = 0x26, ///< SFF > + SlotTypeOCPNIC30LargeFormFactor = 0x27, ///< LFF > + SlotTypeOCPNICPriorto30 = 0x28, > SlotTypeCXLFlexbus10 = 0x30, > SlotTypePC98C20 = 0xA0, > SlotTypePC98C24 = 0xA1, > @@ -1335,7 +1340,17 @@ typedef enum { > SlotTypePciExpressGen4X2 = 0xBA, > SlotTypePciExpressGen4X4 = 0xBB, > SlotTypePciExpressGen4X8 = 0xBC, > - SlotTypePciExpressGen4X16 = 0xBD > + SlotTypePciExpressGen4X16 = 0xBD, > + SlotTypePCIExpressGen5 = 0xBE, > + SlotTypePCIExpressGen5X1 = 0xBF, > + SlotTypePCIExpressGen5X2 = 0xC0, > + SlotTypePCIExpressGen5X4 = 0xC1, > + SlotTypePCIExpressGen5X8 = 0xC2, > + SlotTypePCIExpressGen5X16 = 0xC3, > + SlotTypePCIExpressGen6andBeyond = 0xC4, > + SlotTypeEnterpriseandDatacenter1UE1FormFactorSlot = 0xC5, > + SlotTypeEnterpriseandDatacenter3E3FormFactorSlot = 0xC6 > + > } MISC_SLOT_TYPE; > > /// > @@ -1358,6 +1373,39 @@ typedef enum { > SlotDataBusWidth32X = 0x0E ///< Or X32 > } MISC_SLOT_DATA_BUS_WIDTH; > > +/// > +/// System Slots - Slot Physical Width. > +/// > +typedef enum { > + SlotPhysicalWidthOther = 0x01, > + SlotPhysicalWidthUnknown = 0x02, > + SlotPhysicalWidth8Bit = 0x03, > + SlotPhysicalWidth16Bit = 0x04, > + SlotPhysicalWidth32Bit = 0x05, > + SlotPhysicalWidth64Bit = 0x06, > + SlotPhysicalWidth128Bit = 0x07, > + SlotPhysicalWidth1X = 0x08, ///< Or X1 > + SlotPhysicalWidth2X = 0x09, ///< Or X2 > + SlotPhysicalWidth4X = 0x0A, ///< Or X4 > + SlotPhysicalWidth8X = 0x0B, ///< Or X8 > + SlotPhysicalWidth12X = 0x0C, ///< Or X12 > + SlotPhysicalWidth16X = 0x0D, ///< Or X16 > + SlotPhysicalWidth32X = 0x0E ///< Or X32 > +} MISC_SLOT_PHYSICAL_WIDTH; > + > +/// > +/// System Slots - Slot Information. > +/// > +typedef enum{ > + others = 0x00, > + Gen1 = 0x01, > + Gen2 = 0x01, > + Gen3 = 0x03, > + Gen4 = 0x04, > + Gen5 = 0x05, > + Gen6 = 0x06 > +}MISC_SLOT_INFORMATION; > + > /// > /// System Slots - Current Usage. > /// > 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); > + } > + } > > 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/SmbiosViewStrings.uni > b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosViewStrings.uni > index 9433e8a25f..a8728d6abc 100644 > --- > a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosViewStrings.uni > +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosViewS > +++ 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 (#88681): https://edk2.groups.io/g/devel/message/88681 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] -=-=-=-=-=-=-=-=-=-=-=-