Patchwork Errata #169 patch for Turion BH-G2

login
register
about
Submitter Joseph Kellermann
Date 2011-01-25 15:16:10
Message ID <ADF72474DB94FA47B566A9574D0ECA26038ACE6F@MX1.heitec.net>
Download mbox | patch
Permalink /patch/2557/
State Superseded
Headers show

Comments

Joseph Kellermann - 2011-01-25 15:16:10
This patch fixes a potential system hang (see 'Revision Guide for AMD NPT Family 0Fh Processors' 33610.pdf).

Signed-off-by: Josef Kellermann <Joseph.Kellermann@heitec.de><Joseph.Kellermann@heitec.de>


**********************************************************************************************
IMPORTANT NOTICE / WICHTIGER HINWEIS
This communication contains information which is confidential and may also be privileged. It is for the 
exclusive use of the intended recipient(s). If you are not the intended recipient(s) please note that any 
distribution, copying or use of this communication or the information in it is strictly prohibited. If you have 
received this communication in error please notify us immediately by email or by telephone and then delete 
this email and any copies of it.
Diese E-Mail koennte vertrauliche und/oder rechtlich geschuetzte Informationen enthalten. Wenn Sie nicht 
der richtige Adressat sind oder diese E-Mail irrtuemlich erhalten haben, informieren Sie bitte sofort den 
Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser 
Mail sind nicht gestattet.

