git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@150 6f19259b-4bc3-4df7-8a09-765794883524

This commit is contained in:
lgao4 2006-05-14 09:14:46 +00:00
parent d4864e2350
commit e20ee534ac
17 changed files with 6105 additions and 6071 deletions

View File

@ -502,15 +502,6 @@ IDEBusDriverBindingStart (
IdeBlkIoDevicePtr->IdeBusDriverPrivateData = IdeBusDriverPrivateData;
IdeBlkIoDevicePtr->IoPort->BusMasterBaseAddr = IdeRegsBaseAddr[IdeChannel].BusMasterBaseAddr;
//
// Report Status code: is about to detect IDE drive
//
REPORT_STATUS_CODE_WITH_DEVICE_PATH (
EFI_PROGRESS_CODE,
(EFI_IO_BUS_ATA_ATAPI | EFI_P_PC_PRESENCE_DETECT),
IdeBlkIoDevicePtr->DevicePath
);
//
// Discover device, now!
//

View File

@ -25,10 +25,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<Library>BaseCacheMaintenanceLib</Library>
<Library>DxeReportStatusCodeLib</Library>
<Library>BaseDebugLibReportStatusCode</Library>
<Library>DxeCoreUefiDecompressLibFromHob</Library>
<Library>DxeCoreTianoDecompressLibFromHob</Library>
<Library>DxeCoreCustomDecompressLibFromHob</Library>
<Library>EdkDxePeCoffLoaderFromHobLib</Library>
<Library OverrideID="1111">DxeCoreUefiDecompressLibFromHob</Library>
<Library OverrideID="1111">DxeCoreTianoDecompressLibFromHob</Library>
<Library OverrideID="3333">DxeCoreCustomDecompressLibFromHob</Library>
<Library OverrideID="4444">EdkDxePeCoffLoaderFromHobLib</Library>
<Library>DxeCoreHobLib</Library>
<Library>DxeCoreEntryPoint</Library>
<Library>BaseMemoryLib</Library>

View File

@ -111,6 +111,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<Protocol Usage="ALWAYS_CONSUMED">LoadFile</Protocol>
<Protocol Usage="ALWAYS_CONSUMED">SimpleFileSystem</Protocol>
<Protocol Usage="ALWAYS_CONSUMED">LoadPeImage</Protocol>
<Protocol Usage="ALWAYS_CONSUMED">Decompress</Protocol>
<Protocol Usage="ALWAYS_CONSUMED">CustomizedDecompress</Protocol>
<Protocol Usage="ALWAYS_CONSUMED">TianoDecompress</Protocol>
</Protocols>
<Guids>
<GuidEntry Usage="ALWAYS_CONSUMED">

View File

@ -433,7 +433,7 @@ Returns:
// Map the Tiano extensions Events to CreateEventEx form
//
if (Type == EFI_EVENT_SIGNAL_READY_TO_BOOT) {
GuidPtr = &gEfiEventReadToBootGuid;
GuidPtr = &gEfiEventReadyToBootGuid;
} else if (Type == EFI_EVENT_SIGNAL_LEGACY_BOOT) {
GuidPtr = &gEfiEventLegacyBootGuid
}

View File

@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<Library>PeimEntryPoint</Library>
<Library>PeiMemoryLib</Library>
<Library>PeiCoreLib</Library>
<Library>PeiServicesTablePointerLib</Library>
<Library OverrideID="4444">PeiServicesTablePointerLib</Library>
<Library>PeiHobLib</Library>
<Library>BaseCacheMaintenanceLib</Library>
<Library>BaseUefiTianoDecompressLib</Library>

View File

@ -11,7 +11,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-->
<ModuleBuildDescription xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">
<MbdHeader>
<BaseName>DxeIpl</BaseName>
<BaseName>DxeIplX64</BaseName>
<Guid>86D70125-BAA3-4296-A62F-602BEBBB9081</Guid>
<Version>EDK_RELEASE_VERSION 0x00020000</Version>
<Description>FIX ME!</Description>
@ -30,20 +30,20 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<Library>PeimEntryPoint</Library>
<Library>PeiMemoryLib</Library>
<Library>PeiCoreLib</Library>
<Library>PeiServicesTablePointerLib</Library>
<Library OverrideID="4444">PeiServicesTablePointerLib</Library>
<Library>PeiHobLib</Library>
<Library>BaseCacheMaintenanceLib</Library>
<Library>BaseUefiTianoDecompressLib</Library>
<Library>BaseCustomDecompressLibNull</Library>
<Library>PeiReportStatusCodeLib</Library>
<Library>BaseDebugLibReportStatusCode</Library>
<Library>BaseLib</Library>
<Library>PeiMemoryAllocationLib</Library>
<Library>PeiReportStatusCodeLib</Library>
<Arch ArchType="IA32" OverrideID="8888">
<Library>EdkPeCoffLoaderX64Lib</Library>
<Library>EdkPeCoffLoaderLib</Library>
<Library>BasePeCoffLib</Library>
</Arch>
<Library>EdkPeCoffLoaderX64Lib</Library>
<Library>EdkPeCoffLoaderLib</Library>
<Library>BasePeCoffLib</Library>
</Libraries>
<BuildOptions ToolChain="MSFT">
<ImageEntryPoint>_ModuleEntryPoint</ImageEntryPoint>
</BuildOptions>
</ModuleBuildDescription>

View File

@ -11,7 +11,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-->
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.TianoCore.org/2006/Edk2.0 http://www.TianoCore.org/2006/Edk2.0/SurfaceArea.xsd">
<MsaHeader>
<BaseName>DxeIpl</BaseName>
<BaseName>DxeIplX64</BaseName>
<ModuleType>PEIM</ModuleType>
<ComponentType>PE32_PEIM</ComponentType>
<Guid>86D70125-BAA3-4296-A62F-602BEBBB9081</Guid>
@ -67,19 +67,56 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<Protocol Usage="ALWAYS_CONSUMED">TianoDecompress</Protocol>
<Protocol Usage="ALWAYS_CONSUMED">CustomizedDecompress</Protocol>
</Protocols>
<Hobs>
<Hob Usage="SOMETIMES_PRODUCED" HobType="MEMORY_ALLOCATION">
<C_Name>gEfiHobMemoryAllocBspStoreGuid</C_Name>
<Guid>0x564b33cd, 0xc92a, 0x4593, 0x90, 0xbf, 0x24, 0x73, 0xe4, 0x3c, 0x63, 0x22</Guid>
</Hob>
<Hob Usage="SOMETIMES_PRODUCED" HobType="GUID_EXTENSION">
<C_Name>gEfiDecompressProtocolGuid</C_Name>
<Guid>0xd8117cfe, 0x94a6, 0x11d4, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d</Guid>
</Hob>
<Hob Usage="SOMETIMES_PRODUCED" HobType="GUID_EXTENSION">
<C_Name>gEfiTianoDecompressProtocolGuid</C_Name>
<Guid>0xe84cf29c, 0x191f, 0x4eae, 0x96, 0xe1, 0xf4, 0x6a, 0xec, 0xea, 0xea, 0x0b</Guid>
</Hob>
<Hob Usage="SOMETIMES_PRODUCED" HobType="GUID_EXTENSION">
<C_Name>gEfiCustomizedDecompressProtocolGuid</C_Name>
<Guid>0x9a44198e, 0xa4a2, 0x44e6, 0x8a, 0x1f, 0x39, 0xbe, 0xfd, 0xac, 0x89, 0x6f</Guid>
</Hob>
<Hob Usage="SOMETIMES_PRODUCED" HobType="GUID_EXTENSION">
<C_Name>gEfiPeiPeCoffLoaderGuid</C_Name>
<Guid>0xd8117cff, 0x94a6, 0x11d4, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d</Guid>
</Hob>
<Hob Usage="SOMETIMES_PRODUCED" HobType="MEMORY_ALLOCATION">
<C_Name>gEfiHobMemoryAllocModuleGuid</C_Name>
<Guid>0xf8e21975, 0x0899, 0x4f58, 0xa4, 0xbe, 0x55, 0x25, 0xa9, 0xc6, 0xd7, 0x7a</Guid>
</Hob>
<Hob Usage="SOMETIMES_PRODUCED" HobType="FIRMWARE_VOLUME">
<Name>DecompressedFvmain.fv</Name>
</Hob>
</Hobs>
<PPIs>
<Ppi Usage="ALWAYS_CONSUMED">PeiInMemory</Ppi>
<Ppi Usage="ALWAYS_CONSUMED">RecoveryModule</Ppi>
<Ppi Usage="ALWAYS_CONSUMED">SectionExtraction</Ppi>
<Ppi Usage="ALWAYS_CONSUMED">Security</Ppi>
<Ppi Usage="ALWAYS_CONSUMED">DxeIpl</Ppi>
<Ppi Usage="ALWAYS_CONSUMED">S3Resume</Ppi>
<Ppi Usage="ALWAYS_CONSUMED">EndOfPeiSignal</Ppi>
<Ppi Usage="ALWAYS_CONSUMED">FvFileLoader</Ppi>
<Ppi Usage="SOMETIMES_PRODUCED">DxeIpl</Ppi>
<Ppi Usage="SOMETIMES_PRODUCED">FvFileLoader</Ppi>
<Ppi Usage="SOMETIMES_PRODUCED">EndOfPeiSignal</Ppi>
<Ppi Usage="SOMETIMES_CONSUMED">RecoveryModule</Ppi>
<Ppi Usage="SOMETIMES_CONSUMED">S3Resume</Ppi>
<Ppi Usage="SOMETIMES_CONSUMED">SectionExtraction</Ppi>
<Ppi Usage="SOMETIMES_CONSUMED">Security</Ppi>
<Ppi Usage="PRIVATE">PeiInMemory</Ppi>
</PPIs>
<Guids>
<GuidEntry Usage="ALWAYS_CONSUMED">
<C_Name>PeiPeCoffLoader</C_Name>
</GuidEntry>
</Guids>
<Externs>
<Extern>
<ModuleEntryPoint>PeimInitializeDxeIpl</ModuleEntryPoint>
</Extern>
</Externs>
<BuildOptions ToolChain="MSFT">
<ImageEntryPoint>_ModuleEntryPoint</ImageEntryPoint>
</BuildOptions>
</ModuleSurfaceArea>

View File

@ -220,10 +220,6 @@ Returns:
EFI_PHYSICAL_ADDRESS DxeCoreAddress;
UINT64 DxeCoreSize;
EFI_PHYSICAL_ADDRESS DxeCoreEntryPoint;
VOID *PpisNeededByDxePe32Data;
EFI_PHYSICAL_ADDRESS PpisNeededByDxeAddress;
UINT64 PpisNeededByDxeSize;
EFI_PHYSICAL_ADDRESS PpisNeededByDxeEntryPoint;
EFI_PEI_PE_COFF_LOADER_PROTOCOL *PeiEfiPeiPeCoffLoader;
EFI_BOOT_MODE BootMode;
EFI_PEI_RECOVERY_MODULE_PPI *PeiRecovery;
@ -317,17 +313,6 @@ Returns:
);
ASSERT_EFI_ERROR (Status);
//
// Find the PpisNeededByDxe in a Firmware Volume
//
Status = PeiFindFile (
EFI_FV_FILETYPE_ALL,
EFI_SECTION_PE32,
&mPpiNeededByDxeGuid,
&PpisNeededByDxePe32Data
);
ASSERT_EFI_ERROR (Status);
//
// Transfer control to the DXE Core
// The handoff state is simply a pointer to the HOB list
@ -347,19 +332,6 @@ Returns:
//
PageTables = CreateIdentityMappingPageTables (36);
//
// Load the PpiNeededByDxe from a Firmware Volume
//
Status = PeiLoadx64File (
PeiEfiPeiPeCoffLoader,
PpisNeededByDxePe32Data,
EfiBootServicesData,
&PpisNeededByDxeAddress,
&PpisNeededByDxeSize,
&PpisNeededByDxeEntryPoint
);
ASSERT_EFI_ERROR (Status);
//
// Load the DXE Core from a Firmware Volume
@ -402,7 +374,7 @@ Returns:
PageTables,
(EFI_PHYSICAL_ADDRESS)(UINTN)(HobList.Raw),
TopOfStack,
PpisNeededByDxeEntryPoint,
0x00000000,
DxeCoreEntryPoint
);

