Fix DxeIpl module bugs: DxeCoreFileName should be from the Dxe Core ffs file that contain DxeCore Pe Data.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@543 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
		@@ -102,9 +102,9 @@ DxeLoadCore (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
EFI_STATUS
 | 
					EFI_STATUS
 | 
				
			||||||
PeiProcessFile (
 | 
					PeiProcessFile (
 | 
				
			||||||
  IN  UINT16                 SectionType,
 | 
					  IN      UINT16                 SectionType,
 | 
				
			||||||
  IN  EFI_FFS_FILE_HEADER    *FfsFileHeader,
 | 
					  IN OUT  EFI_FFS_FILE_HEADER    **RealFfsFileHeader,
 | 
				
			||||||
  OUT VOID                   **Pe32Data
 | 
					  OUT     VOID                   **Pe32Data
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EFI_STATUS
 | 
					EFI_STATUS
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -470,12 +470,12 @@ Returns:
 | 
				
			|||||||
               &FfsFileHeader
 | 
					               &FfsFileHeader
 | 
				
			||||||
               );
 | 
					               );
 | 
				
			||||||
    if (!EFI_ERROR (Status)) {
 | 
					    if (!EFI_ERROR (Status)) {
 | 
				
			||||||
      CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));
 | 
					 | 
				
			||||||
      Status = PeiProcessFile (
 | 
					      Status = PeiProcessFile (
 | 
				
			||||||
                 SectionType,
 | 
					                 SectionType,
 | 
				
			||||||
                 FfsFileHeader,
 | 
					                 &FfsFileHeader,
 | 
				
			||||||
                 Pe32Data
 | 
					                 Pe32Data
 | 
				
			||||||
                 );
 | 
					                 );
 | 
				
			||||||
 | 
					      CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));
 | 
				
			||||||
      return Status;
 | 
					      return Status;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    Hob.Raw = GET_NEXT_HOB (Hob);
 | 
					    Hob.Raw = GET_NEXT_HOB (Hob);
 | 
				
			||||||
