Patchwork : AMD DDR3 Register manufacure feature

login
register
about
Submitter Bao, Zheng
Date 2010-08-31 05:47:46
Message ID <DD1CC71B621B004FA76856E5129D6B170413027C@sbjgexmb1.amd.com>
Download mbox | patch
Permalink /patch/1824/
State Accepted
Headers show

Comments

Bao, Zheng - 2010-08-31 05:47:46
Get Byte65/66 for register manufacture ID code. RegMan1Present will
be used in write levelization training.

Signed-off-by: Zheng Bao <zheng.bao@amd.com>

+						pDCTstat->RegMan2Present
|= 1 << i;
+					else
+						pDCTstat->RegMan1Present
|= 1 << i;
+				}
 				/* Get Control word values for RC3. We
dont need it. */
 				byte = mctRead_SPD(smbaddr, 70);
 				pDCTstat->CtrlWrd3 |= (byte >> 4) << (i
<< 2); /* C3 = SPD byte 70 [7:4] */
Get Byte65/66 for register manufacture ID code. RegMan1Present will
be used in write levelization training.

Signed-off-by: Zheng Bao <zheng.bao@amd.com>
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Patch

Index: src/northbridge/amd/amdmct/mct_ddr3/mct_d.c
===================================================================
--- src/northbridge/amd/amdmct/mct_ddr3/mct_d.c	(revision 5757)
+++ src/northbridge/amd/amdmct/mct_ddr3/mct_d.c	(working copy)
@@ -2124,7 +2124,15 @@ 
 						pDCTstat->MirrPresU_NumRegR |= 1 << i;
 				}
 				/* Get byte62: Reference Raw Card information. We dont need it now. */
-				/* byte = mctRead_SPD(smbaddr, 62); */
+				/* byte = mctRead_SPD(smbaddr, SPD_RefRawCard); */
+				/* Get Byte65/66 for register manufacture ID code */
+				if ((0x97 == mctRead_SPD(smbaddr, SPD_RegManufactureID_H)) &&
+				    (0x80 == mctRead_SPD(smbaddr, SPD_RegManufactureID_L))) {
+					if (0x16 == mctRead_SPD(smbaddr, SPD_RegManRevID))
+						pDCTstat->RegMan2Present |= 1 << i;
+					else
+						pDCTstat->RegMan1Present |= 1 << i;
+				}
 				/* Get Control word values for RC3. We dont need it. */
 				byte = mctRead_SPD(smbaddr, 70);
 				pDCTstat->CtrlWrd3 |= (byte >> 4) << (i << 2); /* C3 = SPD byte 70 [7:4] */