* [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields
@ 2022-04-08 5:38 Bo Chang Ke
0 siblings, 0 replies; 7+ messages in thread
From: Bo Chang Ke @ 2022-04-08 5:38 UTC (permalink / raw)
To: devel; +Cc: Dandan Bi, Star Zeng
Signed-off-by: Bo Chang Ke <bo-changx.ke@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Star Zeng <star.zeng@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/SmbiosViewStrings.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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields
@ 2022-04-08 5:55 Bo Chang Ke
2022-04-11 3:45 ` Zeng, Star
0 siblings, 1 reply; 7+ messages in thread
From: Bo Chang Ke @ 2022-04-08 5:55 UTC (permalink / raw)
To: devel; +Cc: Dandan Bi, Star Zeng
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3896
update smbiosview type 9 related fileds.
Signed-off-by: Bo Chang Ke <bo-changx.ke@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Star Zeng <star.zeng@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/SmbiosViewStrings.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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields
2022-04-08 5:55 Bo Chang Ke
@ 2022-04-11 3:45 ` Zeng, Star
2022-04-11 5:54 ` Ni, Ray
0 siblings, 1 reply; 7+ messages in thread
From: Zeng, Star @ 2022-04-11 3:45 UTC (permalink / raw)
To: Ke, Bo-ChangX, devel@edk2.groups.io
Cc: Bi, Dandan, Gao, Liming, Kinney, Michael D, Liu, Zhiguang,
Ni, Ray, Gao, Zhichao, Zeng, Star
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.ke@intel.com>
Sent: Friday, April 8, 2022 1:55 PM
To: devel@edk2.groups.io
Cc: Bi, Dandan <dandan.bi@intel.com>; Zeng, Star <star.zeng@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.ke@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Star Zeng <star.zeng@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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields
2022-04-11 3:45 ` Zeng, Star
@ 2022-04-11 5:54 ` Ni, Ray
2022-04-11 5:57 ` Bo Chang Ke
0 siblings, 1 reply; 7+ messages in thread
From: Ni, Ray @ 2022-04-11 5:54 UTC (permalink / raw)
To: Zeng, Star, Ke, Bo-ChangX, devel@edk2.groups.io
Cc: Bi, Dandan, Gao, Liming, Kinney, Michael D, Liu, Zhiguang,
Gao, Zhichao
Yes. I also prefer to have two patches.
> -----Original Message-----
> From: Zeng, Star <star.zeng@intel.com>
> Sent: Monday, April 11, 2022 11:46 AM
> To: Ke, Bo-ChangX <bo-changx.ke@intel.com>; devel@edk2.groups.io
> Cc: Bi, Dandan <dandan.bi@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Liu, Zhiguang <zhiguang.liu@intel.com>; Ni, Ray <ray.ni@intel.com>; Gao, Zhichao
> <zhichao.gao@intel.com>; Zeng, Star <star.zeng@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.ke@intel.com>
> Sent: Friday, April 8, 2022 1:55 PM
> To: devel@edk2.groups.io
> Cc: Bi, Dandan <dandan.bi@intel.com>; Zeng, Star <star.zeng@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.ke@intel.com>
> Cc: Dandan Bi <dandan.bi@intel.com>
> Cc: Star Zeng <star.zeng@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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields
2022-04-11 5:54 ` Ni, Ray
@ 2022-04-11 5:57 ` Bo Chang Ke
0 siblings, 0 replies; 7+ messages in thread
From: Bo Chang Ke @ 2022-04-11 5:57 UTC (permalink / raw)
To: Ni, Ray, Zeng, Star, devel@edk2.groups.io
Cc: Bi, Dandan, Gao, Liming, Kinney, Michael D, Liu, Zhiguang,
Gao, Zhichao
Got it, I'll split it, thank you
Best Regards.
-----Original Message-----
From: Ni, Ray <ray.ni@intel.com>
Sent: Monday, April 11, 2022 1:55 PM
To: Zeng, Star <star.zeng@intel.com>; Ke, Bo-ChangX <bo-changx.ke@intel.com>; devel@edk2.groups.io
Cc: Bi, Dandan <dandan.bi@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Kinney, Michael D <michael.d.kinney@intel.com>; Liu, Zhiguang <zhiguang.liu@intel.com>; Gao, Zhichao <zhichao.gao@intel.com>
Subject: RE: [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields
Yes. I also prefer to have two patches.
> -----Original Message-----
> From: Zeng, Star <star.zeng@intel.com>
> Sent: Monday, April 11, 2022 11:46 AM
> To: Ke, Bo-ChangX <bo-changx.ke@intel.com>; devel@edk2.groups.io
> Cc: Bi, Dandan <dandan.bi@intel.com>; Gao, Liming
> <gaoliming@byosoft.com.cn>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Liu, Zhiguang <zhiguang.liu@intel.com>;
> Ni, Ray <ray.ni@intel.com>; Gao, Zhichao <zhichao.gao@intel.com>;
> Zeng, Star <star.zeng@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.ke@intel.com>
> Sent: Friday, April 8, 2022 1:55 PM
> To: devel@edk2.groups.io
> Cc: Bi, Dandan <dandan.bi@intel.com>; Zeng, Star <star.zeng@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.ke@intel.com>
> Cc: Dandan Bi <dandan.bi@intel.com>
> Cc: Star Zeng <star.zeng@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/SmbiosViewStr
> ings.uni
> b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosViewStr
> ings.uni
> index 9433e8a25f..a8728d6abc 100644
> ---
> a/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosViewStr
> ings.uni
> +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosVie
> +++ wS
> +++ 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
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields
@ 2022-04-11 7:04 Bo Chang Ke
2022-04-12 0:48 ` Gao, Zhichao
0 siblings, 1 reply; 7+ messages in thread
From: Bo Chang Ke @ 2022-04-11 7:04 UTC (permalink / raw)
To: devel; +Cc: Ray Ni, Zhichao Gao
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3896
update smbiosview type 9 related fileds.
Signed-off-by: Bo Chang Ke <bo-changx.ke@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Zhichao Gao <zhichao.gao@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);
+ }
+ }
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/SmbiosViewStrings.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
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields
2022-04-11 7:04 Bo Chang Ke
@ 2022-04-12 0:48 ` Gao, Zhichao
0 siblings, 0 replies; 7+ messages in thread
From: Gao, Zhichao @ 2022-04-12 0:48 UTC (permalink / raw)
To: Ke, Bo-ChangX, devel@edk2.groups.io; +Cc: Ni, Ray
> -----Original Message-----
> From: Ke, Bo-ChangX <bo-changx.ke@intel.com>
> Sent: Monday, April 11, 2022 3:05 PM
> To: devel@edk2.groups.io
> Cc: Ni, Ray <ray.ni@intel.com>; Gao, Zhichao <zhichao.gao@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.ke@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Zhichao Gao <zhichao.gao@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
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-04-12 0:48 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-08 5:38 [PATCH] ShellPkg: Update smbiosview type 9 with SMBIOS 3.5 fields Bo Chang Ke
-- strict thread matches above, loose matches on Subject: below --
2022-04-08 5:55 Bo Chang Ke
2022-04-11 3:45 ` Zeng, Star
2022-04-11 5:54 ` Ni, Ray
2022-04-11 5:57 ` Bo Chang Ke
2022-04-11 7:04 Bo Chang Ke
2022-04-12 0:48 ` Gao, Zhichao
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox