diff options
author | Damien Zammit <damien@zamaudio.com> | 2016-02-13 16:53:34 +1100 |
---|---|---|
committer | Martin Roth <martinroth@google.com> | 2016-02-19 21:27:35 +0100 |
commit | 41462bd0c34838b3047ff21a15dc78a99b76e53c (patch) | |
tree | 0c89807cf86a7b66bf58c9a8d697d098e99f5c0b /src/northbridge/amd/amdmct/mct_ddr3/mctsdi.c | |
parent | a649a543ba97e9213f358f81807f4fd86cfa3274 (diff) | |
download | coreboot-41462bd0c34838b3047ff21a15dc78a99b76e53c.tar.xz |
nb/amd/amdmct: Add socket specific configuration for FM2
Change-Id: I1088064e5f84fcabcd51e0eaaedfb5074f7fb2b5
Signed-off-by: Damien Zammit <damien@zamaudio.com>
Reviewed-on: https://review.coreboot.org/13709
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Diffstat (limited to 'src/northbridge/amd/amdmct/mct_ddr3/mctsdi.c')
-rw-r--r-- | src/northbridge/amd/amdmct/mct_ddr3/mctsdi.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/northbridge/amd/amdmct/mct_ddr3/mctsdi.c b/src/northbridge/amd/amdmct/mct_ddr3/mctsdi.c index d8da16b4fe..670d640a6c 100644 --- a/src/northbridge/amd/amdmct/mct_ddr3/mctsdi.c +++ b/src/northbridge/amd/amdmct/mct_ddr3/mctsdi.c @@ -239,6 +239,19 @@ static uint8_t fam15_rttwr(struct DCTStatStruc *pDCTstat, uint8_t dct, uint8_t d term = 0x2; } } + } else if (package_type == PT_FM2) { + /* Socket FM2: Fam15h Model10 BKDG 3.12 Table 32 */ + if (MaxDimmsInstallable == 1) { + term = 0x0; + } else if (MaxDimmsInstallable == 2) { + if ((number_of_dimms == 2) && (frequency_index >= 0x12)) { + term = 0x1; + } else if (number_of_dimms == 1) { + term = 0x0; + } else { + term = 0x2; + } + } } else { /* TODO * Other sockets unimplemented @@ -606,6 +619,37 @@ static uint8_t fam15_rttnom(struct DCTStatStruc *pDCTstat, uint8_t dct, uint8_t } } } + } else if (package_type == PT_FM2) { + /* Socket FM2: Fam15h Model10 BKDG 3.12 Table 32 */ + if (MaxDimmsInstallable == 1) { + if ((frequency_index == 0x4) + || (frequency_index == 0x6) + || (frequency_index == 0xa)) + term = 0x4; + else if (frequency_index == 0xe) + term = 0x3; + else if (frequency_index >= 0x12) + term = 0x2; + } + if (MaxDimmsInstallable == 2) { + if (number_of_dimms == 1) { + if (frequency_index <= 0xa) { + term = 0x4; + } else if (frequency_index <= 0xe) { + term = 0x3; + } else { + term = 0x2; + } + } else { + if (frequency_index <= 0xa) { + term = 0x2; + } else if (frequency_index <= 0xe) { + term = 0x1; + } else { + term = 0x0; + } + } + } } else { /* TODO * Other sockets unimplemented |