Jonathan A. Kollasch (jakllsch@kollasch.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10962
-gerrit
commit 9965dddf08dcd046121a4b00643bf3d1927bd5c2 Author: Jonathan A. Kollasch jakllsch@kollasch.net Date: Fri Jul 17 07:33:20 2015 -0500
amd/car: avoid wbinvd() that could cause system hang later
Relevant to multi-socket K8 rev.F machines.
Change-Id: I36705af7a7672f9f387c0433146c3642123f574b Signed-off-by: Jonathan A. Kollasch jakllsch@kollasch.net --- src/cpu/amd/car/post_cache_as_ram.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/cpu/amd/car/post_cache_as_ram.c b/src/cpu/amd/car/post_cache_as_ram.c index 6c32090..d676784 100644 --- a/src/cpu/amd/car/post_cache_as_ram.c +++ b/src/cpu/amd/car/post_cache_as_ram.c @@ -135,7 +135,11 @@ void cache_as_ram_new_stack (void) print_car_debug("Disabling cache as ram now\n"); disable_cache_as_ram_bsp();
- disable_cache(); + /* + * Can not use disable_cache() here because it does a wbinvd() which + * will cause problems when other CPUs also do a wbinvd() later. + */ + write_cr0(read_cr0() | CR0_CacheDisable); set_var_mtrr(0, 0x00000000, CONFIG_RAMTOP, MTRR_TYPE_WRBACK); enable_cache();