From 5d10269c06d0d0f8f0982c90679c1f437c9909b5 Mon Sep 17 00:00:00 2001 From: xgu3 Date: Thu, 5 Apr 2007 09:04:12 +0000 Subject: [PATCH] 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 --- EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c | 5 +++-- EdkModulePkg/Core/DxeIplPeim/Ia32/VirtualMemory.c | 15 +++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c b/EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c index 79eded33c3..64bbd30d4b 100644 --- a/EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c +++ b/EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c @@ -93,8 +93,8 @@ UINT8 KeyConvertionTable[USB_KEYCODE_MAX_MAKE][3] = { { SCAN_F8, 0x00, 0x00 }, // 0x41 { SCAN_F9, 0x00, 0x00 }, // 0x42 { SCAN_F10, 0x00, 0x00 }, // 0x43 - { SCAN_NULL, 0x00, 0x00 }, // 0x44 F11 - { SCAN_NULL, 0x00, 0x00 }, // 0x45 F12 + { SCAN_F11, 0x00, 0x00 }, // 0x44 F11 + { SCAN_F12, 0x00, 0x00 }, // 0x45 F12 { SCAN_NULL, 0x00, 0x00 }, // 0x46 PrintScreen { SCAN_NULL, 0x00, 0x00 }, // 0x47 Scroll Lock { SCAN_NULL, 0x00, 0x00 }, // 0x48 Pause @@ -289,6 +289,7 @@ InitUSBKeyboard ( UsbKeyboardDevice->ShiftOn = 0; UsbKeyboardDevice->NumLockOn = 0; UsbKeyboardDevice->CapsOn = 0; + UsbKeyboardDevice->ScrollOn = 0; ZeroMem (UsbKeyboardDevice->LastKeyCodeArray, sizeof (UINT8) * 8); // 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; } // -- 2.39.2