串口打印信息如下:
U-Boot 2010.06 (Sep 10 2012 – 09:14:10)
TI8148-GP rev 2.1
ARM clk: 600MHz
DDR clk: 266MHz
DRAM: 2 GiB
MMC: OMAP SD/MMC: 0
Using default environment
The 2nd stage U-Boot will now be auto-loaded
Please do not interrupt the countdown till TI8148_EVM prompt if 2nd stage is already flashed
Hit any key to stop autoboot: 0
reading u-boot.bin
185548 bytes read
## Starting application at 0x80800000 …
2级Uboot被读入DDR,但跳转后无打印消息,本人所使用的硬件平台是DM8147+micro DDR2,无NAND FLASH,启动模式配置为SD启动模式,MLO及u-boot.bin均按SD的配置方式编译产生。
麻烦工程师帮忙分析下,通过哪几个方面进行问题查找,谢谢
Gary Wu:
DDR参数没有配对,请仔细核对你的参数。如果有仿真器的话,最好用仿真器连上JTAG口,先对DDR进行调试。确认正确了再调试uboot
pengpeng gong:
回复 Gary Wu:
如果是按照 吴辉所说的 DDR配置, 那UBOOT1st 为什么可以正常启动的啊? 为什么第一阶段DDR没有出错? 这2个阶段 DDR配置不一样吗?
Toread:
你好;
可以分享一下这个问题是怎么解决的吗?
如果是DDR的参数配置的问题,为什么uboot的第一阶段可以正常的启动,第二阶段不执行了呢?
Eason Wang:
回复 Toread:
第一级boot是在芯片内部RAM中运行的,不依赖于DDR. 第一级boot的代码会去初始化DDR, 这样第二级boot就可以放在DDR中来运行了。
Toread:
回复 Eason Wang:
谢谢 Eason 的解答;
我现在参考http://processors.wiki.ti.com/index.php/File:DM813x_DDR_Controller_Register_Configuration_spreadsheet_v1.0.zip 文件和DDR的芯片手册 (MT41J128M16HA)
更新了arch/arm/include/asm/arch-ti81xx/ddr_defs_ti814x.h 文件中的
#define DDR3_EMIF_TIM10x0ef146fc //0x0EEF36AB // 0x110F783B #define DDR3_EMIF_TIM20x40408023 //0x305A7FDA // 0x238581E6 #define DDR3_EMIF_TIM30x51800570 //0x507F855F // 0x501F86AF同时更新了include/configs/dm385_pnc.h 中的
#define PHYS_DRAM_1_SIZE 0x20000000 /* 512MB */
为什么更新后,uboot的第二阶段还是没有打印出来呢 ???(还有其他要调整的地方吗 ?)
TI中文支持网

