From: klu2 Date: Wed, 7 May 2008 09:38:31 +0000 (+0000) Subject: 1) DxeIpl should not use UefiDriverEntryPointLib X-Git-Tag: edk2-stable201903~21034 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=df166ce57448db0df33b2ea77d1142610103677e 1) DxeIpl should not use UefiDriverEntryPointLib 2) Fix incorrect judgment for ACPI table in legacy region. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5177 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/DuetPkg/DuetPkg.dsc b/DuetPkg/DuetPkg.dsc index 2a56d3a38f..851a84295b 100644 --- a/DuetPkg/DuetPkg.dsc +++ b/DuetPkg/DuetPkg.dsc @@ -105,7 +105,10 @@ gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdStatusCodeUseHardSerial|TRUE [Components.common] - DuetPkg/DxeIpl/DxeIpl.inf + DuetPkg/DxeIpl/DxeIpl.inf { + + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf + } MdeModulePkg/Core/Dxe/DxeMain.inf MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf diff --git a/DuetPkg/DxeIpl/DxeInit.c b/DuetPkg/DxeIpl/DxeInit.c index e42cd4c0db..6bc3170bc5 100644 --- a/DuetPkg/DxeIpl/DxeInit.c +++ b/DuetPkg/DxeIpl/DxeInit.c @@ -136,7 +136,8 @@ Returns: VOID *MemoryDescriptor; VOID *NvStorageBase; CHAR8 PrintBuffer[256]; - + + ClearScreen(); PrintString("Enter DxeIpl ...\n"); /* ClearScreen(); @@ -295,7 +296,6 @@ Returns: PrintString("\n\n\n\n\n\n\n\n\n\n"); PrintString(" WELCOME TO EFI WORLD!\n"); - EnterDxeMain (StackTop, Handoff->DxeCoreEntryPoint, gHob, PageTableBase); // @@ -304,3 +304,12 @@ Returns: CpuDeadLoop (); } +EFI_STATUS +EFIAPI +_ModuleEntryPoint ( + IN EFILDRHANDOFF *Handoff + ) +{ + DxeInit(Handoff); + return EFI_SUCCESS; +} diff --git a/DuetPkg/DxeIpl/DxeIpl.inf b/DuetPkg/DxeIpl/DxeIpl.inf index 3bdded832b..d2d43e982e 100644 --- a/DuetPkg/DxeIpl/DxeIpl.inf +++ b/DuetPkg/DxeIpl/DxeIpl.inf @@ -24,7 +24,6 @@ VERSION_STRING = 1.0 EDK_RELEASE_VERSION = 0x00020000 EFI_SPECIFICATION_VERSION = 0x00020000 - ENTRY_POINT = DxeInit [Packages] MdePkg/MdePkg.dec @@ -38,7 +37,6 @@ BaseMemoryLib PrintLib ReportStatusCodeLib - UefiDriverEntryPoint [Sources.common] DxeIpl.h diff --git a/DuetPkg/DxeIpl/LegacyTable.c b/DuetPkg/DxeIpl/LegacyTable.c index 1175d560d8..4b19064ee4 100644 --- a/DuetPkg/DxeIpl/LegacyTable.c +++ b/DuetPkg/DxeIpl/LegacyTable.c @@ -20,6 +20,7 @@ Revision History: #include "DxeIpl.h" #include "HobGeneration.h" +#include "Debug.h" #define ACPI_RSD_PTR 0x2052545020445352LL #define MPS_PTR EFI_SIGNATURE_32('_','M','P','_') @@ -225,7 +226,7 @@ FindAcpiPtr ( // // Check ACPI2.0 table // - if (Hob->Acpi20.Table > 0) { + if ((int)Hob->Acpi20.Table != -1) { Rsdp = (RSDP_TABLE *)(UINTN)Hob->Acpi20.Table; Rsdt = (RSDT_TABLE *)(UINTN)Rsdp->RsdtAddress; Xsdt = NULL; @@ -249,7 +250,7 @@ FindAcpiPtr ( // // Check ACPI1.0 table // - if ((AcpiTable == NULL) && (Hob->Acpi.Table > 0)) { + if ((AcpiTable == NULL) && ((int)Hob->Acpi.Table != -1)) { Rsdp = (RSDP_TABLE *)(UINTN)Hob->Acpi.Table; Rsdt = (RSDT_TABLE *)(UINTN)Rsdp->RsdtAddress; // @@ -411,10 +412,18 @@ PrepareHobLegacyTable ( IN HOB_TEMPLATE *Hob ) { + CHAR8 PrintBuffer[256]; + Hob->Acpi.Table = (EFI_PHYSICAL_ADDRESS)(UINTN)FindAcpiRsdPtr (); + AsciiSPrint (PrintBuffer, 256, "\nAcpiTable=0x%x ", (UINT32)(UINTN)Hob->Acpi.Table); + PrintString (PrintBuffer); Hob->Acpi20.Table = (EFI_PHYSICAL_ADDRESS)(UINTN)FindAcpiRsdPtr (); Hob->Smbios.Table = (EFI_PHYSICAL_ADDRESS)(UINTN)FindSMBIOSPtr (); + AsciiSPrint (PrintBuffer, 256, "SMBIOS Table=0x%x ", (UINT32)(UINTN)Hob->Smbios.Table); + PrintString (PrintBuffer); Hob->Mps.Table = (EFI_PHYSICAL_ADDRESS)(UINTN)FindMPSPtr (); + AsciiSPrint (PrintBuffer, 256, "MPS Table=0x%x\n", (UINT32)(UINTN)Hob->Mps.Table); + PrintString (PrintBuffer); PrepareMcfgTable (Hob);