]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/DxeIplPeim/DxeLoad.c
1. Replace PeCoffLoader library by PeCoff lib for PeiCore, DxeIpl and DxeMain.
[mirror_edk2.git] / MdeModulePkg / Core / DxeIplPeim / DxeLoad.c
index 139174e6493e588f6e1b1ba7d1c1f229a94b4824..cb13a7d4b08564b7318cc3ddf4bdf1cdc391f99c 100644 (file)
@@ -74,14 +74,6 @@ static EFI_PEI_PPI_DESCRIPTOR     mPpiSignal = {
   NULL\r
 };\r
 \r
-STATIC EFI_PEI_FIRMWARE_VOLUME_INFO_PPI mFvInfoPpiTemplate = {\r
-  EFI_FIRMWARE_FILE_SYSTEM2_GUID,\r
-  NULL,\r
-  0,    //FvInfoSize\r
-  NULL, //ParentFvName\r
-  NULL //ParentFileName;\r
-};\r
-\r
 /**\r
   Initializes the Dxe Ipl PPI\r
 \r
@@ -182,7 +174,6 @@ DxeLoadCore (
   EFI_PHYSICAL_ADDRESS                      DxeCoreAddress;\r
   UINT64                                    DxeCoreSize;\r
   EFI_PHYSICAL_ADDRESS                      DxeCoreEntryPoint;\r
-  EFI_PEI_PE_COFF_LOADER_PROTOCOL           *PeiEfiPeiPeCoffLoader;\r
   EFI_BOOT_MODE                             BootMode;\r
   EFI_PEI_FV_HANDLE                         VolumeHandle;\r
   EFI_PEI_FILE_HANDLE                       FileHandle;\r
@@ -208,12 +199,6 @@ DxeLoadCore (
     // Now should have a HOB with the DXE core w/ the old HOB destroyed\r
     //\r
   }\r
-\r
-  //\r
-  // Install the PEI Protocols that are shared between PEI and DXE\r
-  //\r
-  PeiEfiPeiPeCoffLoader = (EFI_PEI_PE_COFF_LOADER_PROTOCOL *) GetPeCoffLoaderProtocol ();\r
-  ASSERT (PeiEfiPeiPeCoffLoader != NULL);\r
   \r
   //\r
   // If any FV contains an encapsulated FV extract that FV\r
@@ -252,14 +237,6 @@ DxeLoadCore (
     );\r
 \r
   //\r
-  // Add HOB for the PE/COFF Loader Protocol\r
-  //\r
-  BuildGuidDataHob (\r
-    &gEfiPeiPeCoffLoaderGuid,\r
-    (VOID *)&PeiEfiPeiPeCoffLoader,\r
-    sizeof (VOID *)\r
-    );\r
-  //\r
   // Report Status Code EFI_SW_PEI_PC_HANDOFF_TO_NEXT\r
   //\r
   REPORT_STATUS_CODE (\r
@@ -327,8 +304,6 @@ DxeIplAddEncapsulatedFirmwareVolumes (
   EFI_FIRMWARE_VOLUME_IMAGE_SECTION *SectionHeader;\r
   VOID                        *DstBuffer;\r
   UINT32                       FvAlignment;\r
-  EFI_PEI_FIRMWARE_VOLUME_INFO_PPI *FvInfoPpi;\r
-  EFI_PEI_PPI_DESCRIPTOR           *FvInfoPpiDescriptor;\r
 \r
   Status = EFI_NOT_FOUND;\r
   Index  = 0;\r
@@ -378,33 +353,13 @@ DxeIplAddEncapsulatedFirmwareVolumes (
           //\r
           PeiServicesFfsGetVolumeInfo (&VolumeHandle, &VolumeInfo);\r
 \r
-          //\r
-          // Prepare to install FirmwareVolumeInfo PPI to expose new FV to PeiCore.\r
-          //\r
-          FvInfoPpi = AllocateCopyPool (sizeof (EFI_PEI_FIRMWARE_VOLUME_INFO_PPI), &mFvInfoPpiTemplate);\r
-          ASSERT(FvInfoPpi != NULL);\r
-\r
-          FvInfoPpi->FvInfo     = (VOID*)FvHeader;\r
-          FvInfoPpi->FvInfoSize = (UINT32)FvHeader->FvLength;\r
-          CopyMem (\r
-            &FvInfoPpi->ParentFvName,\r
+          PeiPiLibBuildPiFvInfoPpi (\r
+            (EFI_PHYSICAL_ADDRESS) FvHeader,\r
+            FvHeader->FvLength,\r
             &(VolumeInfo.FvName),\r
-            sizeof (EFI_GUID)\r
-            );\r
-          CopyMem (\r
-            &FvInfoPpi->ParentFileName,\r
-            &(((EFI_FFS_FILE_HEADER*)FileHandle)->Name),\r
-            sizeof (EFI_GUID)\r
+            &(((EFI_FFS_FILE_HEADER*)FileHandle)->Name)\r
             );\r
-\r
-          FvInfoPpiDescriptor = AllocatePool (sizeof(EFI_PEI_PPI_DESCRIPTOR));\r
-          ASSERT (FvInfoPpiDescriptor != NULL);\r
-         \r
-          FvInfoPpiDescriptor->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI|EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST;\r
-          FvInfoPpiDescriptor->Guid  = &gEfiPeiFirmwareVolumeInfoPpiGuid;\r
-          FvInfoPpiDescriptor->Ppi   = (VOID *) FvInfoPpi;\r
-\r
-          Status          = PeiServicesInstallPpi (FvInfoPpiDescriptor);\r
+            \r
           ASSERT_EFI_ERROR (Status);\r
 \r
           //\r
@@ -486,9 +441,6 @@ PeiLoadFile (
   EFI_STATUS                        Status;\r
   PE_COFF_LOADER_IMAGE_CONTEXT      ImageContext;\r
   VOID                              *Pe32Data;\r
-  EFI_PEI_PE_COFF_LOADER_PROTOCOL   *PeiEfiPeiPeCoffLoader;\r
-\r
-  PeiEfiPeiPeCoffLoader = (EFI_PEI_PE_COFF_LOADER_PROTOCOL *)GetPeCoffLoaderProtocol ();\r
   //\r
   // First try to find the required section in this ffs file.\r
   //\r
@@ -519,7 +471,7 @@ PeiLoadFile (
 \r
   ASSERT_EFI_ERROR (Status);\r
 \r
-  Status = PeiEfiPeiPeCoffLoader->GetImageInfo (PeiEfiPeiPeCoffLoader, &ImageContext);\r
+  Status = PeCoffLoaderGetImageInfo (&ImageContext);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -532,14 +484,14 @@ PeiLoadFile (
   //\r
   // Load the image to our new buffer\r
   //\r
-  Status = PeiEfiPeiPeCoffLoader->LoadImage (PeiEfiPeiPeCoffLoader, &ImageContext);\r
+  Status = PeCoffLoaderLoadImage (&ImageContext);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
   //\r
   // Relocate the image in our new buffer\r
   //\r
-  Status = PeiEfiPeiPeCoffLoader->RelocateImage (PeiEfiPeiPeCoffLoader, &ImageContext);\r
+  Status = PeCoffLoaderRelocateImage (&ImageContext);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r