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; } //