summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKane Chen <kane.chen@intel.corp-partner.google.com>2022-04-07 21:02:09 +0800
committerFelix Held <felix-coreboot@felixheld.de>2022-04-13 21:28:10 +0000
commit00aaffaf470adfbaa0fbfa0ec3cc67311763810b (patch)
tree6c394c7f901416a39f4b61ed55d28b673d014428
parent985faa873c1d43510956339363fa450dfc9d2507 (diff)
cpu/x86: Add function to set `put_back_original_solution` variable
`put_back_original_solution` variable in mtrr.c is static, but there is a need to set put_back_original_solution outside of mtrr.c in order to let `remove_temp_solution` to drop any temporary MTRRs being set outside `mtrr_use_temp_range()`, for example: `set_var_mtrr()` function is used to set MTRRs for the ROM caching. BUG=b:225766934 TEST=Able to build and boot google/redrix. Change-Id: Ic6b5683b2aa7398a5e141f710394ab772e9775e7 Signed-off-by: Kane Chen <kane.chen@intel.corp-partner.google.com> Signed-off-by: Subrata Banik <subratabanik@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/63485 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
-rw-r--r--src/cpu/x86/mtrr/mtrr.c5
-rw-r--r--src/include/cpu/x86/mtrr.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/cpu/x86/mtrr/mtrr.c b/src/cpu/x86/mtrr/mtrr.c
index 89cac7f82e..e1bdf4546a 100644
--- a/src/cpu/x86/mtrr/mtrr.c
+++ b/src/cpu/x86/mtrr/mtrr.c
@@ -860,6 +860,11 @@ void x86_mtrr_check(void)
static bool put_back_original_solution;
+void need_restore_mtrr(void)
+{
+ put_back_original_solution = true;
+}
+
void mtrr_use_temp_range(uintptr_t begin, size_t size, int type)
{
const struct range_entry *r;
diff --git a/src/include/cpu/x86/mtrr.h b/src/include/cpu/x86/mtrr.h
index b8d15179e9..5a237845cd 100644
--- a/src/include/cpu/x86/mtrr.h
+++ b/src/include/cpu/x86/mtrr.h
@@ -96,6 +96,7 @@ void x86_setup_fixed_mtrrs(void);
/* Set up fixed MTRRs but do not enable them. */
void x86_setup_fixed_mtrrs_no_enable(void);
void x86_mtrr_check(void);
+void need_restore_mtrr(void);
/* Insert a temporary MTRR range for the duration of coreboot's runtime.
* This function needs to be called after the first MTRR solution is derived. */