Improve MtrrDebugPrintAllMtrrsWorker by making use of MtrrGetMemoryAttributesInMtrrSettings.
Signed-off-by: Ray Ni <ray...@intel.com> Cc: Eric Dong <eric.d...@intel.com> Cc: Rahul Kumar <rahul1.ku...@intel.com> Cc: Gerd Hoffmann <kra...@redhat.com> --- UefiCpuPkg/Library/MtrrLib/MtrrLib.c | 45 ++++++++++----------------------------------- 1 file changed, 10 insertions(+), 35 deletions(-) diff --git a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c b/UefiCpuPkg/Library/MtrrLib/MtrrLib.c index 61c81c5139..26422204c4 100644 --- a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c +++ b/UefiCpuPkg/Library/MtrrLib/MtrrLib.c @@ -3068,24 +3068,15 @@ MtrrDebugPrintAllMtrrsWorker ( ) { DEBUG_CODE_BEGIN (); + UINT32 Index; MTRR_SETTINGS LocalMtrrs; MTRR_SETTINGS *Mtrrs; - UINTN Index; + RETURN_STATUS Status; UINTN RangeCount; - UINT64 MtrrValidBitsMask; - UINT64 MtrrValidAddressMask; - UINT32 VariableMtrrCount; BOOLEAN ContainVariableMtrr; MTRR_MEMORY_RANGE Ranges[ ARRAY_SIZE (mMtrrLibFixedMtrrTable) * sizeof (UINT64) + 2 * ARRAY_SIZE (Mtrrs->Variables.Mtrr) + 1 ]; - MTRR_MEMORY_RANGE RawVariableRanges[ARRAY_SIZE (Mtrrs->Variables.Mtrr)]; - - if (!IsMtrrSupported ()) { - return; - } - - VariableMtrrCount = GetVariableMtrrCountWorker (); if (MtrrSetting != NULL) { Mtrrs = MtrrSetting; @@ -3094,6 +3085,13 @@ MtrrDebugPrintAllMtrrsWorker ( Mtrrs = &LocalMtrrs; } + RangeCount = ARRAY_SIZE (Ranges); + Status = MtrrGetMemoryAttributesInMtrrSettings (Mtrrs, Ranges, &RangeCount); + if (RETURN_ERROR (Status)) { + DEBUG ((DEBUG_CACHE, "MTRR is not enabled.\n")); + return; + } + // // Dump RAW MTRR contents // @@ -3105,7 +3103,7 @@ MtrrDebugPrintAllMtrrsWorker ( } ContainVariableMtrr = FALSE; - for (Index = 0; Index < VariableMtrrCount; Index++) { + for (Index = 0; Index < ARRAY_SIZE (Mtrrs->Variables.Mtrr); Index++) { if ((Mtrrs->Variables.Mtrr[Index].Mask & BIT11) == 0) { // // If mask is not valid, then do not display range @@ -3134,29 +3132,6 @@ MtrrDebugPrintAllMtrrsWorker ( // DEBUG ((DEBUG_CACHE, "Memory Ranges:\n")); DEBUG ((DEBUG_CACHE, "====================================\n")); - MtrrLibInitializeMtrrMask (&MtrrValidBitsMask, &MtrrValidAddressMask); - Ranges[0].BaseAddress = 0; - Ranges[0].Length = MtrrValidBitsMask + 1; - Ranges[0].Type = MtrrGetDefaultMemoryTypeWorker (Mtrrs); - RangeCount = 1; - - MtrrLibGetRawVariableRanges ( - &Mtrrs->Variables, - VariableMtrrCount, - MtrrValidBitsMask, - MtrrValidAddressMask, - RawVariableRanges - ); - MtrrLibApplyVariableMtrrs ( - RawVariableRanges, - VariableMtrrCount, - Ranges, - ARRAY_SIZE (Ranges), - &RangeCount - ); - - MtrrLibApplyFixedMtrrs (&Mtrrs->Fixed, Ranges, ARRAY_SIZE (Ranges), &RangeCount); - for (Index = 0; Index < RangeCount; Index++) { DEBUG (( DEBUG_CACHE, -- 2.36.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108570): https://edk2.groups.io/g/devel/message/108570 Mute This Topic: https://groups.io/mt/101331033/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-