[DDR] Recommend read termination for DDR3 designs
authorBrad Griffis <bgriffis@ti.com>
Thu, 25 Apr 2019 21:36:45 +0000 (16:36 -0500)
committerBrad Griffis <bgriffis@ti.com>
Thu, 25 Apr 2019 21:36:45 +0000 (16:36 -0500)
am335x-ddr-analysis.dss

index 07da1d0fa096d9e8e4b94b2cfc6c08afbb451383..bb7a5e1f50a3e7fada717ce461843762a95c91bf 100644 (file)
@@ -390,11 +390,25 @@ if (original_CM_PER_L3_CLKSTCTRL & 1<<2) {
        file.write(newline);
        reg_val = printRegisterValue(debugSessionDAP, "DDR PHY: DDR_PHY_CTRL_1", 0x4C0000E4);
        if ( (reg_val & 1<<20) == 0 ) {file.write("  * WARNING: reg_phy_enable_dynamic_pwrdn disabled.\n");}
-       file.write("  * Bits 9:8 (reg_phy_rd_local_odt) configured as ");
-       if ( (reg_val & 0x300) == (0 << 8) ) {file.write("no termination (00b)\n");}
-       if ( (reg_val & 0x300) == (1 << 8) ) {file.write("no termination (01b)\n");}
-       if ( (reg_val & 0x300) == (2 << 8) ) {file.write("full thevenin termination\n");}
-       if ( (reg_val & 0x300) == (3 << 8) ) {file.write("half thevenin termination\n");}
+       reg_phy_rd_local_odt = bits32(reg_val, 9, 8);
+       file.write("  * Bits 9:8 (reg_phy_rd_local_odt) to " + d2d(reg_phy_rd_local_odt) + " -> ");
+       switch (reg_phy_rd_local_odt) {
+               case 0:
+               case 1:
+                       file.write("no termination" + newline);
+                       if (is_ddr3 == 1)
+                               file.write("    -> Read termination is highly recommended in general for best DDR3 signal integrity" + newline);
+                       break;
+               case 2:
+                       file.write("full thevenin termination\n");
+                       break;
+               case 3:
+                       file.write("half thevenin termination\n");
+                       break;
+               default:
+                       file.write("ILLEGAL VALUE" + newline);
+                       break;
+       }
        reg_read_latency = bits32(reg_val, 4, 0);
        if( reg_read_latency < decoded_CL+1 )
                file.write("  * Bits 4:0 (reg_read_latency) set to " + d2d(reg_read_latency) + " -> ERROR: TOO SMALL" + newline);