UINTN NumberOfCpus;\r
UINTN NumberOfEnabledProcessors;\r
VOID *Stack;\r
- UINTN TableSize;\r
- CPU_REGISTER_TABLE *RegisterTable;\r
- UINTN Index;\r
- EFI_PROCESSOR_INFORMATION ProcessorInfoBuffer;\r
UINTN GdtSize;\r
UINTN IdtSize;\r
VOID *Gdt;\r
AcpiCpuData->PreSmmInitRegisterTable = OldAcpiCpuData->PreSmmInitRegisterTable;\r
AcpiCpuData->ApLocation = OldAcpiCpuData->ApLocation;\r
CopyMem (&AcpiCpuData->CpuStatus, &OldAcpiCpuData->CpuStatus, sizeof (CPU_STATUS_INFORMATION));\r
- } else {\r
- //\r
- // Allocate buffer for empty RegisterTable and PreSmmInitRegisterTable for all CPUs\r
- //\r
- TableSize = 2 * NumberOfCpus * sizeof (CPU_REGISTER_TABLE);\r
- RegisterTable = (CPU_REGISTER_TABLE *)AllocateZeroPages (TableSize);\r
- ASSERT (RegisterTable != NULL);\r
-\r
- for (Index = 0; Index < NumberOfCpus; Index++) {\r
- Status = MpServices->GetProcessorInfo (\r
- MpServices,\r
- Index,\r
- &ProcessorInfoBuffer\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
-\r
- RegisterTable[Index].InitialApicId = (UINT32)ProcessorInfoBuffer.ProcessorId;\r
- RegisterTable[Index].TableLength = 0;\r
- RegisterTable[Index].AllocatedSize = 0;\r
- RegisterTable[Index].RegisterTableEntry = 0;\r
-\r
- RegisterTable[NumberOfCpus + Index].InitialApicId = (UINT32)ProcessorInfoBuffer.ProcessorId;\r
- RegisterTable[NumberOfCpus + Index].TableLength = 0;\r
- RegisterTable[NumberOfCpus + Index].AllocatedSize = 0;\r
- RegisterTable[NumberOfCpus + Index].RegisterTableEntry = 0;\r
- }\r
- AcpiCpuData->RegisterTable = (EFI_PHYSICAL_ADDRESS)(UINTN)RegisterTable;\r
- AcpiCpuData->PreSmmInitRegisterTable = (EFI_PHYSICAL_ADDRESS)(UINTN)(RegisterTable + NumberOfCpus);\r
}\r
\r
//\r