PRINT_STRUCT_VALUE_H (Struct, Type42, InterfaceType);\r
break;\r
\r
+ //\r
+ // TPM Device (Type 43)\r
+ //\r
+ case 43:\r
+ PRINT_BIT_FIELD (Struct, Type43, VendorID, 4);\r
+ PRINT_STRUCT_VALUE_H (Struct, Type43, MajorSpecVersion);\r
+ PRINT_STRUCT_VALUE_H (Struct, Type43, MinorSpecVersion);\r
+ PRINT_STRUCT_VALUE_H (Struct, Type43, FirmwareVersion1);\r
+ PRINT_STRUCT_VALUE_H (Struct, Type43, FirmwareVersion2);\r
+ PRINT_PENDING_STRING (Struct, Type43, Description);\r
+ DisplayTpmDeviceCharacteristics (ReadUnaligned64 ((UINT64 *) (UINTN) &(Struct->Type43->Characteristics)), Option);\r
+ PRINT_STRUCT_VALUE_H (Struct, Type43, OemDefined);\r
+ break;\r
+\r
//\r
// Inactive (Type 126)\r
//\r
ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_POWER_SUPPLY_NOT_REPLACE), gShellDebug1HiiHandle);\r
}\r
}\r
+\r
+/**\r
+ Display TPM Device (Type 43) Characteristics.\r
+\r
+ @param[in] Chara The information bits.\r
+ @param[in] Option The optional information.\r
+**/\r
+VOID\r
+DisplayTpmDeviceCharacteristics (\r
+ IN UINT64 Chara,\r
+ IN UINT8 Option\r
+ )\r
+{\r
+ //\r
+ // Print header\r
+ //\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR), gShellDebug1HiiHandle);\r
+ //\r
+ // print option\r
+ //\r
+ PRINT_INFO_OPTION (Chara, Option);\r
+\r
+ //\r
+ // Check all the bits and print information\r
+ // This function does not use Table because table of bits\r
+ // are designed not to deal with UINT64\r
+ //\r
+ if (BIT (Chara, 0) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), gShellDebug1HiiHandle);\r
+ }\r
+\r
+ if (BIT (Chara, 1) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_RESERVED_BIT), gShellDebug1HiiHandle);\r
+ }\r
+ if (BIT (Chara, 2) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED), gShellDebug1HiiHandle);\r
+ }\r
+\r
+ if (BIT (Chara, 3) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU), gShellDebug1HiiHandle);\r
+ }\r
+\r
+ if (BIT (Chara, 4) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW), gShellDebug1HiiHandle);\r
+ }\r
+\r
+ if (BIT (Chara, 5) != 0) {\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM), gShellDebug1HiiHandle);\r
+ }\r
+\r
+ //\r
+ // Just print the Reserved\r
+ //\r
+ ShellPrintHiiEx(-1,-1,NULL,STRING_TOKEN (STR_SMBIOSVIEW_PRINTINFO_BITS_06_63), gShellDebug1HiiHandle);\r
+\r
+}\r