UefiCpuPkg/MtrrLib: Fix MtrrSetAllMtrrs to handle absent fixed MTRRs.

Update MtrrSetAllMtrrs to not access fixed MTRRs if CPU doesn't
support them.

Signed-off-by: Ray Ni <ray.ni@intel.com>
Signed-off-by: Yuanhao Xie <yuanhao.xie@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:
Ray Ni
2022-09-29 12:48:19 +08:00
committed by mergify[bot]
parent cc070b88e4
commit 1217f59d23
2 changed files with 26 additions and 9 deletions

View File

@@ -1,7 +1,7 @@
/** @file
MTRR setting library
Copyright (c) 2008 - 2020, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2008 - 2023, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -214,9 +214,12 @@ MtrrGetAllMtrrs (
/**
This function sets all MTRRs (variable and fixed)
@param[in] MtrrSetting A buffer to hold all MTRRs content.
Note: The behavior of this function is to program everything in MtrrSetting to hardware.
MTRR might not be enabled due to enable bit is clear in MtrrSetting->MtrrDefType.
@return The pointer of MtrrSetting
@param[in] MtrrSetting A buffer holding all MTRRs content.
@retval The pointer of MtrrSetting
**/
MTRR_SETTINGS *