diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2016-12-04 22:17:37 +0200 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2016-12-10 00:08:04 +0100 |
commit | b6e9021b162ebe73d67a4d75c3e304fb2727860d (patch) | |
tree | 59fe9b0f783d868220bbda68c8dc060f28eec3ca | |
parent | 029cebc7cd0584ec517cbf38c51e0c35b52d023b (diff) |
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@gmail.com>
Reviewed-on: https://review.coreboot.org/17712
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r-- | src/southbridge/intel/i82801dx/smi.c | 1 | ||||
-rw-r--r-- | src/southbridge/intel/i82801gx/smi.c | 1 | ||||
-rw-r--r-- | src/southbridge/intel/i82801ix/smi.c | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/src/southbridge/intel/i82801dx/smi.c b/src/southbridge/intel/i82801dx/smi.c index e8b8ce7a62..71ef5fd8ee 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 01fbbfbcb7..3487aabd56 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 dd0915a90f..358a1a9ee7 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()); |