Other Parts Discussed in Thread: TMS320C6657, TMS320C6674
Our design targets the TMSC6670 and we found a few years back that there are Advisories called out in the TMS320C6670 Multicore Fixed and Floating-Point System-on-Chip Silicon Errata document. Advisory 30 relates to a DDR3 Automatic Leveling Issue, so Workaround 3 was our choice for addressing it. This worked with no issues for several build lots of boards until we switched from Micron MT41K256M16HA-125 XIT DDR3 to (supposedly backward compatible) Micron MT41K256M16TW-107 XIT on a 4th lot of boards.
Then there is Advisory 31 concerning a DDR3 Incremental Write Leveling Issue. The workaround states that…
“At this time, incremental write leveling is not supported on this device. It is
recommended that the incremental write leveling intervals in RDWR_LVL_CTRL and
RDWR_LVL_RMP_CTRL be programmed to 0 to disable this feature.”
This issue impacts only the incremental write leveling feature of the DDR3 Memory controller and no issues were expected with automatic write leveling due to the errata, so we’ve made sure not to enable incremental write leveling.
I have verified that changing the ODT settings, disabling ODT altogether, or even changing DDR3 timing parameters for the new -107 part have not affected/corrected the DDR3 issues we see.
The only modification that corrects our issues is to leave incremental leveling enabled after first doing a fully automatic leveling sequence.
When browsing through the TI E2E Community website I see several users who have experienced similar DDR3 issues and have also noticed varying responses from the TI Apps Engineers on the matter. For instance TI Hardware Applications Engineer Tom Johnson has posted several replies to people who’ve had problems, but has recommended partial auto-leveling (see Partial Automatic Leveling vs Full Automatic leveling):
- · TMS320C6657 – Partial Automatic Leveling was recommended (Oct 2015)
- · TMS320C6674 – Partial Automatic Leveling was recommended (Sept 2015) in post titled C6674 DDR3: Leave incremental leveling enabled indefinitely?
This leads me to the questions…
1. What mode of leveling is recommended specifically for the TMCC6670?
2. If we do switch to Partial Automatic Leveling and keep it enabled (as is done in the TI .GEL file) by leaving the RDWR_LVL_EN field of the RDWR_LVL_RMP_CTRL set/enabled, does this lower the throughput of the DDR3 controller interface even though all other RDWR_LVL_CTRL bits remain 0?
3. If incremental leveling is left enabled (RDWR_LVL_RMP_CTRL = 0x80000000; RDWR_LVL_CTRL = 0x80000000;) how does the C6670 DDR3 controller behave differently with the remaining control bits 30:0 all set to zero in this register?
Note: Disabling the RDWR_LVL_EN field bit after completing the auto-leveling or incremental leveling is what seems to break DDR3 reads/writes on boards with MT41K256M16TW-107 XIT DDR3