From patchwork Tue Jan 25 15:16:10 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Errata #169 patch for Turion BH-G2 Date: Tue, 25 Jan 2011 15:16:10 -0000 From: Joseph Kellermann X-Patchwork-Id: 2557 Message-Id: To: "coreboot@coreboot.org" This patch fixes a potential system hang (see 'Revision Guide for AMD NPT Family 0Fh Processors' 33610.pdf). Signed-off-by: Josef Kellermann ********************************************************************************************** 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 ********************************************************************************************** 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 }