summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Core/Dxe
diff options
context:
space:
mode:
authoreric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>2007-10-12 05:41:48 +0000
committereric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>2007-10-12 05:41:48 +0000
commit6979fd9382223ac177126788624adb530711a4b1 (patch)
tree1c9feafb4221ae36a810ed661d6dfde8f5edbd69 /MdeModulePkg/Core/Dxe
parentcba02989d1d7849e2e652ac5d8f350c1706275a2 (diff)
downloadedk2-6979fd9382223ac177126788624adb530711a4b1.zip
edk2-6979fd9382223ac177126788624adb530711a4b1.tar.gz
edk2-6979fd9382223ac177126788624adb530711a4b1.tar.bz2
fixed the following problems:
1) DMA interrupt don't been cleaning up after one UDMA operation 2) Global variable mHobStart is not updated after invoking CoreInitializeGcdServices() func in the dxemain. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4107 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Core/Dxe')
-rw-r--r--MdeModulePkg/Core/Dxe/DxeMain.h5
-rw-r--r--MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c5
-rw-r--r--MdeModulePkg/Core/Dxe/Gcd/gcd.c5
3 files changed, 10 insertions, 5 deletions
diff --git a/MdeModulePkg/Core/Dxe/DxeMain.h b/MdeModulePkg/Core/Dxe/DxeMain.h
index 26fb919..b4da26a 100644
--- a/MdeModulePkg/Core/Dxe/DxeMain.h
+++ b/MdeModulePkg/Core/Dxe/DxeMain.h
@@ -354,7 +354,7 @@ Returns:
EFI_STATUS
CoreInitializeGcdServices (
- IN VOID **HobStart,
+ IN OUT VOID **HobStart,
IN EFI_PHYSICAL_ADDRESS MemoryBaseAddress,
IN UINT64 MemoryLength
)
@@ -367,7 +367,8 @@ Routine Description:
memory map, so memory allocations and resource allocations can be made. The first
part of this function can not depend on any memory services until at least one
memory descriptor is provided to the memory services. Then the memory services
- can be used to intialize the GCD map.
+ can be used to intialize the GCD map. The HobStart will be relocated to a pool
+ buffer.
Arguments:
diff --git a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
index 53f1d5f..59a5283 100644
--- a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
+++ b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
@@ -299,6 +299,10 @@ Returns:
ASSERT_EFI_ERROR (Status);
//
+ // The HobStart is relocated in gcd service init. Sync mHobStart varible.
+ //
+ mHobStart = HobStart;
+
// Install the DXE Services Table into the EFI System Tables's Configuration Table
//
Status = CoreInstallConfigurationTable (&gEfiDxeServicesTableGuid, gDxeCoreDS);
@@ -867,4 +871,3 @@ DxeMainUefiDecompress (
return UefiDecompress (Source, Destination, Scratch);
}
-
diff --git a/MdeModulePkg/Core/Dxe/Gcd/gcd.c b/MdeModulePkg/Core/Dxe/Gcd/gcd.c
index 4d58687..accc329 100644
--- a/MdeModulePkg/Core/Dxe/Gcd/gcd.c
+++ b/MdeModulePkg/Core/Dxe/Gcd/gcd.c
@@ -2242,7 +2242,7 @@ Returns:
EFI_STATUS
CoreInitializeGcdServices (
- IN VOID **HobStart,
+ IN OUT VOID **HobStart,
IN EFI_PHYSICAL_ADDRESS MemoryBaseAddress,
IN UINT64 MemoryLength
)
@@ -2255,7 +2255,8 @@ Routine Description:
memory map, so memory allocations and resource allocations can be made. The first
part of this function can not depend on any memory services until at least one
memory descriptor is provided to the memory services. Then the memory services
- can be used to intialize the GCD map.
+ can be used to intialize the GCD map. The HobStart will be relocated to a pool
+ buffer.
Arguments: