[coreboot-gerrit] New patch to review for coreboot: [NOTFORMERGE] binaryPI CAR: Revert invd to wbinvd change
Kyösti Mälkki (kyosti.malkki@gmail.com)
gerrit at coreboot.org
Wed Mar 1 12:50:21 CET 2017
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/18526
-gerrit
commit 06a7c50b471ad534340379a1e64827dd1512788d
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date: Wed Mar 1 13:31:40 2017 +0200
[NOTFORMERGE] binaryPI CAR: Revert invd to wbinvd change
Requires binaryPI romstages to get fixed first.
The change was originally applied as a workaround to allow
disable_cache_as_ram() to be called with a stack frame, in
the middle of cache_as_ram_main().
Comments next to AMD_DISABLE_STACK tell to destroy the stack.
AGESA documentation and comparison to another CAR implementation
under NDA (cpcar.inc) tell to use invalidate without writeback here.
Also, using writeback here is suspected to cause low-memory
corruption on S3 resume path for platforms without PSP.
There is no documentation telling one must use writeback here
for any affected APU platforms touched here.
Now that disable_cache_as_ram() equivalent executes with no
stack, we can avoid pointless differentiation of CAR setup code
between different AMD APUs, and also in comparison against
perhaps the more authoritive CAR setup in cpcar.inc used with
UEFI implementations.
Change-Id: I693c104c3aab3be537c00695cbd764a48bd603b0
Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
src/vendorcode/amd/pi/00630F01/binaryPI/gcccar.inc | 2 +-
src/vendorcode/amd/pi/00660F01/binaryPI/gcccar.inc | 2 +-
src/vendorcode/amd/pi/00670F00/binaryPI/gcccar.inc | 2 +-
src/vendorcode/amd/pi/00730F01/binaryPI/gcccar.inc | 3 +--
4 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/vendorcode/amd/pi/00630F01/binaryPI/gcccar.inc b/src/vendorcode/amd/pi/00630F01/binaryPI/gcccar.inc
index 2707cab..15f3247 100644
--- a/src/vendorcode/amd/pi/00630F01/binaryPI/gcccar.inc
+++ b/src/vendorcode/amd/pi/00630F01/binaryPI/gcccar.inc
@@ -903,7 +903,7 @@ fam15_disable_stack_remote_read_exit:
_RDMSR
btr $INVD_WBINVD, %eax # Disable INVD -> WBINVD conversion
_WRMSR
- wbinvd # Clear the cache tag RAMs
+ invd # Clear the cache tag RAMs
#.if (bh == 01h) || (bh == 03h) ; Is this TN or KV?
cmp $01, %bh
jz 4f
diff --git a/src/vendorcode/amd/pi/00660F01/binaryPI/gcccar.inc b/src/vendorcode/amd/pi/00660F01/binaryPI/gcccar.inc
index d6782a3..19102fc 100644
--- a/src/vendorcode/amd/pi/00660F01/binaryPI/gcccar.inc
+++ b/src/vendorcode/amd/pi/00660F01/binaryPI/gcccar.inc
@@ -638,7 +638,7 @@ fam15_disable_stack_remote_read_exit:
_RDMSR
btr $INVD_WBINVD, %eax # Disable INVD -> WBINVD conversion
_WRMSR
- wbinvd #bao # Clear the cache tag RAMs
+ invd # Clear the cache tag RAMs
# #.if (bh == 01h) || (bh == 03h) ; Is this TN or KM?
# cmp $01, %bh
# jz 4f
diff --git a/src/vendorcode/amd/pi/00670F00/binaryPI/gcccar.inc b/src/vendorcode/amd/pi/00670F00/binaryPI/gcccar.inc
index d6782a3..19102fc 100644
--- a/src/vendorcode/amd/pi/00670F00/binaryPI/gcccar.inc
+++ b/src/vendorcode/amd/pi/00670F00/binaryPI/gcccar.inc
@@ -638,7 +638,7 @@ fam15_disable_stack_remote_read_exit:
_RDMSR
btr $INVD_WBINVD, %eax # Disable INVD -> WBINVD conversion
_WRMSR
- wbinvd #bao # Clear the cache tag RAMs
+ invd # Clear the cache tag RAMs
# #.if (bh == 01h) || (bh == 03h) ; Is this TN or KM?
# cmp $01, %bh
# jz 4f
diff --git a/src/vendorcode/amd/pi/00730F01/binaryPI/gcccar.inc b/src/vendorcode/amd/pi/00730F01/binaryPI/gcccar.inc
index 2c51eb1..a0a7965 100644
--- a/src/vendorcode/amd/pi/00730F01/binaryPI/gcccar.inc
+++ b/src/vendorcode/amd/pi/00730F01/binaryPI/gcccar.inc
@@ -602,8 +602,7 @@ fam16_disable_stack_remote_read_exit:
_RDMSR
btr $INVD_WBINVD, %eax # Disable INVD -> WBINVD conversion
_WRMSR
- wbinvd # Clear the cache tag RAMs
- #invd
+ invd # Clear the cache tag RAMs
#Do Standard Family 16 work
mov $HWCR, %ecx # MSR:C001_0015h
More information about the coreboot-gerrit
mailing list