TI中文支持网
TI专业的中文技术问题搜集分享网站

DM8168奇怪的内存问题

我们一直使用TMS320DM8168BCYG2,

原先我们使用DDR1600(DDR_CLK=796.5MHz)一直都很好。

每个emif挂着1GB内存,128Byte interleave模式。

最近生产了些新版子,发现内存有问题,

我们芯片运行频率如下:

TI8168-GP rev 2.0

HDVICP clk     : 600MHz
L3 Fast clk    : 549MHz
HDVPSS clk     : 274MHz
Ducati M3 clk  : 274MHz
DSP clk        : 1000MHz
ARM clk        : 1200MHz
DDR clk        : 796MHz

分两种情况:

第一,内存控制器可以正常初始化:

如果内存时钟跑在796.5MHz,有很多板(大概60%)无法完整启动整套系统,

表现为VIDEO-M3,VPSS-M3,DSP,A8随机异常,我尝试把ARM降到987MHz,DSP降到800MHz,M3降到250MHz,

现象一样。

也和硬件人员一起测了内存相关信号,都很好,系统电源也很稳定,供电也很好。

内存参数也都对过,完全正确,我在之前另外一家公司也是使用一模一样到内存,

那边到参数也是我配置,他们一直没有出现过问题,而且他们产品都大规模应用了。

我找他们dump内存参数给我,我这边的参数也和我原先的配置一样,

唯一不同到就是leveling值不一样(因为布线有所不同)。

我定位到有的板子emif0有问题,有的板子是emif1有问题。

定位过程如下:

1.使用config_1G_256MLinux.bld,让系统只是用0x80000000~0xbfffffff 1GB内存空间,

保持内存时钟为796.5MHz,两个emif工作在non-interleave模式,

通过LISA_MAP将emif0映射到0x80000000~0xbfffffff,emif1映射到0xc0000000~0xffffffff,或者相反。

然后启动系统,有的板子是使用emif0时有异常,有的板子是使用emif1时有异常。

但是奇怪的是我分别在uboot里用mtest和在linux下使用memtester 4.3(压力测试)对有问题的emif对应的

内存空间进行测试,测试都是通过的。

如果将内存时钟降为756MHz,大部分有问题的单板都可以稳定工作在interleave模式。

只有一块板子依然不行,我又继续降内存时钟到675MHz,这个板子也可以稳定工作在interleave模式。

当然每次调整DDR时钟我都重做software leveling的。

第二种情况内存控制器无法正常初始化的情况:

这批新板中有三块无法使用JTAG烧录uboot,现象为JTAG可以正常attach到A8,但是执行GEL初始化

内存会失败,报错是无法设置内存控制器的配置寄存器。有一块是无法配置emif0的配置寄存器(单板A),

还有一块是无法配置emif1的配置寄存器(单板B),第三块好像是在ROM CODE地址空间里就出错。

1.我做了一个只初始化emif0 uboot,然后找了一块没有问题的单板(单板C),将uboot烧到单板C的flash里,

然后将该flash替换到单板B里,单板B可以正常启动,

如果改回emif0和emif1都初始化的uboot,那么单板B到uboot无法启动。

2.同样到我也做里一个只初始化emif1到uboot,对应flash贴到单板A上,单板A可以正常启动,

如果改回emif0和emif1都初始化到uboot,那么单板A的uboot无法初始化。

降了内存频率现象依旧。

所以我怀疑我们本批次的DM8168存在瑕疵,但又觉得不应该,然后又觉得这些现象很不可思议。

期待TI工程师能帮忙确定这个问题,非常感谢!!!

Eason Wang:

http://support.spectrumdigital.com/boards/evm816x/revg/files/evm816x_BSL.zip

这里可以下到CCS下运行的ddr测试程序,看看能不能打出一些其他的信息。

你可以说一下,A8 m3的随机异常,指的是什么,打印说了些什么?你可以在挂掉的时候,连接仿真器去看相关的CPU核,看是不是停在存取DDR的时候,来确定一下是不是就是DDR这边造成的问题?

因为我看你下面的描述,都是基于DDR有问题的假设,去测试DDR和降频。降频的结果是能过DDR测试

那么降频之后,对问题本身有没有改善的效果呢?

Yufeng Xu:

回复 Eason Wang:

Eason,感谢你的回复,

在第一种情况下我执行DDR3测试时内存都是运行在796.5MHz的,

有问题的emif所在的内存做测试都通过了,但是系统无法正常启动。

A8/M3/DSP异常是指启动时第一次发生异常有可能是A8异常(内核oops,访问异常地址),

或video M3异常(unhandled exception ),或vpss M3异常(unhandled exception),

或DSP(unhandled exception)。出错时PC寄存器的地址非确定值,而且地址很奇怪。

比如对于M3,地址不是4字节后2字节对齐的(但是确实是对应M3所在的代码段空间),

反汇编对应firmware,找不到对应的地址。

第一种情况里的板子,保持DDR3时钟为796.5MHz,对A8,DSP,M3进行降频,依然无法正常启动。

只有对DDR3降频才有改善,DDR3降频到756M,大部分原先有问题的板子可以稳定运行,只有一块依然不行。

这一块756MHz不行的板子在降到675MHz时则能正常稳定运行。

第二种情况里DDR3降频都没有改善。

而且从使用JTAG运行GEL里的DDR初始化,出错是在配置有问题的emif控制器寄存器时发生错误。

感觉这个属于芯片内存出错了。

Kevin Chen2:

回复 Yufeng Xu:

Hi,你好,有些问题需要咨询,如果方便的话,能否回复下,我公司刚做了一块基于8168的板子,请问,你们如何进行大规模的烧写生产,通过jtag,烧些uboot到nand吗?还是有其他更好的方法吗? 我的联系方式是kevin@boeckeler.com, 期待你的解答,谢了~

赞(0)
未经允许不得转载:TI中文支持网 » DM8168奇怪的内存问题
分享到: 更多 (0)