Revision: 18808
          http://sourceforge.net/p/edk2/code/18808
Author:   vanjeff
Date:     2015-11-16 08:06:55 +0000 (Mon, 16 Nov 2015)
Log Message:
-----------
Move Smbios measurement from TCG driver to Smbios driver.

This is patch to remove smbios measurement in TCG driver. There will be other 
patch to add it in Smbios driver.

The problem of current SMBIOS measurement is:
1) TCG drivers do not support SMBIOS3.0 table.
2) TCG drivers do not follow TCG platform spec on: "Platform configuration 
information that is automatically updated,
 such as clock registers, and system unique information, such as asset numbers 
or serial numbers,
 MUST NOT be measured into PCR [1], or any other PCR."

So we decide to move Smbios measurement from TCG drivers to Smbios driver.

(Sync patch r18677 from main trunk.)

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: "Yao, Jiewen" <[email protected]>
Reviewed-by: "Zhang, Chao B" <[email protected]>

Revision Links:
--------------
    http://sourceforge.net/p/edk2/code/18677

Modified Paths:
--------------
    branches/UDK2015/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c
    branches/UDK2015/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf
    branches/UDK2015/SecurityPkg/Tcg/TcgDxe/TcgDxe.c
    branches/UDK2015/SecurityPkg/Tcg/TcgDxe/TcgDxe.inf
    branches/UDK2015/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c
    branches/UDK2015/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.inf

Modified: branches/UDK2015/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c
===================================================================
--- branches/UDK2015/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c  2015-11-16 08:05:37 UTC 
(rev 18807)
+++ branches/UDK2015/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.c  2015-11-16 08:06:55 UTC 
(rev 18808)
@@ -15,11 +15,9 @@
 #include <PiDxe.h>
 #include <IndustryStandard/Acpi.h>
 #include <IndustryStandard/PeImage.h>
-#include <IndustryStandard/SmBios.h>
 #include <IndustryStandard/TcpaAcpi.h>
 
 #include <Guid/GlobalVariable.h>
-#include <Guid/SmBios.h>
 #include <Guid/HobList.h>
 #include <Guid/TcgEventHob.h>
 #include <Guid/EventGroup.h>
