#include <Protocol/Capsule.h>\r
#include <Protocol/BusSpecificDriverOverride.h>\r
#include <Protocol/TcgService.h>\r
-#include <Protocol/TcgPlatform.h>\r
#include <Guid/MemoryTypeInformation.h>\r
#include <Guid/FirmwareFileSystem2.h>\r
#include <Guid/HobList.h>\r
gEfiDevicePathProtocolGuid ## CONSUMES\r
gEfiLoadedImageProtocolGuid ## PRODUCES\r
gEfiEbcProtocolGuid ## SOMETIMES_CONSUMES\r
- gEfiTcgPlatformProtocolGuid ## CONSUMES\r
gEfiLoadedImageDevicePathProtocolGuid ## PRODUCES\r
\r
[FixedPcd.common]\r
)\r
{\r
EFI_STATUS Status;\r
- EFI_STATUS StatusTemp;\r
- EFI_TCG_PLATFORM_PROTOCOL *TcgPlatformProtocol;\r
-\r
- //\r
- // Measure invocation of ExitBootServices,\r
- // which is defined by TCG_EFI_Platform_1_20_Final Specification\r
- //\r
- TcgPlatformProtocol = NULL;\r
- Status = CoreLocateProtocol (\r
- &gEfiTcgPlatformProtocolGuid,\r
- NULL,\r
- (VOID **) &TcgPlatformProtocol\r
- );\r
- if (!EFI_ERROR (Status)) {\r
- Status = TcgPlatformProtocol->MeasureAction (EFI_EXIT_BOOT_SERVICES_INVOCATION);\r
- ASSERT_EFI_ERROR (Status);\r
- }\r
\r
//\r
// Terminate memory services if the MapKey matches\r
//\r
Status = CoreTerminateMemoryMap (MapKey);\r
if (EFI_ERROR (Status)) {\r
- //\r
- // Measure failure of ExitBootServices\r
- //\r
- if (TcgPlatformProtocol != NULL) {\r
- StatusTemp = TcgPlatformProtocol->MeasureAction (EFI_EXIT_BOOT_SERVICES_FAILED);\r
- ASSERT_EFI_ERROR (StatusTemp);\r
- }\r
-\r
return Status;\r
}\r
\r
//\r
gRuntime->AtRuntime = TRUE;\r
\r
- //\r
- // Measure success of ExitBootServices\r
- //\r
- if (TcgPlatformProtocol != NULL) {\r
- StatusTemp = TcgPlatformProtocol->MeasureAction (EFI_EXIT_BOOT_SERVICES_SUCCEEDED);\r
- ASSERT_EFI_ERROR (StatusTemp);\r
- }\r
-\r
return Status;\r
}\r
\r
BOOLEAN DstBufAlocated;\r
UINTN Size;\r
UINTN LinkTimeBase;\r
- EFI_TCG_PLATFORM_PROTOCOL *TcgPlatformProtocol;\r
IMAGE_FILE_HANDLE *FHandle;\r
\r
FHandle = NULL;\r
}\r
}\r
\r
- //\r
- // Measure the image before applying fixup\r
- //\r
- Status = CoreLocateProtocol (\r
- &gEfiTcgPlatformProtocolGuid,\r
- NULL,\r
- (VOID **) &TcgPlatformProtocol\r
- );\r
- if (!EFI_ERROR (Status)) {\r
- FHandle = (IMAGE_FILE_HANDLE *) Image->ImageContext.Handle;\r
- Status = TcgPlatformProtocol->MeasurePeImage (\r
- BootPolicy,\r
- (EFI_PHYSICAL_ADDRESS) (UINTN) FHandle->Source,\r
- FHandle->SourceSize,\r
- LinkTimeBase,\r
- Image->ImageContext.ImageType,\r
- Image->Info.DeviceHandle,\r
- Image->Info.FilePath\r
- );\r
-\r
- ASSERT_EFI_ERROR (Status);\r
- }\r
-\r
//\r
// Relocate the image in memory\r
//\r
+++ /dev/null
-/** @file\r
-\r
- Tcg addtional services to measure PeImage and ActionString\r
-\r
-Copyright (c) 2006 - 2008, Intel Corporation \r
-All rights reserved. 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
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-**/\r
-\r
-#ifndef _TCG_PLATFORM_PROTOCOL_H_\r
-#define _TCG_PLATFORM_PROTOCOL_H_\r
-\r
-#define EFI_TCG_PLATFORM_PROTOCOL_GUID \\r
- { 0x8c4c9a41, 0xbf56, 0x4627, { 0x9e, 0xa, 0xc8, 0x38, 0x6d, 0x66, 0x11, 0x5c } }\r
-\r
-typedef struct tdEFI_TCG_PLATFORM_PROTOCOL EFI_TCG_PLATFORM_PROTOCOL;\r
-\r
-//\r
-// EFI TCG Platform Protocol\r
-//\r
-/**\r
- \r
- Measure PE/COFF Image File prior to the application of any fix-ups or relocations.\r
- \r
- @param BootPolicy If TRUE, indicates that the request originates from the boot manager,\r
- and that the boot manager is attempting to load FilePath as a boot selection.\r
- @param ImageAddress The memory address to PE/COFF image.\r
- @param ImageSize The size of PE/COFF image.\r
- @param LinkTimeBase The image base address in the original PeImage.\r
- @param ImageType The subsystem type of the PeImage.\r
- @param DeviceHandle The handle to device matched the file path. \r
- @param FilePath The specific file path from which the image is loaded.\r
- \r
- @retval EFI_SUCCESS Measure successfully.\r
- @retval EFI_UNSUPPORTED The loaded PeImage is not supported.\r
- @retval EFI_OUT_OF_RESOURCES The resource of memory is not enough.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCG_MEASURE_PE_IMAGE)(\r
- IN BOOLEAN BootPolicy,\r
- IN EFI_PHYSICAL_ADDRESS ImageAddress,\r
- IN UINTN ImageSize,\r
- IN UINTN LinkTimeBase,\r
- IN UINT16 ImageType,\r
- IN EFI_HANDLE DeviceHandle,\r
- IN EFI_DEVICE_PATH_PROTOCOL *FilePath\r
- );\r
-\r
-/**\r
- \r
- Measure efi action string.\r
- \r
- @param ActionString Pointer to action string.\r
- \r
- @retval EFI_SUCCESS Measure action string successfully.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_TCG_MEASURE_ACTION)(\r
- IN CHAR8 *ActionString\r
- );\r
-\r
-struct tdEFI_TCG_PLATFORM_PROTOCOL {\r
- EFI_TCG_MEASURE_PE_IMAGE MeasurePeImage;\r
- EFI_TCG_MEASURE_ACTION MeasureAction;\r
-};\r
-\r
-extern EFI_GUID gEfiTcgPlatformProtocolGuid;\r
-\r
-#endif\r
## Include/Protocol/Dpc.h\r
gEfiDpcProtocolGuid = {0x480f8ae9, 0xc46, 0x4aa9, { 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x6 }}\r
\r
- ## Tcg addtional services to measure PeImage and ActionString.\r
- ## Include/Protocol/TcgPlatform.h\r
- gEfiTcgPlatformProtocolGuid = { 0x8c4c9a41, 0xbf56, 0x4627, { 0x9e, 0xa, 0xc8, 0x38, 0x6d, 0x66, 0x11, 0x5c }}\r
-\r
## Fault Tolerant Write protocol provides boot-time service to do fault tolerant write capability for block devices.\r
# Include/Protocol/FaultTolerantWrite.h\r
gEfiFaultTolerantWriteProtocolGuid = { 0x3EBD9E82, 0x2C78, 0x4DE6, { 0x97, 0x86, 0x8D, 0x4B, 0xFC, 0xB7, 0xC8, 0x81 }}\r
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf\r
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf\r
PlatformDriverOverrideLib|MdeModulePkg/Library/DxePlatDriOverLib/DxePlatDriOverLib.inf\r
- OemHookStatusCodeLib|IntelFrameworkModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf\r
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf\r
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf\r
BaseMemoryTestLib|MdeModulePkg/Library/BaseMemoryTestLibNull/BaseMemoryTestLibNull.inf\r
gEfiPeiReadOnlyVariable2PpiGuid ## CONSUMES\r
gPcdPpiGuid ## PRODUCES\r
\r
-[FeaturePcd.common]\r
+[FeaturePcd]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdPeiFullPcdDatabaseEnable\r
\r
-[FixedPcd.common]\r
+[FixedPcd]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdVpdBaseAddress\r
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPcdCallBackNumberPerPcdEntry || PcdPeiFullPcdDatabaseEnable\r
\r