@@ -683,7 +683,7 @@ Returns:
 | 
				
			|||||||
  //
 | 
					  //
 | 
				
			||||||
  Status = PeiProcessFile (
 | 
					  Status = PeiProcessFile (
 | 
				
			||||||
            EFI_SECTION_PE32,
 | 
					            EFI_SECTION_PE32,
 | 
				
			||||||
            FfsHeader,
 | 
					            &FfsHeader,
 | 
				
			||||||
            &Pe32Data
 | 
					            &Pe32Data
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -706,9 +706,9 @@ Returns:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
EFI_STATUS
 | 
					EFI_STATUS
 | 
				
			||||||
PeiProcessFile (
 | 
					PeiProcessFile (
 | 
				
			||||||
  IN  UINT16                 SectionType,
 | 
					  IN      UINT16                 SectionType,
 | 
				
			||||||
  IN  EFI_FFS_FILE_HEADER    *FfsFileHeader,
 | 
					  IN OUT  EFI_FFS_FILE_HEADER    **RealFfsFileHeader,
 | 
				
			||||||
  OUT VOID                   **Pe32Data
 | 
					  OUT     VOID                   **Pe32Data
 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
/*++
 | 
					/*++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -756,6 +756,9 @@ Returns:
 | 
				
			|||||||
  EFI_GUID                        TempGuid;
 | 
					  EFI_GUID                        TempGuid;
 | 
				
			||||||
  EFI_FIRMWARE_VOLUME_HEADER      *FvHeader;
 | 
					  EFI_FIRMWARE_VOLUME_HEADER      *FvHeader;
 | 
				
			||||||
  EFI_COMPRESSION_SECTION         *CompressionSection;
 | 
					  EFI_COMPRESSION_SECTION         *CompressionSection;
 | 
				
			||||||
 | 
					  EFI_FFS_FILE_HEADER             *FfsFileHeader;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  FfsFileHeader = *RealFfsFileHeader;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Status = PeiServicesFfsFindSectionData (
 | 
					  Status = PeiServicesFfsFindSectionData (
 | 
				
			||||||
             EFI_SECTION_COMPRESSION,
 | 
					             EFI_SECTION_COMPRESSION,
 | 
				
			||||||
@@ -950,7 +953,11 @@ Returns:
 | 
				
			|||||||
              return EFI_NOT_FOUND;
 | 
					              return EFI_NOT_FOUND;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return PeiProcessFile (SectionType, FfsFileHeader, Pe32Data);
 | 
					            //
 | 
				
			||||||
 | 
					            // Reture the FfsHeader that contain Pe32Data.
 | 
				
			||||||
 | 
					            //
 | 
				
			||||||
 | 
					            *RealFfsFileHeader = FfsFileHeader;
 | 
				
			||||||
 | 
					            return PeiProcessFile (SectionType, RealFfsFileHeader, Pe32Data);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //
 | 
					        //
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -445,12 +445,12 @@ Returns:
 | 
				
			|||||||
               &FfsFileHeader
 | 
					               &FfsFileHeader
 | 
				
			||||||
               );
 | 
					               );
 | 
				
			||||||
    if (!EFI_ERROR (Status)) {
 | 
					    if (!EFI_ERROR (Status)) {
 | 
				
			||||||
      CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));
 | 
					 | 
				
			||||||
      Status = PeiProcessFile (
 | 
					      Status = PeiProcessFile (
 | 
				
			||||||
                 SectionType,
 | 
					                 SectionType,
 | 
				
			||||||
                 FfsFileHeader,
 | 
					                 &FfsFileHeader,
 | 
				
			||||||
                 Pe32Data
 | 
					                 Pe32Data
 | 
				
			||||||
                 );
 | 
					                 );
 | 
				
			||||||
 | 
					      CopyMem (FileName, &FfsFileHeader->Name, sizeof (EFI_GUID));
 | 
				
			||||||
      return Status;
 | 
					      return Status;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    Hob.Raw = GET_NEXT_HOB (Hob);
 | 
					    Hob.Raw = GET_NEXT_HOB (Hob);
 | 
				
			||||||
@@ -662,7 +662,7 @@ Returns:
 | 
				
			|||||||
  //
 | 
					  //
 | 
				
			||||||
  Status = PeiProcessFile (
 | 
					  Status = PeiProcessFile (
 | 
				
			||||||
            EFI_SECTION_PE32,
 | 
					            EFI_SECTION_PE32,
 | 
				
			||||||
            FfsHeader,
 | 
					            &FfsHeader,
 | 
				
			||||||
            &Pe32Data
 | 
					            &Pe32Data
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -686,9 +686,9 @@ Returns:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
EFI_STATUS
 | 
					EFI_STATUS
 | 
				
			||||||
PeiProcessFile (
 | 
					PeiProcessFile (
 | 
				
			||||||
  IN  UINT16                 SectionType,
 | 
					  IN      UINT16                 SectionType,
 | 
				
			||||||
  IN  EFI_FFS_FILE_HEADER    *FfsFileHeader,
 | 
					  IN OUT  EFI_FFS_FILE_HEADER    **RealFfsFileHeader,
 | 
				
			||||||
  OUT VOID                   **Pe32Data
 | 
					  OUT     VOID                   **Pe32Data
 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
/*++
 | 
					/*++
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -736,6 +736,9 @@ Returns:
 | 
				
			|||||||
  EFI_GUID                        TempGuid;
 | 
					  EFI_GUID                        TempGuid;
 | 
				
			||||||
  EFI_FIRMWARE_VOLUME_HEADER      *FvHeader;
 | 
					  EFI_FIRMWARE_VOLUME_HEADER      *FvHeader;
 | 
				
			||||||
  EFI_COMPRESSION_SECTION         *CompressionSection;
 | 
					  EFI_COMPRESSION_SECTION         *CompressionSection;
 | 
				
			||||||
 | 
					  EFI_FFS_FILE_HEADER             *FfsFileHeader;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  FfsFileHeader = *RealFfsFileHeader;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Status = PeiServicesFfsFindSectionData (
 | 
					  Status = PeiServicesFfsFindSectionData (
 | 
				
			||||||
             EFI_SECTION_COMPRESSION,
 | 
					             EFI_SECTION_COMPRESSION,
 | 
				
			||||||
@@ -930,7 +933,11 @@ Returns:
 | 
				
			|||||||
              return EFI_NOT_FOUND;
 | 
					              return EFI_NOT_FOUND;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return PeiProcessFile (SectionType, FfsFileHeader, Pe32Data);
 | 
					            //
 | 
				
			||||||
 | 
					            // Reture the FfsHeader that contain Pe32Data.
 | 
				
			||||||
 | 
					            //
 | 
				
			||||||
 | 
					            *RealFfsFileHeader = FfsFileHeader;
 | 
				
			||||||
 | 
					            return PeiProcessFile (SectionType, RealFfsFileHeader, Pe32Data);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        //
 | 
					        //
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user