UefiCpuPkg/MtrrLib: Improve MtrrDebugPrintAllMtrrsWorker.
Improve MtrrDebugPrintAllMtrrsWorker by making use of MtrrGetMemoryAttributesInMtrrSettings. Signed-off-by: Ray Ni <ray.ni@intel.com> Cc: Eric Dong <eric.dong@intel.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Eric Dong <eric.dong@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
This commit is contained in:
parent
4b7b32f846
commit
c4fdec0a83
|
@ -3069,24 +3069,15 @@ MtrrDebugPrintAllMtrrsWorker (
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DEBUG_CODE_BEGIN ();
|
DEBUG_CODE_BEGIN ();
|
||||||
|
UINT32 Index;
|
||||||
MTRR_SETTINGS LocalMtrrs;
|
MTRR_SETTINGS LocalMtrrs;
|
||||||
MTRR_SETTINGS *Mtrrs;
|
MTRR_SETTINGS *Mtrrs;
|
||||||
UINTN Index;
|
RETURN_STATUS Status;
|
||||||
UINTN RangeCount;
|
UINTN RangeCount;
|
||||||
UINT64 MtrrValidBitsMask;
|
|
||||||
UINT64 MtrrValidAddressMask;
|
|
||||||
UINT32 VariableMtrrCount;
|
|
||||||
BOOLEAN ContainVariableMtrr;
|
BOOLEAN ContainVariableMtrr;
|
||||||
MTRR_MEMORY_RANGE Ranges[
|
MTRR_MEMORY_RANGE Ranges[
|
||||||
ARRAY_SIZE (mMtrrLibFixedMtrrTable) * sizeof (UINT64) + 2 * ARRAY_SIZE (Mtrrs->Variables.Mtrr) + 1
|
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) {
|
if (MtrrSetting != NULL) {
|
||||||
Mtrrs = MtrrSetting;
|
Mtrrs = MtrrSetting;
|
||||||
|
@ -3095,6 +3086,13 @@ MtrrDebugPrintAllMtrrsWorker (
|
||||||
Mtrrs = &LocalMtrrs;
|
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
|
// Dump RAW MTRR contents
|
||||||
//
|
//
|
||||||
|
@ -3106,7 +3104,7 @@ MtrrDebugPrintAllMtrrsWorker (
|
||||||
}
|
}
|
||||||
|
|
||||||
ContainVariableMtrr = FALSE;
|
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 ((Mtrrs->Variables.Mtrr[Index].Mask & BIT11) == 0) {
|
||||||
//
|
//
|
||||||
// If mask is not valid, then do not display range
|
// If mask is not valid, then do not display range
|
||||||
|
@ -3135,29 +3133,6 @@ MtrrDebugPrintAllMtrrsWorker (
|
||||||
//
|
//
|
||||||
DEBUG ((DEBUG_CACHE, "Memory Ranges:\n"));
|
DEBUG ((DEBUG_CACHE, "Memory Ranges:\n"));
|
||||||
DEBUG ((DEBUG_CACHE, "====================================\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++) {
|
for (Index = 0; Index < RangeCount; Index++) {
|
||||||
DEBUG ((
|
DEBUG ((
|
||||||
DEBUG_CACHE,
|
DEBUG_CACHE,
|
||||||
|
|
Loading…
Reference in New Issue