x86: Don't set up MTRRs if previously done
authorSimon Glass <sjg@chromium.org>
Sun, 27 Jun 2021 23:51:01 +0000 (17:51 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Thu, 15 Jul 2021 11:50:00 +0000 (19:50 +0800)
When starting U-Boot from a previous-stage bootloader we presumably don't
need to set up the variable MTRRs. In fact this could be harmful if the
existing settings are not what U-Boot uses.

Skip that step in this case.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/cpu/i386/cpu.c

index e59215c..c7f6c5a 100644 (file)
@@ -423,7 +423,7 @@ static void setup_mtrr(void)
        u64 mtrr_cap;
 
        /* Configure fixed range MTRRs for some legacy regions */
-       if (!gd->arch.has_mtrr)
+       if (!gd->arch.has_mtrr || !ll_boot_init())
                return;
 
        mtrr_cap = native_read_msr(MTRR_CAP_MSR);