@@ -1690,43 +1688,14 @@
   )
 {
   EFI_STATUS                        Status;
-  SMBIOS_TABLE_ENTRY_POINT          *SmbiosTable;
   TCG_PCR_EVENT_HDR                 TcgEvent;
   EFI_HANDOFF_TABLE_POINTERS        HandoffTables;
   UINTN                             ProcessorNum;
   EFI_CPU_PHYSICAL_LOCATION         *ProcessorLocBuf;
 
   ProcessorLocBuf = NULL;
+  Status = EFI_SUCCESS;
 
-  //
-  // Measure SMBIOS with EV_EFI_HANDOFF_TABLES to PCR[1]
-  //
-  Status = EfiGetSystemConfigurationTable (
-             &gEfiSmbiosTableGuid,
-             (VOID **) &SmbiosTable
-             );
-
-  if (!EFI_ERROR (Status) && SmbiosTable != NULL) {
-    TcgEvent.PCRIndex  = 1;
-    TcgEvent.EventType = EV_EFI_HANDOFF_TABLES;
-    TcgEvent.EventSize = sizeof (HandoffTables);
-
-    HandoffTables.NumberOfTables = 1;
-    HandoffTables.TableEntry[0].VendorGuid  = gEfiSmbiosTableGuid;
-    HandoffTables.TableEntry[0].VendorTable = SmbiosTable;
-
-    DEBUG ((DEBUG_INFO, "The Smbios Table starts at: 0x%x\n", 
SmbiosTable->TableAddress));
-    DEBUG ((DEBUG_INFO, "The Smbios Table size: 0x%x\n", 
SmbiosTable->TableLength));
-
-    Status = TcgDxeHashLogExtendEvent (
-               0,
-               (UINT8*)(UINTN)SmbiosTable->TableAddress,
-               SmbiosTable->TableLength,
-               &TcgEvent,
-               (UINT8*)&HandoffTables
-               );
-  }
-
   if (PcdGet8 (PcdTpmPlatformClass) == TCG_PLATFORM_TYPE_SERVER) {
     //
     // Tcg Server spec. 

Modified: branches/UDK2015/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf
===================================================================
--- branches/UDK2015/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf        2015-11-16 
08:05:37 UTC (rev 18807)
+++ branches/UDK2015/SecurityPkg/Tcg/Tcg2Dxe/Tcg2Dxe.inf        2015-11-16 
08:06:55 UTC (rev 18808)
@@ -61,10 +61,6 @@
   Tcg2PhysicalPresenceLib
 
 [Guids]
-  ## SOMETIMES_CONSUMES     ## SystemTable           # Smbios Table
-  ## SOMETIMES_CONSUMES     ## GUID                  # Handoff Table for 
measurement.
-  gEfiSmbiosTableGuid
-  
   ## SOMETIMES_CONSUMES     ## Variable:L"SecureBoot"
   ## SOMETIMES_CONSUMES     ## Variable:L"PK"
   ## SOMETIMES_CONSUMES     ## Variable:L"KEK"

Modified: branches/UDK2015/SecurityPkg/Tcg/TcgDxe/TcgDxe.c
===================================================================
--- branches/UDK2015/SecurityPkg/Tcg/TcgDxe/TcgDxe.c    2015-11-16 08:05:37 UTC 
(rev 18807)
+++ branches/UDK2015/SecurityPkg/Tcg/TcgDxe/TcgDxe.c    2015-11-16 08:06:55 UTC 
(rev 18808)
@@ -23,11 +23,9 @@
 #include <IndustryStandard/Tpm12.h>
 #include <IndustryStandard/Acpi.h>
 #include <IndustryStandard/PeImage.h>
-#include <IndustryStandard/SmBios.h>
 #include <IndustryStandard/TcpaAcpi.h>
 
 #include <Guid/GlobalVariable.h>
-#include <Guid/SmBios.h>
 #include <Guid/HobList.h>
 #include <Guid/TcgEventHob.h>
 #include <Guid/EventGroup.h>
@@ -748,43 +746,14 @@
   )
 {
   EFI_STATUS                        Status;
-  SMBIOS_TABLE_ENTRY_POINT          *SmbiosTable;
   TCG_PCR_EVENT_HDR                 TcgEvent;
   EFI_HANDOFF_TABLE_POINTERS        HandoffTables;
   UINTN                             ProcessorNum;
   EFI_CPU_PHYSICAL_LOCATION         *ProcessorLocBuf;
 
   ProcessorLocBuf = NULL;
+  Status = EFI_SUCCESS;
 
-  //
-  // Measure SMBIOS with EV_EFI_HANDOFF_TABLES to PCR[1]
-  //
-  Status = EfiGetSystemConfigurationTable (
-             &gEfiSmbiosTableGuid,
-             (VOID **) &SmbiosTable
-             );
-
-  if (!EFI_ERROR (Status) && SmbiosTable != NULL) {
-    TcgEvent.PCRIndex  = 1;
-    TcgEvent.EventType = EV_EFI_HANDOFF_TABLES;
-    TcgEvent.EventSize = sizeof (HandoffTables);
-
-    HandoffTables.NumberOfTables = 1;
-    HandoffTables.TableEntry[0].VendorGuid  = gEfiSmbiosTableGuid;
-    HandoffTables.TableEntry[0].VendorTable = SmbiosTable;
-
-    DEBUG ((DEBUG_INFO, "The Smbios Table starts at: 0x%x\n", 
SmbiosTable->TableAddress));
-    DEBUG ((DEBUG_INFO, "The Smbios Table size: 0x%x\n", 
SmbiosTable->TableLength));
-
-    Status = TcgDxeHashLogExtendEventI (
-               &mTcgDxeData,
-               (UINT8*)(UINTN)SmbiosTable->TableAddress,
-               SmbiosTable->TableLength,
-               &TcgEvent,
-               (UINT8*)&HandoffTables
-               );
-  }
-
   if (PcdGet8 (PcdTpmPlatformClass) == TCG_PLATFORM_TYPE_SERVER) {
     //
     // Tcg Server spec. 

Modified: branches/UDK2015/SecurityPkg/Tcg/TcgDxe/TcgDxe.inf
===================================================================
--- branches/UDK2015/SecurityPkg/Tcg/TcgDxe/TcgDxe.inf  2015-11-16 08:05:37 UTC 
(rev 18807)
+++ branches/UDK2015/SecurityPkg/Tcg/TcgDxe/TcgDxe.inf  2015-11-16 08:06:55 UTC 
(rev 18808)
@@ -54,10 +54,6 @@
   ReportStatusCodeLib
 
 [Guids]
-  ## SOMETIMES_CONSUMES     ## SystemTable           # Smbios Table
-  ## SOMETIMES_CONSUMES     ## GUID                  # Handoff Table for 
measurement.
-  gEfiSmbiosTableGuid
-  
   gEfiGlobalVariableGuid                             ## SOMETIMES_CONSUMES  ## 
Variable:L"BootXXXX"
   gTcgEventEntryHobGuid                              ## SOMETIMES_CONSUMES  ## 
HOB
   gTpmErrorHobGuid                                   ## SOMETIMES_CONSUMES  ## 
HOB

Modified: branches/UDK2015/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c
===================================================================
--- branches/UDK2015/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c  2015-11-16 08:05:37 UTC 
(rev 18807)
+++ branches/UDK2015/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.c  2015-11-16 08:06:55 UTC 
(rev 18808)
@@ -15,11 +15,9 @@
 #include <PiDxe.h>
 #include <IndustryStandard/Acpi.h>
 #include <IndustryStandard/PeImage.h>
-#include <IndustryStandard/SmBios.h>
 #include <IndustryStandard/TcpaAcpi.h>
 
 #include <Guid/GlobalVariable.h>
-#include <Guid/SmBios.h>
 #include <Guid/HobList.h>
 #include <Guid/TcgEventHob.h>
 #include <Guid/EventGroup.h>
@@ -1046,43 +1044,14 @@
   )
 {
   EFI_STATUS                        Status;
-  SMBIOS_TABLE_ENTRY_POINT          *SmbiosTable;
   TCG_PCR_EVENT_HDR                 TcgEvent;
   EFI_HANDOFF_TABLE_POINTERS        HandoffTables;
   UINTN                             ProcessorNum;
   EFI_CPU_PHYSICAL_LOCATION         *ProcessorLocBuf;
 
   ProcessorLocBuf = NULL;
+  Status = EFI_SUCCESS;
 
-  //
-  // Measure SMBIOS with EV_EFI_HANDOFF_TABLES to PCR[1]
-  //
-  Status = EfiGetSystemConfigurationTable (
-             &gEfiSmbiosTableGuid,
-             (VOID **) &SmbiosTable
-             );
-
-  if (!EFI_ERROR (Status) && SmbiosTable != NULL) {
-    TcgEvent.PCRIndex  = 1;
-    TcgEvent.EventType = EV_EFI_HANDOFF_TABLES;
-    TcgEvent.EventSize = sizeof (HandoffTables);
-
-    HandoffTables.NumberOfTables = 1;
-    HandoffTables.TableEntry[0].VendorGuid  = gEfiSmbiosTableGuid;
-    HandoffTables.TableEntry[0].VendorTable = SmbiosTable;
-
-    DEBUG ((DEBUG_INFO, "The Smbios Table starts at: 0x%x\n", 
SmbiosTable->TableAddress));
-    DEBUG ((DEBUG_INFO, "The Smbios Table size: 0x%x\n", 
SmbiosTable->TableLength));
-
-    Status = TcgDxeHashLogExtendEvent (
-               0,
-               (UINT8*)(UINTN)SmbiosTable->TableAddress,
-               SmbiosTable->TableLength,
-               &TcgEvent,
-               (UINT8*)&HandoffTables
-               );
-  }
-
   if (PcdGet8 (PcdTpmPlatformClass) == TCG_PLATFORM_TYPE_SERVER) {
     //
     // Tcg Server spec. 

Modified: branches/UDK2015/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.inf
===================================================================
--- branches/UDK2015/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.inf        2015-11-16 
08:05:37 UTC (rev 18807)
+++ branches/UDK2015/SecurityPkg/Tcg/TrEEDxe/TrEEDxe.inf        2015-11-16 
08:06:55 UTC (rev 18808)
@@ -60,10 +60,6 @@
   ReportStatusCodeLib
 
 [Guids]
-  ## SOMETIMES_CONSUMES     ## SystemTable           # Smbios Table
-  ## SOMETIMES_CONSUMES     ## GUID                  # Handoff Table for 
measurement.
-  gEfiSmbiosTableGuid
-  
   ## SOMETIMES_CONSUMES     ## Variable:L"SecureBoot"
   ## SOMETIMES_CONSUMES     ## Variable:L"PK"
   ## SOMETIMES_CONSUMES     ## Variable:L"KEK"


------------------------------------------------------------------------------
Presto, an open source distributed SQL query engine for big data, initially
developed by Facebook, enables you to easily query your data on Hadoop in a 
more interactive manner. Teradata is also now providing full enterprise
support for Presto. Download a free open source copy now.
http://pubads.g.doubleclick.net/gampad/clk?id=250295911&iu=/4140
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to