Cmos0x34 = (UINT8) CmosRead8 (0x34);\r
Cmos0x35 = (UINT8) CmosRead8 (0x35);\r
\r
- return ((((Cmos0x35 << 8) + Cmos0x34) << 16) + SIZE_16MB);\r
+ return (((UINTN)((Cmos0x35 << 8) + Cmos0x34) << 16) + SIZE_16MB);\r
}\r
\r
\r
@return EFI_SUCCESS The PEIM initialized successfully.\r
\r
**/\r
-EFI_STATUS\r
+EFI_PHYSICAL_ADDRESS\r
MemDetect (\r
)\r
{\r
AddMemoryRangeHob (BASE_1MB, MemoryBase);\r
AddMemoryRangeHob (0, BASE_512KB + BASE_128KB);\r
\r
- return EFI_SUCCESS;\r
+ return MemoryBase + MemorySize;\r
}\r
\r
EFI_MEMORY_TYPE_INFORMATION mDefaultMemoryTypeInformation[] = {\r
{ EfiACPIMemoryNVS, 0x004 },\r
{ EfiACPIReclaimMemory, 0x008 },\r
- { EfiReservedMemoryType, 0x004 }, \r
+ { EfiReservedMemoryType, 0x004 },\r
{ EfiRuntimeServicesData, 0x024 },\r
{ EfiRuntimeServicesCode, 0x030 },\r
{ EfiBootServicesCode, 0x180 },\r
\r
VOID\r
MemMapInitialization (\r
+ EFI_PHYSICAL_ADDRESS TopOfMemory\r
)\r
{\r
//\r
//\r
// Add PCI MMIO space available to PCI resource allocations\r
//\r
- AddIoMemoryBaseSizeHob (0x80000000, 0xFEC00000 - 0x80000000);\r
+ if (TopOfMemory < BASE_2GB) {\r
+ AddIoMemoryBaseSizeHob (BASE_2GB, 0xFEC00000 - BASE_2GB);\r
+ } else {\r
+ AddIoMemoryBaseSizeHob (TopOfMemory, 0xFEC00000 - TopOfMemory);\r
+ }\r
\r
//\r
// Local APIC range\r
//\r
- AddIoMemoryBaseSizeHob (0xFEC80000, 0x80000);\r
+ AddIoMemoryBaseSizeHob (0xFEC80000, SIZE_512KB);\r
\r
//\r
// I/O APIC range\r
//\r
- AddIoMemoryBaseSizeHob (0xFEC00000, 0x80000);\r
+ AddIoMemoryBaseSizeHob (0xFEC00000, SIZE_512KB);\r
\r
//\r
// Video memory + Legacy BIOS region\r
//\r
- AddIoMemoryRangeHob (0x0A0000, 0x100000);\r
+ AddIoMemoryRangeHob (0x0A0000, BASE_1MB);\r
}\r
\r
\r
//\r
// Disable A20 Mask\r
//\r
- IoWrite8 (0x92, (UINT8) (IoRead8 (0x92) | 0x02));\r
+ IoOr8 (0x92, BIT1);\r
\r
//\r
// Build the CPU hob with 36-bit addressing and 16-bits of IO space.\r
IN CONST EFI_PEI_SERVICES **PeiServices\r
)\r
{\r
+ EFI_PHYSICAL_ADDRESS TopOfMemory;\r
+\r
DEBUG ((EFI_D_ERROR, "Platform PEIM Loaded\n"));\r
\r
- MemDetect ();\r
+ TopOfMemory = MemDetect ();\r
\r
ReserveEmuVariableNvStore ();\r
\r
PeiFvInitialization ();\r
\r
- MemMapInitialization ();\r
+ MemMapInitialization (TopOfMemory);\r
\r
MiscInitialization ();\r
\r