{ SCAN_F8, 0x00, 0x00 }, // 0x41\r
{ SCAN_F9, 0x00, 0x00 }, // 0x42\r
{ SCAN_F10, 0x00, 0x00 }, // 0x43\r
- { SCAN_NULL, 0x00, 0x00 }, // 0x44 F11\r
- { SCAN_NULL, 0x00, 0x00 }, // 0x45 F12\r
+ { SCAN_F11, 0x00, 0x00 }, // 0x44 F11\r
+ { SCAN_F12, 0x00, 0x00 }, // 0x45 F12\r
{ SCAN_NULL, 0x00, 0x00 }, // 0x46 PrintScreen\r
{ SCAN_NULL, 0x00, 0x00 }, // 0x47 Scroll Lock\r
{ SCAN_NULL, 0x00, 0x00 }, // 0x48 Pause\r
UsbKeyboardDevice->ShiftOn = 0;\r
UsbKeyboardDevice->NumLockOn = 0;\r
UsbKeyboardDevice->CapsOn = 0;\r
+ UsbKeyboardDevice->ScrollOn = 0; \r
ZeroMem (UsbKeyboardDevice->LastKeyCodeArray, sizeof (UINT8) * 8);\r
\r
//\r
\r
--*/\r
{ \r
- UINT32 RegEax;\r
UINT8 PhysicalAddressBits;\r
EFI_PHYSICAL_ADDRESS PageAddress;\r
UINTN IndexOfPml4Entries;\r
PAGE_TABLE_ENTRY *PageDirectoryEntry;\r
UINTN TotalPagesNum;\r
UINTN BigPageAddress;\r
+ VOID *Hob;\r
\r
//\r
- // Get physical address bits supported.\r
+ // Get physical address bits supported from CPU HOB.\r
//\r
- AsmCpuid (0x80000000, &RegEax, NULL, NULL, NULL);\r
- if (RegEax >= 0x80000008) {\r
- AsmCpuid (0x80000008, &RegEax, NULL, NULL, NULL);\r
- PhysicalAddressBits = (UINT8) RegEax;\r
- } else {\r
- PhysicalAddressBits = 36;\r
+ PhysicalAddressBits = 36;\r
+ \r
+ Hob = GetFirstHob (EFI_HOB_TYPE_CPU);\r
+ if (Hob != NULL) {\r
+ PhysicalAddressBits = ((EFI_HOB_CPU *) Hob)->SizeOfMemorySpace; \r
}\r
\r
//\r