aboutsummaryrefslogtreecommitdiff
path: root/src/northbridge/amd/amdmct/mct_ddr3/mctsdi.c
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2016-02-13 16:53:34 +1100
committerMartin Roth <martinroth@google.com>2016-02-19 21:27:35 +0100
commit41462bd0c34838b3047ff21a15dc78a99b76e53c (patch)
tree0c89807cf86a7b66bf58c9a8d697d098e99f5c0b /src/northbridge/amd/amdmct/mct_ddr3/mctsdi.c
parenta649a543ba97e9213f358f81807f4fd86cfa3274 (diff)
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.c44
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