summaryrefslogtreecommitdiff
path: root/EdkModulePkg/Core
diff options
context:
space:
mode:
authorxgu3 <xgu3@6f19259b-4bc3-4df7-8a09-765794883524>2007-04-05 09:04:12 +0000
committerxgu3 <xgu3@6f19259b-4bc3-4df7-8a09-765794883524>2007-04-05 09:04:12 +0000
commit5d10269c06d0d0f8f0982c90679c1f437c9909b5 (patch)
tree2f72234d0ff123acad7d3b908224b64ef45635bb /EdkModulePkg/Core
parent8d8daecb5435d879c1b1244d51876f37359759a3 (diff)
downloadedk2-platforms-5d10269c06d0d0f8f0982c90679c1f437c9909b5.tar.xz
To fix
USB Keyboard driver should add F11, F12 support DxeIpl should not hardcode 36bit address git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2543 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'EdkModulePkg/Core')
-rw-r--r--EdkModulePkg/Core/DxeIplPeim/Ia32/VirtualMemory.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/EdkModulePkg/Core/DxeIplPeim/Ia32/VirtualMemory.c b/EdkModulePkg/Core/DxeIplPeim/Ia32/VirtualMemory.c
index 609fea2eca..89b18c36f8 100644
--- a/EdkModulePkg/Core/DxeIplPeim/Ia32/VirtualMemory.c
+++ b/EdkModulePkg/Core/DxeIplPeim/Ia32/VirtualMemory.c
@@ -57,7 +57,6 @@ Returns:
--*/
{
- UINT32 RegEax;
UINT8 PhysicalAddressBits;
EFI_PHYSICAL_ADDRESS PageAddress;
UINTN IndexOfPml4Entries;
@@ -71,16 +70,16 @@ Returns:
PAGE_TABLE_ENTRY *PageDirectoryEntry;
UINTN TotalPagesNum;
UINTN BigPageAddress;
+ VOID *Hob;
//
- // Get physical address bits supported.
+ // Get physical address bits supported from CPU HOB.
//
- AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);
- if (RegEax >= 0x80000008) {
- AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL);
- PhysicalAddressBits = (UINT8) RegEax;
- } else {
- PhysicalAddressBits = 36;
+ PhysicalAddressBits = 36;
+
+ Hob = GetFirstHob (EFI_HOB_TYPE_CPU);
+ if (Hob != NULL) {
+ PhysicalAddressBits = ((EFI_HOB_CPU *) Hob)->SizeOfMemorySpace;
}
//