I have posted a thread about one strange memory issue in
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/290594.aspx
Now I meet another one. I have three boards which couldn't be initialized both in JTAG and uboot.
In JTAG using GEL file from http://processors.wiki.ti.com/index.php/DM816x_C6A816x_AM389x_DDR3_Init.
I could attach to A8 with JTAG. But I couldn't do DDR3 initialization.
CortexA8: Output: Device type is GP
CortexA8: Output: Netra Main PLL Init is in Progress, Please wait .....
CortexA8: Output: Netra Main PLL Init is Done .....
CortexA8: Output: Netra DDR PLL Init is in Progress for 796.5 MHz DDR Clock, Please wait .....
CortexA8: Output: Netra DDR PLL Init is Done .....
CortexA8: Output: Netra DDR2/3 PRCM Init is in progress .....
CortexA8: Output: Netra DDR2/3 PRCM Init is Done .....
CortexA8: Output: Initializing EMIF1 .....
CortexA8: Trouble Writing Memory Block at 0x4d000010 on Page 0 of Length 0x4: (Error -2130 @ 0x4D000010) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 0.0.0.0)
DDR3_796MHZ_doall() cannot be evaluated.
target access failed
at *((unsigned int *) (0x4D000000+0x10))=(unsigned int) (0x10000000|SDREF) [dvr_netra.gel:272]
at EMIF4P_Init(0x1779C9FE, 0x50608074, 0x009F857F, (0x10001841&0xfffffff), 0x62A73832, 0x00000310) [dvr_netra.gel:1666]
at NetraDDRPLL_796() [dvr_netra.gel:1199]
at DDR3_796MHZ_doall()
Some boards are failure on emif1 initialization(Mark as TypeA)
while some boards are failure on emif0 initialization(Mark as TypeB).
If emif0 initialization fails, the output will be
at *((unsigned int *) (0x4C000000+0x10))=(unsigned int) (0x10000000|SDREF)
I had tried several methods to solve it as follow:
a.Decreasing frequency of JTAG to 1MHz.
b.Decreasing frequency of DDR3 clock.
But I got the same result.
So I modified uboot to initialize only emif0 for TypeA and initialize only emif1 for TypeB.
Flashed these uboot to new nand flash and replaced them to those boards correspondingly.
All boards would boot up into uboot successfully.
If uboot initialized both emifs, all boards wouldn't be boot up successfully.
What the root cause is it?
Thanks.