/* The function is invoked before SMBASE relocation in S3 path. It does first time microcode load and restores MTRRs for both BSP and APs. */
VOID InitializeCpuBeforeRebase(IN BOOLEAN IsBsp)
/* The function is invoked before SMBASE relocation in S3 path. It does first time microcode load and restores MTRRs for both BSP and APs. */
VOID InitializeCpuBeforeRebase(IN BOOLEAN IsBsp)
{
  LoadMtrrData (mAcpiCpuData.MtrrTable);
  SetRegister (TRUE);
  ProgramVirtualWireMode ();
  if (!IsBsp) {
    DisableLvtInterrupts ();
  }
  InterlockedDecrement (&mNumberToFinish);
  if (IsBsp) {
    while (mNumberToFinish > 0) {
      CpuPause ();
    }
  }
}