View File

@ -15,11 +15,24 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
<property name="MODULE_RELATIVE_PATH" value="Core/DxeIplPeim"/>
<property name="MODULE_DIR" value="${PACKAGE_DIR}/${MODULE_RELATIVE_PATH}"/>
<property name="COMMON_FILE" value="${WORKSPACE_DIR}/Tools/Conf/Common.xml"/>
<target name="DxeIplX64">
<GenBuild baseName="DxeIplX64" mbdFilename="${MODULE_DIR}/DxeIplX64.mbd" msaFilename="${MODULE_DIR}/DxeIplX64.msa"/>
</target>
<target name="DxeIpl">
<GenBuild baseName="DxeIpl" mbdFilename="${MODULE_DIR}/DxeIpl.mbd" msaFilename="${MODULE_DIR}/DxeIpl.msa"/>
</target>
<target depends="DxeIpl_clean" name="clean"/>
<target depends="DxeIpl_cleanall" name="cleanall"/>
<target name="DxeIplX64_clean">
<OutputDirSetup baseName="DxeIplX64" mbdFilename="${MODULE_DIR}/DxeIplX64.mbd" msaFilename="${MODULE_DIR}/DxeIplX64.msa"/>
<if>
<available file="${DEST_DIR_OUTPUT}/DxeIplX64_build.xml"/>
<then>
<ant antfile="${DEST_DIR_OUTPUT}/DxeIplX64_build.xml" target="clean"/>
</then>
</if>
<delete dir="${DEST_DIR_OUTPUT}" excludes="*.xml"/>
</target>
<target name="DxeIpl_clean">
<OutputDirSetup baseName="DxeIpl" mbdFilename="${MODULE_DIR}/DxeIpl.mbd" msaFilename="${MODULE_DIR}/DxeIpl.msa"/>
<if>
@ -30,6 +43,20 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
</if>
<delete dir="${DEST_DIR_OUTPUT}" excludes="*.xml"/>
</target>
<target name="DxeIplX64_cleanall">
<OutputDirSetup baseName="DxeIplX64" mbdFilename="${MODULE_DIR}/DxeIplX64.mbd" msaFilename="${MODULE_DIR}/DxeIplX64.msa"/>
<if>
<available file="${DEST_DIR_OUTPUT}/DxeIplX64_build.xml"/>
<then>
<ant antfile="${DEST_DIR_OUTPUT}/DxeIplX64_build.xml" target="cleanall"/>
</then>
</if>
<delete dir="${DEST_DIR_OUTPUT}"/>
<delete dir="${DEST_DIR_DEBUG}"/>
<delete>
<fileset dir="${BIN_DIR}" includes="**DxeIplX64*"/>
</delete>
</target>
<target name="DxeIpl_cleanall">
<OutputDirSetup baseName="DxeIpl" mbdFilename="${MODULE_DIR}/DxeIpl.mbd" msaFilename="${MODULE_DIR}/DxeIpl.msa"/>
<if>

