\r
#include "Performance.h"\r
\r
-VOID\r
-ClearDebugRegisters (\r
- VOID\r
- )\r
-{\r
- //\r
- // BugBug: We should not need to do this. We need to root cause this bug!!!!\r
- //\r
- AsmWriteDr0 (0);\r
- AsmWriteDr1 (0);\r
-}\r
\r
STATIC\r
VOID\r
//\r
// Allocate a block of memory that contain performance data to OS\r
//\r
+ mAcpiLowMemoryBase = 0xFFFFFFFF;\r
Status = gBS->AllocatePages (\r
- AllocateAnyPages,\r
- EfiACPIReclaimMemory,\r
+ AllocateMaxAddress,\r
+ EfiReservedMemoryType,\r
4,\r
&mAcpiLowMemoryBase\r
);\r
return ;\r
}\r
\r
- mAcpiLowMemoryLength = 0x1000;\r
+ mAcpiLowMemoryLength = EFI_PAGES_TO_SIZE(4);\r
\r
Ptr = (UINT8 *) ((UINT32) mAcpiLowMemoryBase + sizeof (PERF_HEADER));\r
LimitCount = (mAcpiLowMemoryLength - sizeof (PERF_HEADER)) / sizeof (PERF_DATA);\r
&Cpu\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (mAcpiLowMemoryBase, 1);\r
+ gBS->FreePages (mAcpiLowMemoryBase, 4);\r
return ;\r
}\r
//\r
//\r
Status = Cpu->GetTimerValue (Cpu, 0, &(CurrentTicker), &TimerPeriod);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (mAcpiLowMemoryBase, 1);\r
+ gBS->FreePages (mAcpiLowMemoryBase, 4);\r
return ;\r
}\r
\r
&Handles\r
);\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePages (mAcpiLowMemoryBase, 1);\r
+ gBS->FreePages (mAcpiLowMemoryBase, 4);\r
return ;\r
}\r
//\r
\r
Done:\r
\r
- ClearDebugRegisters ();\r
-\r
mPerfHeader.Signiture = 0x66726550;\r
\r
//\r
\r
gRT->SetVariable (\r
L"PerfDataMemAddr",\r
- &gEfiGlobalVariableGuid,\r
+ &gEfiGenericPlatformVariableGuid,\r
EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,\r
sizeof (UINT32),\r
(VOID *) &mAcpiLowMemoryBase\r