]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg/SmbiosView: Add decoding of SMBIOS record type 43
authorLinson Augustine <linson.augustine@hpe.com>
Thu, 12 Jan 2017 06:59:36 +0000 (14:59 +0800)
committerStar Zeng <star.zeng@intel.com>
Fri, 13 Jan 2017 01:15:57 +0000 (09:15 +0800)
Added decoding of the new SMBIOS Type 43 record.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Augustine Linson P <linson.augustine@hpe.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.c
ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/PrintInfo.h
ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/QueryTable.c
ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView/SmbiosViewStrings.uni

index 000bbe53a71d2710ae448e34b4cd6f9e53b11f4b..d9adb1a7abb99f78da0d60c4dcf77da1f0b64e41 100644 (file)
@@ -1095,6 +1095,20 @@ SmbiosPrintStructure (
     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
@@ -3238,3 +3252,59 @@ DisplaySPSCharacteristics (
     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
index 50667b684c531d5620e43a5d8dae269817ec34a5..1aa5bee08f092cb54f28907a31f0efc627b706b7 100644 (file)
@@ -2,6 +2,7 @@
   Module to clarify the element info of the smbios structure.\r
 \r
   Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.<BR>\r
+  (C) Copyright 2017 Hewlett Packard Enterprise Development LP<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -420,4 +421,16 @@ DisplaySPSCharacteristics (
   IN UINT8   Option\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
 #endif\r
index d0106c0b55158914d6adcea97c047cabd2f35b07..b802c5450907d3f0c058a5530a973489c3d20dc7 100644 (file)
@@ -3,7 +3,7 @@
   And give a interface of query a string out of a table.\r
 \r
   Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.<BR>\r
-  (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
+  (C) Copyright 2016-2017 Hewlett Packard Enterprise Development LP<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -3189,6 +3189,10 @@ TABLE_ITEM  StructureTypeInfoTable[] = {
     42,\r
     L" Management Controller Host Interface"\r
   },\r
+  {\r
+    43,\r
+    L" TPM Device"\r
+  },\r
   {\r
     0x7E,\r
     L" Inactive"\r
index 9811542013c21cba32f1fc362c629753a3bc6c53..0596f1fb3126cdd9fdc1ba38897a9f148183c81c 100644 (file)
@@ -2,7 +2,7 @@
 //\r
 // Copyright (c) 2005 - 2015, Intel Corporation. All rights reserved.<BR>\r
 // (C) Copyright 2014-2015 Hewlett-Packard Development Company, L.P.<BR>\r
-// (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
+// (C) Copyright 2015-2017 Hewlett Packard Enterprise Development LP<BR>\r
 // This program and the accompanying materials\r
 // are licensed and made available under the terms and conditions of the BSD License\r
 // which accompanies this distribution. The full text of the license may be found at\r
 #string STR_SMBIOSVIEW_SMBIOSVIEW_SMBIOS_TABLE                  #language en-US "SmbiosView: SMBIOS table damaged\r\n"\r
 #string STR_SMBIOSVIEW_SMBIOSVIEW_OUT_OF_MEM                    #language en-US "SmbiosView: Out of memory\r\n"\r
 #string STR_SMBIOSVIEW_SMBIOSVIEW_CANNOT_ACCESS_STATS           #language en-US "SmbiosView: Cannot access statistics table\r\n"\r
+#string STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR                #language en-US "TPM Device Characteristics: \r\n"\r
+#string STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CHAR_NOT_SUPPORTED  #language en-US "TPM Device Characteristics Not Supported\r\n"\r
+#string STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_FWU          #language en-US "Family configurable via firmware update\r\n"\r
+#string STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_PLAT_SW      #language en-US "Family configurable via platform software support\r\n"\r
+#string STR_SMBIOSVIEW_PRINTINFO_TPM_DEVICE_CONFIG_OEM          #language en-US "Family configurable via OEM proprietary mechanism\r\n"\r
+#string STR_SMBIOSVIEW_PRINTINFO_BITS_06_63                     #language en-US "Bits 6:63 are reserved\r\n"\r
 \r