diff options
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 |