From 59c3a0615498b6fa79bb4152deab7e837f7ed389 Mon Sep 17 00:00:00 2001 From: Bruce Griffith Date: Mon, 12 Aug 2013 01:53:13 -0600 Subject: AMD AGESA: Remove INVD instruction when transitioning from CAR The AMD AGESA function to move the stack from cache-as-ram to actual RAM doesn't need any help. The current implementation has an INVD instruction just before cache-as-RAM is torn down. It isn't needed for Trinity processors and makes Kabini boot unreliable. Change-Id: Ibe9e4105eee032471ccbb2d537471d5fa5847d22 Signed-off-by: Bruce Griffith Reviewed-on: http://review.coreboot.org/3852 Tested-by: build bot (Jenkins) Reviewed-by: Siyuan Wang Reviewed-by: Paul Menzel Reviewed-by: Marc Jones --- src/cpu/amd/agesa/cache_as_ram.inc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/cpu/amd/agesa/cache_as_ram.inc b/src/cpu/amd/agesa/cache_as_ram.inc index c645a1e517..449cf693f2 100755 --- a/src/cpu/amd/agesa/cache_as_ram.inc +++ b/src/cpu/amd/agesa/cache_as_ram.inc @@ -85,6 +85,7 @@ stop: disable_cache_as_ram: /* Save return stack */ + movd 0(%esp), %xmm1 movd %esp, %xmm0 /* Disable cache */ @@ -92,8 +93,6 @@ disable_cache_as_ram: orl $CR0_CacheDisable, %eax movl %eax, %cr0 - invd - AMD_DISABLE_STACK /* enable cache */ @@ -103,7 +102,9 @@ disable_cache_as_ram: xorl %eax, %eax /* Restore the return stack */ + wbinvd movd %xmm0, %esp + movd %xmm1, (%esp) ret cache_as_ram_setup_out: -- cgit v1.2.3