问题:
ESMT DDR2 M14D5121632A -2.5BG2K 配合MT7620A工作时系统会莫名其妙重启,然后在uboot中memory自检时失败,导致uboot挂死。Uboot中的watchdog也无法规避该问题。
【异常的uboot启动信息】
U-Boot 1.1.3 (May 28 2014 - 17:52:21)
Board: Ralink APSoC DRAM: 64 kB
【正常的uboot启动信息】
U-Boot 1.1.3 (May 28 2014 - 17:52:21)
Board: Ralink APSoC DRAM: 64 MB
rt2880 uboot v0.00e04 05/28/2014
SERIAL_CLOCK_DIVISOR =16
kaiker,,CONFIG_BAUDRATE =57600
SDRAM SIZE:04000000
Top of RAM usable for U-Boot at: 84000000
Reserving 297k for U-Boot at: 83fb4000
Reserving 260k for malloc() at: 83f73000
Reserving 44 Bytes for Board Info at: 83f72fd4
Reserving 36 Bytes for Global Data at: 83f72fb0
Reserving 128k for boot params() at: 83f52fb0
Stack Pointer at: 83f52f98
relocate_code Pointer at: 83fb4000
enable ephy clock...done. rf reg 29 = 5
SSC disabled.
Now running in RAM - U-Boot at: 83fb4000
【原因分析】
该问题通过启用uboot中的watchdog也无法解决,后和SDRAM厂家一起分析后得到的结论是:
MT7620A主控与一般主控不同,MT7620A会下发self-refresh让系統处于省电状态,但因ESMT DDR2 512Mb的filter没有把glitch过滤干净,从而导致指令冲突。
厂家更新后该问题未再复现。