HEITEC AG, Werner-von-Siemens-Str. 61, 91052 Erlangen, HRB 7754, RG Fuerth, Vorstandsvorsitzender: 
Richard Heindl, Vorstand: Harald Preiml, Finanzvorstand: Rene-Oliver Rosner, Aufsichtsratsvorsitzender: Dr. 
Lorenz M. Raith, WWW: http://www.heitec.de
**********************************************************************************************
Marc Jones - 2011-01-26 23:45:45
On Tue, Jan 25, 2011 at 8:16 AM, Joseph Kellermann
<Joseph.Kellermann@heitec.de> wrote:
> This patch fixes a potential system hang (see 'Revision Guide for AMD NPT
> Family 0Fh Processors' 33610.pdf).
>
> Signed-off-by: Josef Kellermann <Joseph.Kellermann@heitec.de>
>

Hi Josef,

Thanks for the patch. I have some questions.

It looks like this patch mixed errata #131, #169, with #254.  The rev
guide says to only implement #131 or #169, but there isn't a CPU
version decadency on either of those errata.  The main part of your
patch, the S1G1 checking, looks like errata #254, which is not related
to #169 or #131. Can you confirm that?

Marc
Joseph Kellermann - 2011-01-27 13:05:35
Hi Marc,

sorry for the confusion.

The most important patch is for the erratum #89. I don't know why this patch isn't included if 'CONFIG_K8_REV_F_SUPPORT == 1' . Linux Kernel 2.6.12 hangs if errata#89 is not fixed, Kernel 2.6.26 doesn't. 
I'll fix errata#89 and (errata#169 (in place of errata#131)) and (errata#254 if TURION-S1G1), ok ?
Setting of F0x68[22:21] to 01b in 'k8_optimization()' , any idea for a better place ?

Regards,

Josef
Marc Jones - 2011-01-27 17:08:53
On Thu, Jan 27, 2011 at 6:05 AM, Joseph Kellermann
<Joseph.Kellermann@heitec.de> wrote:
> Hi Marc,
>
> sorry for the confusion.
>
> The most important patch is for the erratum #89. I don't know why this patch isn't included if 'CONFIG_K8_REV_F_SUPPORT == 1' . Linux Kernel 2.6.12 hangs if errata#89 is not fixed, Kernel 2.6.26 doesn't.
> I'll fix errata#89 and (errata#169 (in place of errata#131)) and (errata#254 if TURION-S1G1), ok ?
> Setting of F0x68[22:21] to 01b in 'k8_optimization()' , any idea for a better place ?
>


Hi Josef,

I think it should all be done in k8_errata(); You probably need to
pass the dev into the function.

Marc




>
> ________________________________________
> Von: Marc Jones [marcj303@gmail.com]
> Gesendet: Donnerstag, 27. Januar 2011 00:45
> Bis: Joseph Kellermann
> Cc: coreboot@coreboot.org
> Betreff: Re: [coreboot] Errata #169 patch for Turion BH-G2
>
> On Tue, Jan 25, 2011 at 8:16 AM, Joseph Kellermann
> <Joseph.Kellermann@heitec.de> wrote:
>> This patch fixes a potential system hang (see 'Revision Guide for AMD NPT
>> Family 0Fh Processors' 33610.pdf).
>>
>> Signed-off-by: Josef Kellermann <Joseph.Kellermann@heitec.de>
>>
>
> Hi Josef,
>
> Thanks for the patch. I have some questions.
>
> It looks like this patch mixed errata #131, #169, with #254.  The rev
> guide says to only implement #131 or #169, but there isn't a CPU
> version decadency on either of those errata.  The main part of your
> patch, the S1G1 checking, looks like errata #254, which is not related
> to #169 or #131. Can you confirm that?
>
> Marc
>
> --
> http://se-eng.com
>
>
> **********************************************************************************************
> IMPORTANT NOTICE / WICHTIGER HINWEIS
> This communication contains information which is confidential and may also be privileged. It is for the
> exclusive use of the intended recipient(s). If you are not the intended recipient(s) please note that any
> distribution, copying or use of this communication or the information in it is strictly prohibited. If you have
> received this communication in error please notify us immediately by email or by telephone and then delete
> this email and any copies of it.
> Diese E-Mail koennte vertrauliche und/oder rechtlich geschuetzte Informationen enthalten. Wenn Sie nicht
> der richtige Adressat sind oder diese E-Mail irrtuemlich erhalten haben, informieren Sie bitte sofort den
> Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser
> Mail sind nicht gestattet.
>
> HEITEC AG, Werner-von-Siemens-Str. 61, 91052 Erlangen, HRB 7754, RG Fuerth, Vorstandsvorsitzender:
> Richard Heindl, Vorstand: Harald Preiml, Finanzvorstand: Rene-Oliver Rosner, Aufsichtsratsvorsitzender: Dr.
> Lorenz M. Raith, WWW: http://www.heitec.de
> **********************************************************************************************
>
>

Patch

Index: src/cpu/amd/model_fxx/model_fxx_init.c
===================================================================
--- src/cpu/amd/model_fxx/model_fxx_init.c	(Revision 6297)
+++ src/cpu/amd/model_fxx/model_fxx_init.c	(Arbeitskopie)
@@ -452,10 +452,28 @@ 
 	wrmsr(HWCR_MSR, msr);
 
 #if CONFIG_K8_REV_F_SUPPORT == 1
-	/* Erratum 131... */
+	/* Erratum 89 */
 	msr = rdmsr(NB_CFG_MSR);
-	msr.lo |= 1 << 20;
-	wrmsr(NB_CFG_MSR, msr);
+	msr.lo |= 1 << 3; // Erratum 89
+	wrmsr(NB_CFG_MSR, msr);	
+	if( cpu_info()->cpu->device == 0x60f82 ) {
+		/* workaround for TURION S1G1 */
+		/* The workaround for this erratum supersedes the workaround for erratum #131. */
+		/* workaround for erratum #131 should not be applied */
+		printk(BIOS_INFO, "Applying workaround #169 for cpu 60f82.\n");
+		msr = rdmsr(0xc0010015);
+		msr.lo &= ~(1 << 3);
+		wrmsr(0xc0010015, msr);
+		msr = rdmsr(0xc0011023);
+		msr.lo &= ~(1 << 1);
+		msr.lo |= (1 << 23);
+		wrmsr(0xc0011023, msr);
+	} else {
+		/* Erratum 131... */
+		msr = rdmsr(NB_CFG_MSR);
+		msr.lo |= 1 << 20;
+		wrmsr(NB_CFG_MSR, msr);
+	}
 #endif
 
 }