View File

@ -170,15 +170,8 @@ in_long_mode::
db 48h
mov esp, ebx ; On a new stack now
db 48h
mov ecx, [ebp+10h] ; Pass Hob Start in RCX
db 48h
mov eax, [ebp+20h] ; Get the function pointer for
; PpisNeededByDxeIplEntryPoint into EAX
;; 00000905 FF D0 call rax
db 0ffh
db 0d0h
db 48h
mov ecx, [ebp+10h] ; Pass Hob Start in RCX

View File

@ -150,17 +150,23 @@ Returns:
EFI_IMAGE_DOS_HEADER *DosHeader;
EFI_IMAGE_NT_HEADERS *PeHeader;
DosHeader = (EFI_IMAGE_DOS_HEADER *)Pe32Data;
if (DosHeader->e_magic == EFI_IMAGE_DOS_SIGNATURE) {
//
// DOS image header is present, so read the PE header after the DOS image header
//
PeHeader = (EFI_IMAGE_NT_HEADERS *) ((UINTN) Pe32Data + (UINTN) ((DosHeader->e_lfanew) & 0x0ffff));
} else {
//
// DOS image header is not present, so PE header is at the image base
//
PeHeader = (EFI_IMAGE_NT_HEADERS *) Pe32Data;
//
// Pe32Data is NULL when load TE image
//
PeHeader = NULL;
if (TEImageHeader == NULL) {
DosHeader = (EFI_IMAGE_DOS_HEADER *)Pe32Data;
if (DosHeader->e_magic == EFI_IMAGE_DOS_SIGNATURE) {
//
// DOS image header is present, so read the PE header after the DOS image header
//
PeHeader = (EFI_IMAGE_NT_HEADERS *) ((UINTN) Pe32Data + (UINTN) ((DosHeader->e_lfanew) & 0x0ffff));
} else {
//
// DOS image header is not present, so PE header is at the image base
//
PeHeader = (EFI_IMAGE_NT_HEADERS *) Pe32Data;
}
}
//

View File

@ -31,7 +31,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<Library>PeiCoreEntryPoint</Library>
<Library>BaseLib</Library>
<Library>BaseMemoryLib</Library>
<Library>PeiServicesTablePointerLib</Library>
<Library OverrideID="4444">PeiServicesTablePointerLib</Library>
<Library>PeiCoreLib</Library>
<Library>PeiHobLib</Library>
<Library>PeiReportStatusCodeLib</Library>

View File

@ -113,7 +113,6 @@ Returns:
}
#endif
//
// For IPF in CAR mode the real memory access is uncached,in InstallPeiMemory()
// the 63-bit of address is set to 1.

