]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/Tcg/TcgDxe/TcgDxe.c
Create PCDs in MdeModulePkg for ACPI table OEM_ID/OEM_TABLE_ID/OEM_REVISION/CREATOR_I...
[mirror_edk2.git] / SecurityPkg / Tcg / TcgDxe / TcgDxe.c
index b8221b19a6932a6d0755dd1f80484354abba143f..4f3568ba840123b9acde334cb67499ec99f0fb3b 100644 (file)
@@ -8,7 +8,7 @@ buffer overflow, integer overflow.
 \r
 TcgDxePassThroughToTpm() will receive untrusted input and do basic validation.\r
 \r
-Copyright (c) 2005 - 2012, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2005 - 2013, Intel Corporation. All rights reserved.<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
@@ -204,7 +204,7 @@ GetProcessorsCpuLocation (
   Status = gBS->AllocatePool(\r
                   EfiBootServicesData,\r
                   sizeof(EFI_CPU_PHYSICAL_LOCATION) * ProcessorNum,\r
-                  &ProcessorLocBuf\r
+                  (VOID **) &ProcessorLocBuf\r
                   );\r
   if (EFI_ERROR(Status)){\r
     return Status;\r
@@ -1177,6 +1177,7 @@ InstallAcpiTable (
   EFI_STATUS                        Status;\r
   EFI_ACPI_TABLE_PROTOCOL           *AcpiTable;\r
   UINT8                             Checksum;\r
+  UINT64                            OemTableId;\r
 \r
   Status = gBS->LocateProtocol (&gEfiAcpiTableProtocolGuid, NULL, (VOID **)&AcpiTable);\r
   if (EFI_ERROR (Status)) {\r
@@ -1184,7 +1185,12 @@ InstallAcpiTable (
   }\r
 \r
   if (PcdGet8 (PcdTpmPlatformClass) == TCG_PLATFORM_TYPE_CLIENT) {\r
\r
+    CopyMem (mTcgClientAcpiTemplate.Header.OemId, PcdGetPtr (PcdAcpiDefaultOemId), sizeof (mTcgClientAcpiTemplate.Header.OemId));\r
+    OemTableId = PcdGet64 (PcdAcpiDefaultOemTableId);\r
+    CopyMem (&mTcgClientAcpiTemplate.Header.OemTableId, &OemTableId, sizeof (UINT64));\r
+    mTcgClientAcpiTemplate.Header.OemRevision      = PcdGet32 (PcdAcpiDefaultOemRevision);\r
+    mTcgClientAcpiTemplate.Header.CreatorId        = PcdGet32 (PcdAcpiDefaultCreatorId);\r
+    mTcgClientAcpiTemplate.Header.CreatorRevision  = PcdGet32 (PcdAcpiDefaultCreatorRevision);\r
     //\r
     // The ACPI table must be checksumed before calling the InstallAcpiTable() \r
     // service of the ACPI table protocol to install it.\r
@@ -1199,7 +1205,12 @@ InstallAcpiTable (
                             &TableKey\r
                             );\r
   } else {\r
-\r
+    CopyMem (mTcgServerAcpiTemplate.Header.OemId, PcdGetPtr (PcdAcpiDefaultOemId), sizeof (mTcgServerAcpiTemplate.Header.OemId));\r
+    OemTableId = PcdGet64 (PcdAcpiDefaultOemTableId);\r
+    CopyMem (&mTcgServerAcpiTemplate.Header.OemTableId, &OemTableId, sizeof (UINT64));\r
+    mTcgServerAcpiTemplate.Header.OemRevision      = PcdGet32 (PcdAcpiDefaultOemRevision);\r
+    mTcgServerAcpiTemplate.Header.CreatorId        = PcdGet32 (PcdAcpiDefaultCreatorId);\r
+    mTcgServerAcpiTemplate.Header.CreatorRevision  = PcdGet32 (PcdAcpiDefaultCreatorRevision);\r
     //\r
     // The ACPI table must be checksumed before calling the InstallAcpiTable() \r
     // service of the ACPI table protocol to install it.\r