From fb937496428272c5bc9001d98fb99a70961f7df4 Mon Sep 17 00:00:00 2001 From: "Ronald G. Minnich" Date: Sat, 10 Jun 2006 22:57:15 +0000 Subject: changes from AMD for making OLPC video work. git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2316 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/cpu/amd/model_gx2/cpubug.c | 74 +++++++++++++++++++++++++++----------- src/cpu/amd/model_gx2/cpureginit.c | 15 ++++---- src/cpu/amd/model_gx2/vsmsetup.c | 7 ++-- 3 files changed, 67 insertions(+), 29 deletions(-) (limited to 'src/cpu') diff --git a/src/cpu/amd/model_gx2/cpubug.c b/src/cpu/amd/model_gx2/cpubug.c index 3c51208938..e38bbfbaa3 100644 --- a/src/cpu/amd/model_gx2/cpubug.c +++ b/src/cpu/amd/model_gx2/cpubug.c @@ -31,25 +31,46 @@ bug573(void){ } #endif +/************************************************************************** + * + * pcideadlock + * + * Bugtool #465 and #609 + * PCI cache deadlock + * There is also fix code in cache and PCI functions. This bug is very is pervasive. + * + * Entry: + * Exit: + * Modified: + * + **************************************************************************/ static void pcideadlock(void) { msr_t msr; + /* + * forces serialization of all load misses. Setting this bit prevents the + * DM pipe from backing up if a read request has to be held up waiting + * for PCI writes to complete. + */ msr = rdmsr(CPU_DM_CONFIG0); msr.hi &= ~(7< #include +#include /* what a mess this uncompress thing is. I am not at all happy about how this * was done, but can't fix it yet. RGM @@ -335,7 +336,7 @@ void do_vsmbios(void) unsigned long busdevfn; unsigned int rom = 0; unsigned char *buf; - unsigned int size = 256*1024; + unsigned int size = SMM_SIZE*1024; int i; printk_err("do_vsmbios\n"); @@ -353,12 +354,12 @@ void do_vsmbios(void) //rom = 0xfff80000; //rom = 0xfffc0000; /* the VSA starts at the base of rom - 64 */ - rom = ((unsigned long) 0) - (ROM_SIZE + 35*1024); + rom = ((unsigned long) 0) - (ROM_SIZE + 64*1024); buf = (unsigned char *) 0x60000; unrv2b((uint8_t *)rom, buf); printk_debug("buf %p *buf %d buf[256k] %d\n", - buf, buf[0], buf[256*1024]); + buf, buf[0], buf[SMM_SIZE*1024]); printk_debug("buf[0x20] signature is %x:%x:%x:%x\n", buf[0x20] ,buf[0x21] ,buf[0x22],buf[0x23]); /* check for post code at start of vsainit.bin. If you don't see it, -- cgit v1.2.3