View File

@ -154,6 +154,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<MsaFile>
<Filename>Core/DxeIplPeim/DxeIpl.msa</Filename>
</MsaFile>
<MsaFile>
<Filename>Core/DxeIplPeim/DxeIplX64.msa</Filename>
</MsaFile>
<MsaFile>
<Filename>Core/Pei/PeiMain.msa</Filename>
</MsaFile>
@ -211,6 +214,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<MsaFile>
<Filename>Library/EdkPeCoffLoaderLib/EdkPeCoffLoaderLib.msa</Filename>
</MsaFile>
<MsaFile>
<Filename>Library/EdkPeCoffLoaderLibX64/EdkPeCoffLoaderLibX64.msa</Filename>
</MsaFile>
<MsaFile>
<Filename>Library/EdkPeCoffLoaderX64Lib/EdkPeCoffLoaderX64Lib.msa</Filename>
</MsaFile>

View File

@ -35,12 +35,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<Library>UefiLib</Library>
<Library>BasePrintLib</Library>
<Library>BaseDebugLibReportStatusCode</Library>
<Library>EdkRtPlatformStatusCodeLib</Library>
<Library>DxeIoLibCpuIo</Library>
<Library>BaseMemoryLib</Library>
<Library>DxeReportStatusCodeLib</Library>
<Library>EdkRtMemoryStatusCodeLib</Library>
<Library>EdkBsDataHubStatusCodeLib</Library>
<Library OverrideID="1111">EdkRtPlatformStatusCodeLib</Library>
<Library OverrideID="1111">EdkRtMemoryStatusCodeLib</Library>
<Library OverrideID="1111">EdkBsDataHubStatusCodeLib</Library>
<Library>DxeHobLib</Library>
<Library>DxeMemoryAllocationLib</Library>
<Library>EdkMemoryStatusCodeLib</Library>

View File

@ -33,7 +33,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
<Library>BaseLib</Library>
<Library>PeiMemoryLib</Library>
<Library>PeiCoreLib</Library>
<Library>PeiServicesTablePointerLib</Library>
<Library OverrideID="4444">PeiServicesTablePointerLib</Library>
<Library>PeiHobLib</Library>
<Library>PeimEntryPoint</Library>
</Libraries>