diff options
author | Zheng Bao <zheng.bao@amd.com> | 2010-04-23 17:32:48 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2010-04-23 17:32:48 +0000 |
commit | eb75f652d392d2f4f257194e112f3f0db7479145 (patch) | |
tree | aa972907734abcba4ca52f2a3a71f8d81d4bdce0 /src/northbridge/amd/amdfam10 | |
parent | fe6c2cda6e6977894d9b668af9509b983c850f68 (diff) |
DDR3 support for AMD Fam10.
Signed-off-by: Zheng Bao <zheng.bao@amd.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5481 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/northbridge/amd/amdfam10')
-rw-r--r-- | src/northbridge/amd/amdfam10/amdfam10.h | 6 | ||||
-rw-r--r-- | src/northbridge/amd/amdfam10/raminit_amdmct.c | 56 |
2 files changed, 61 insertions, 1 deletions
diff --git a/src/northbridge/amd/amdfam10/amdfam10.h b/src/northbridge/amd/amdfam10/amdfam10.h index 81dec8858d..49046fb531 100644 --- a/src/northbridge/amd/amdfam10/amdfam10.h +++ b/src/northbridge/amd/amdfam10/amdfam10.h @@ -996,7 +996,11 @@ struct mem_info { // pernode u8 rsv[1]; } __attribute__((packed)); #else -#include "../amdmct/mct/mct_d.h" + #if (CONFIG_DIMM_SUPPORT & 0x000F)==0x0005 /* AMD_FAM10_DDR3 */ + #include "../amdmct/mct_ddr3/mct_d.h" + #else + #include "../amdmct/mct/mct_d.h" + #endif #endif struct link_pair_t { diff --git a/src/northbridge/amd/amdfam10/raminit_amdmct.c b/src/northbridge/amd/amdfam10/raminit_amdmct.c index 0a298727b7..09bdd70437 100644 --- a/src/northbridge/amd/amdfam10/raminit_amdmct.c +++ b/src/northbridge/amd/amdfam10/raminit_amdmct.c @@ -30,6 +30,54 @@ static void print_t(const char *strval) printk(BIOS_DEBUG, "%s", strval); #endif } + +#if (CONFIG_DIMM_SUPPORT & 0x000F)==0x0005 /* AMD_FAM10_DDR3 */ +#include "amdfam10.h" +#include "../amdmct/wrappers/mcti.h" +#include "../amdmct/amddefs.h" +#include "../amdmct/mct_ddr3/mwlc_d.h" +#include "../amdmct/mct_ddr3/mct_d.h" +#include "../amdmct/mct_ddr3/mct_d_gcc.h" + +#include "../amdmct/wrappers/mcti_d.c" +#include "../amdmct/mct_ddr3/mct_d.c" + +#include "../amdmct/mct_ddr3/mctmtr_d.c" +#include "../amdmct/mct_ddr3/mctcsi_d.c" +#include "../amdmct/mct_ddr3/mctecc_d.c" +#include "../amdmct/mct_ddr3/mctdqs_d.c" +#include "../amdmct/mct_ddr3/mctsrc.c" +#include "../amdmct/mct_ddr3/mctsdi.c" +#include "../amdmct/mct_ddr3/mctproc.c" +#include "../amdmct/mct_ddr3/mctprob.c" +#include "../amdmct/mct_ddr3/mcthwl.c" +#include "../amdmct/mct_ddr3/mctwl.c" +#include "../amdmct/mct_ddr3/mport_d.c" +#include "../amdmct/mct_ddr3/mutilc_d.c" +#include "../amdmct/mct_ddr3/modtrdim.c" +#include "../amdmct/mct_ddr3/mhwlc_d.c" +#include "../amdmct/mct_ddr3/mctrci.c" +#include "../amdmct/mct_ddr3/mctsrc1p.c" +#include "../amdmct/mct_ddr3/mcttmrl.c" +#include "../amdmct/mct_ddr3/mcthdi.c" +#include "../amdmct/mct_ddr3/mctndi_d.c" +#include "../amdmct/mct_ddr3/mctchi_d.c" + +#if CONFIG_CPU_SOCKET_TYPE == 0x10 +//TODO: S1G1? +#elif CONFIG_CPU_SOCKET_TYPE == 0x11 +//AM3 +#include "../amdmct/mct_ddr3/mctardk5.c" +#elif CONFIG_CPU_SOCKET_TYPE == 0x12 +//F (1207), Fr2, G (1207) +#include "../amdmct/mct_ddr3/mctardk6.c" +#elif CONFIG_CPU_SOCKET_TYPE == 0x13 +//ASB2 +#include "../amdmct/mct_ddr3/mctardk5.c" +#endif + +#else /* DDR2 */ + #include "amdfam10.h" #include "../amdmct/wrappers/mcti.h" #include "../amdmct/amddefs.h" @@ -65,6 +113,8 @@ static void print_t(const char *strval) #include "../amdmct/mct/mct_fd.c" +#endif /* DDR2 */ + int mctRead_SPD(u32 smaddr, u32 reg) { return spd_read_byte(smaddr, reg); @@ -141,9 +191,15 @@ u32 mctGetLogicalCPUID(u32 Node) case 0x10042: ret = AMD_RB_C2; break; + case 0x10043: + ret = AMD_RB_C3; + break; case 0x10062: ret = AMD_DA_C2; break; + case 0x10063: + ret = AMD_DA_C3; + break; case 0x10080: ret = AMD_HY_D0; break; |