diff options
author | Ronald G. Minnich <rminnich@gmail.com> | 2006-05-02 03:07:11 +0000 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2006-05-02 03:07:11 +0000 |
commit | d3ba4aaa245b1af50f70443ba01ec0baf883995f (patch) | |
tree | 86ef1da57a3c72ff0c83f8429b74d13a6c1cb7b6 /src/northbridge/amd/gx2/northbridgeinit.c | |
parent | ae3cbe951b414d9c2d2338f77e00132f7251cf94 (diff) |
Fall back to pre-broken settings and setup for GX2.
We lost a few things, but this is still worth it.
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2287 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/northbridge/amd/gx2/northbridgeinit.c')
-rw-r--r-- | src/northbridge/amd/gx2/northbridgeinit.c | 67 |
1 files changed, 26 insertions, 41 deletions
diff --git a/src/northbridge/amd/gx2/northbridgeinit.c b/src/northbridge/amd/gx2/northbridgeinit.c index 5e4d83a35d..0998a6af96 100644 --- a/src/northbridge/amd/gx2/northbridgeinit.c +++ b/src/northbridge/amd/gx2/northbridgeinit.c @@ -22,39 +22,27 @@ struct gliutable { }; struct gliutable gliu0table[] = { - /* 0x00000-0x7FFFF to MC */ - {.desc_name = MSR_GLIU0_BASE1, .desc_type = BM, .hi = MSR_MC + 0x0,.lo = 0xFFF80}, - /* 0x80000-0x9ffff to Mc */ - {.desc_name = MSR_GLIU0_BASE2, .desc_type = BM, .hi = MSR_MC + 0x0,.lo = (0x80 << 20) + 0xFFFE0}, - /* 0xc0000-0xfffff split to MC and PCI (sub decode) A0000-Bffff handled by SoftVideo */ - {.desc_name = MSR_GLIU0_SHADOW, .desc_type = SC_SHADOW,.hi = MSR_MC + 0x0,.lo= 0x03}, - /* Catch and fix dynamicly.*/ - {.desc_name = MSR_GLIU0_SYSMEM, .desc_type = R_SYSMEM, .hi = MSR_MC, .lo= 0x0}, - /* Catch and fix dynamicly.*/ - {.desc_name = MSR_GLIU0_DMM, .desc_type = BMO_DMM, .hi = MSR_MC,.lo = 0x0}, - /* Catch and fix dynamicly.*/ - {.desc_name = MSR_GLIU0_SMM, .desc_type = BMO_SMM, .hi = MSR_MC,.lo = 0x0}, - {.desc_name = GLIU0_GLD_MSR_COH,.desc_type = OTHER, .hi = 0x0, .lo = GL0_CPU}, - {.desc_name = GL_END, .desc_type = GL_END, .hi = 0x0, .lo = 0x0}, + {.desc_name=MSR_GLIU0_BASE1, .desc_type= BM,.hi= MSR_MC + 0x0,.lo= 0x0FFF80}, /* 0-7FFFF to MC*/ + {.desc_name=MSR_GLIU0_BASE2, .desc_type= BM,.hi= MSR_MC + 0x0,.lo=(0x80 << 20) + 0x0FFFE0}, /* 80000-9ffff to Mc*/ + {.desc_name=MSR_GLIU0_SHADOW,.desc_type= SC_SHADOW,.hi= MSR_MC + 0x0,.lo= 0x03}, /* C0000-Fffff split to MC and PCI (sub decode) A0000-Bffff handled by SoftVideo*/ + {.desc_name=MSR_GLIU0_SYSMEM,.desc_type= R_SYSMEM,.hi= MSR_MC,.lo= 0x0}, /* Catch and fix dynamicly.*/ + {.desc_name=MSR_GLIU0_DMM, .desc_type= BMO_DMM,.hi= MSR_MC,.lo= 0x0}, /* Catch and fix dynamicly.*/ + {.desc_name=MSR_GLIU0_SMM, .desc_type= BMO_SMM,.hi= MSR_MC,.lo= 0x0}, /* Catch and fix dynamicly.*/ + {.desc_name=GLIU0_GLD_MSR_COH,.desc_type= OTHER,.hi= 0x0,.lo= GL0_CPU}, + {.desc_name=GL_END, .desc_type= GL_END,.hi= 0x0,.lo= 0x0}, }; + struct gliutable gliu1table[] = { - /* 0x00000-0x7FFFF to GLIU0 */ - {.desc_name = MSR_GLIU1_BASE1, .desc_type = BM, .hi = MSR_GL0 + 0x0,.lo= 0x0FFF80}, - /* 0x80000-0x9ffff to GLIU0 */ - {.desc_name = MSR_GLIU1_BASE2, .desc_type = BM, .hi = MSR_GL0 + 0x0,.lo= (0x80 << 20) +0x0FFFE0}, - /* 0xc0000-0xfffff split to MC and PCI (sub decode) A0000-Bffff handled by SoftVideo */ - {.desc_name = MSR_GLIU1_SHADOW,.desc_type= SC_SHADOW,.hi= MSR_GL0 + 0x0,.lo= 0x03}, - /* Cat0xc and fix dynamicly.*/ - {.desc_name = MSR_GLIU1_SYSMEM,. desc_type = R_SYSMEM,.hi= MSR_GL0,.lo= 0x0}, - /* Cat0xc and fix dynamicly.*/ - {.desc_name = MSR_GLIU1_DMM,.desc_type= BM_DMM,.hi= MSR_GL0,.lo= 0x0}, - /* Cat0xc and fix dynamicly.*/ - {.desc_name = MSR_GLIU1_SMM,.desc_type= BM_SMM,.hi= MSR_GL0,.lo= 0x0}, - {.desc_name = GLIU1_GLD_MSR_COH,.desc_type= OTHER,.hi= 0x0,.lo= GL1_GLIU0}, - /* FooGlue FPU 0xF0*/ - {.desc_name = MSR_GLIU1_FPU_TRAP,.desc_type= SCIO,.hi= (GL1_GLCP << 29) + 0x0,.lo= 0x033000F0}, - {.desc_name = GL_END,.desc_type= GL_END,.hi= 0x0,.lo= 0x0}, + {.desc_name=MSR_GLIU1_BASE1,.desc_type= BM,.hi= MSR_GL0 + 0x0,.lo= 0x0FFF80}, /* 0-7FFFF to MC*/ + {.desc_name=MSR_GLIU1_BASE2,.desc_type= BM,.hi= MSR_GL0 + 0x0,.lo= (0x80 << 20) +0x0FFFE0}, /* 80000-9ffff to Mc*/ + {.desc_name=MSR_GLIU1_SHADOW,.desc_type= SC_SHADOW,.hi= MSR_GL0 + 0x0,.lo= 0x03},/* C0000-Fffff split to MC and PCI (sub decode)*/ + {.desc_name=MSR_GLIU1_SYSMEM,.desc_type= R_SYSMEM,.hi= MSR_GL0,.lo= 0x0}, /* Cat0xc and fix dynamicly.*/ + {.desc_name=MSR_GLIU1_DMM,.desc_type= BM_DMM,.hi= MSR_GL0,.lo= 0x0}, /* Cat0xc and fix dynamicly.*/ + {.desc_name=MSR_GLIU1_SMM,.desc_type= BM_SMM,.hi= MSR_GL0,.lo= 0x0}, /* Cat0xc and fix dynamicly.*/ + {.desc_name=GLIU1_GLD_MSR_COH,.desc_type= OTHER,.hi= 0x0,.lo= GL1_GLIU0}, + {.desc_name=MSR_GLIU1_FPU_TRAP,.desc_type= SCIO,.hi= (GL1_GLCP << 29) + 0x0,.lo= 0x033000F0}, /* FooGlue FPU 0xF0*/ + {.desc_name=GL_END,.desc_type= GL_END,.hi= 0x0,.lo= 0x0}, }; struct gliutable *gliutables[] = {gliu0table, gliu1table, 0}; @@ -270,15 +258,16 @@ SMMGL1Init(struct gliutable *gl) { } static void -GLIUInit(struct gliutable *gl) -{ +GLIUInit(struct gliutable *gl){ + while (gl->desc_type != GL_END){ switch(gl->desc_type){ default: - printk_err("%s: name %x, type %x, hi %x, lo %x: unsupported type: ", - __FUNCTION__, gl->desc_name, gl->desc_type, gl->hi, gl->hi); - printk_err("Must be %x, %x, %x, %x, %x, or %x\n", - SC_SHADOW,R_SYSMEM,BMO_DMM, BM_DMM, BMO_SMM,BM_SMM); + printk_err("%s: name %x, type %x, hi %x, lo %x: unsupported type: ", __FUNCTION__, + gl->desc_name, gl->desc_type, gl->hi, gl->hi); + printk_err("Must be %x, %x, %x, %x, %x, or %x\n", SC_SHADOW,R_SYSMEM,BMO_DMM, + BM_DMM, BMO_SMM,BM_SMM); + case SC_SHADOW: /* Check for a Shadow entry*/ ShadowInit(gl); break; @@ -287,7 +276,7 @@ GLIUInit(struct gliutable *gl) SysmemInit(gl); break; - case BMO_DMM: /* check for a DMM entry*/ + case BMO_DMM: /* check for a DMM entry*/ DMMGL0Init(gl); break; @@ -555,22 +544,18 @@ northbridgeinit(void) int i; printk_debug("Enter %s\n", __FUNCTION__); -/* for(i = 0; gliutables[i]; i++) GLIUInit(gliutables[i]); GeodeLinkPriority(); - */ /* Now that the descriptor to memory is set up.*/ /* The memory controller needs one read to synch it's lines before it can be used.*/ i = *(int *) 0; GLPCIInit(); -/* ClockGatingInit(); - */ __asm__("FINIT\n"); /* CPUBugsFix -- called elsewhere */ printk_debug("Exit %s\n", __FUNCTION__); |