[coreboot-gerrit] Patch set updated for coreboot: intel 82801dx/gx/ix: Commit SMM relocation code to DRAM

Kyösti Mälkki (kyosti.malkki@gmail.com) gerrit at coreboot.org
Fri Dec 9 14:23:02 CET 2016


Kyösti Mälkki (kyosti.malkki at gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17712

-gerrit

commit 41949e96b3ecad6849e06da25aa826136a57393b
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date:   Sun Dec 4 22:17:37 2016 +0200

    intel 82801dx/gx/ix: Commit SMM relocation code to DRAM
    
    Make sure relocation code reaches DRAM before issuing any
    SMIs. Snooping and cache coherency may have undefined
    behaviour as CPUs do not have uniform MTRR layout yet.
    
    Change-Id: I47a7d684e05ff8c1c2f1f6a5bf8c0bbc561d9eac
    Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
 src/southbridge/intel/i82801dx/smi.c | 1 +
 src/southbridge/intel/i82801gx/smi.c | 1 +
 src/southbridge/intel/i82801ix/smi.c | 1 +
 3 files changed, 3 insertions(+)

diff --git a/src/southbridge/intel/i82801dx/smi.c b/src/southbridge/intel/i82801dx/smi.c
index e8b8ce7..71ef5fd 100644
--- a/src/southbridge/intel/i82801dx/smi.c
+++ b/src/southbridge/intel/i82801dx/smi.c
@@ -252,6 +252,7 @@ static void smm_relocate(void)
 	/* copy the SMM relocation code */
 	memcpy((void *)0x38000, &smm_relocation_start,
 			&smm_relocation_end - &smm_relocation_start);
+	wbinvd();
 
 	printk(BIOS_DEBUG, "\n");
 	dump_smi_status(reset_smi_status());
diff --git a/src/southbridge/intel/i82801gx/smi.c b/src/southbridge/intel/i82801gx/smi.c
index 01fbbfb..3487aab 100644
--- a/src/southbridge/intel/i82801gx/smi.c
+++ b/src/southbridge/intel/i82801gx/smi.c
@@ -252,6 +252,7 @@ static void smm_relocate(void)
 	/* copy the SMM relocation code */
 	memcpy((void *)0x38000, &smm_relocation_start,
 			&smm_relocation_end - &smm_relocation_start);
+	wbinvd();
 
 	printk(BIOS_DEBUG, "\n");
 	dump_smi_status(reset_smi_status());
diff --git a/src/southbridge/intel/i82801ix/smi.c b/src/southbridge/intel/i82801ix/smi.c
index dd0915a..358a1a9 100644
--- a/src/southbridge/intel/i82801ix/smi.c
+++ b/src/southbridge/intel/i82801ix/smi.c
@@ -256,6 +256,7 @@ static void smm_relocate(void)
 	/* copy the SMM relocation code */
 	memcpy((void *)0x38000, &smm_relocation_start,
 			&smm_relocation_end - &smm_relocation_start);
+	wbinvd();
 
 	printk(BIOS_DEBUG, "\n");
 	dump_smi_status(reset_smi_status());



More information about the coreboot-gerrit mailing list