/** Replace OS MTRR's with SMI MTRR's. @param CpuIndex Processor Index **/ VOID ReplaceOSMtrrs ( IN UINTN CpuIndex ) { SmmCpuFeaturesDisableSmrr (); // // Replace all MTRRs registers // MtrrSetAllMtrrs (&gSmiMtrrs); }
/** Replace OS MTRR's with SMI MTRR's. @param CpuIndex Processor Index **/ VOID ReplaceOSMtrrs ( IN UINTN CpuIndex ) { PROCESSOR_SMM_DESCRIPTOR *Psd; UINT64 *SmiMtrrs; MTRR_SETTINGS *BiosMtrr; Psd = (PROCESSOR_SMM_DESCRIPTOR*)(mCpuHotPlugData.SmBase[CpuIndex] + SMM_PSD_OFFSET); SmiMtrrs = (UINT64*)(UINTN)Psd->MtrrBaseMaskPtr; SmmCpuFeaturesDisableSmrr (); // // Replace all MTRRs registers // BiosMtrr = (MTRR_SETTINGS*)SmiMtrrs; MtrrSetAllMtrrs(BiosMtrr); }