src/cpu/x86/mtrr/earlymtrr: Add clear_all_var_mtrr
Picasso does not define the state of variable MTRRs on boot. Add a helper function to clear all MTRRs. BUG=b:147042464 TEST=Build trembyle Signed-off-by: Raul E Rangel <rrangel@chromium.org> Change-Id: I21b887ce12849a95ddd8f1698028fb6bbfb4a7f6 Reviewed-on: https://review.coreboot.org/c/coreboot/+/40764 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
fa52f31e11
commit
3ae3ff2828
|
@ -42,3 +42,17 @@ void set_var_mtrr(
|
|||
maskm.hi = (1 << (cpu_phys_address_size() - 32)) - 1;
|
||||
wrmsr(MTRR_PHYS_MASK(reg), maskm);
|
||||
}
|
||||
|
||||
void clear_all_var_mtrr(void)
|
||||
{
|
||||
msr_t mtrr = {0, 0};
|
||||
int vcnt;
|
||||
int i;
|
||||
|
||||
vcnt = get_var_mtrr_count();
|
||||
|
||||
for (i = 0; i < vcnt; i++) {
|
||||
wrmsr(MTRR_PHYS_MASK(i), mtrr);
|
||||
wrmsr(MTRR_PHYS_BASE(i), mtrr);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -107,6 +107,7 @@ static inline int get_var_mtrr_count(void)
|
|||
void set_var_mtrr(unsigned int reg, unsigned int base, unsigned int size,
|
||||
unsigned int type);
|
||||
int get_free_var_mtrr(void);
|
||||
void clear_all_var_mtrr(void);
|
||||
|
||||
asmlinkage void display_mtrrs(void);
|
||||
|
||||
|
|
Loading…
Reference in New Issue