Name of user not set #1003839 has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/57089 )
Change subject: cpu/intel: Make doubly sure we don't write to IA32_FEATURE_CTRL if its lock bit is set on a reset. ......................................................................
cpu/intel: Make doubly sure we don't write to IA32_FEATURE_CTRL if its lock bit is set on a reset.
The lock bit in this MSR is preserved across resets.
Change-Id: Ib6ff08b6997e5662d32ff003a436c62ccc1c40ac Signed-off-by: Darius Goad mszoopers@protonmail.com --- M src/cpu/intel/model_1067x/mp_init.c 1 file changed, 1 insertion(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/89/57089/1
diff --git a/src/cpu/intel/model_1067x/mp_init.c b/src/cpu/intel/model_1067x/mp_init.c index 7b26875..5df5365 100644 --- a/src/cpu/intel/model_1067x/mp_init.c +++ b/src/cpu/intel/model_1067x/mp_init.c @@ -48,7 +48,6 @@ { msr_t mtrr_cap = rdmsr(MTRR_CAP_MSR); if (cpu_has_alternative_smrr() && mtrr_cap.lo & SMRR_SUPPORTED) { - set_feature_ctrl_vmx(); msr_t ia32_ft_ctrl = rdmsr(IA32_FEATURE_CONTROL); /* We don't care if the lock is already setting as our smm relocation handler is able to handle @@ -59,12 +58,11 @@ printk(BIOS_DEBUG, "IA32_FEATURE_CONTROL already locked\n"); printk(BIOS_DEBUG, "SMRR status: %senabled\n", ia32_ft_ctrl.lo & (1 << 3) ? "" : "not "); - smm_relocate(); - return; } else { if (!CONFIG(SET_IA32_FC_LOCK_BIT)) printk(BIOS_INFO, "Overriding CONFIG(SET_IA32_FC_LOCK_BIT) to enable SMRR\n"); + set_feature_ctrl_vmx(); ia32_ft_ctrl.lo |= (1 << 3) | (1 << 0); wrmsr(IA32_FEATURE_CONTROL, ia32_ft_ctrl); }