通过点灯程序发现,目前程序运行到ldr pc, _start_armboot,无法进入C代码的 start_armboot函数,不知道为什么????
Chris Meng:
你好,
请问你的启动模式是什么?你说的uboot是uboot min,还是uboot?
DDR SW leveling是否有做过?
jin xin:
回复 Chris Meng:
新做了个8168的板子,板子的情况是:没有sd卡,有仿真器接口,串口、网口。通过裸机程序,分别测试了DDR和串口,正常。
将u-boot.noxip.bin通过nand-flash-writer.out写入nandflash,nandflash宽度是8位,不是16位(应该焊接16位,但是焊错了,焊接了8位的),开发板:seed-8168。BTMODE[4:0]设置为10010,上电以后,串口用输出,串口设置 115200,8,even,1,none。
通过点灯程序,查看start.s运行状态,感觉一切OK,都运行到了,就是不跳转到start_armboot函数中。
目前怀疑是nandflash或者DDR引起的,目前开发板和自己画的板子就这两个不一样,但是DDR可能性很小,因为在裸机环境,CCS运行DDR测试程序是OK的,nandflash可能性很大
jin xin:
回复 Chris Meng:
目前配置如下,仿真器接口,串口,网口,1G的DDR3(IS43TR81280A -125JBLI),8位宽度的nandflash,通过CCS下,做过DDR和串口的测试程序,OK的,通过nand-flash-writer.out烧写u-boot.noxip.bin,bootmode:10010,上电无打印信息,然后通过start.s添加点灯程序,发现运行正常,可以运行到ldr pc, _start_armboot @ jump to C code,就是无法进入 start_armboot函数中,不知道哪里会影响到这个问题,谢谢
Chris Meng:
回复 jin xin:
你好,
CCS下DDR可以正常访问,只能说明DDR功能基本正常。但在CCS下是使用gel来初始化DDR的。请问你uboot代码里面的的DDR初始化部分是否和CCS下Gel一致?
你还是没有回答,你是否有做DDR SW leveling?这个必须做。
jin xin:
回复 Chris Meng:
谢谢你的回复,#define CONFIG_TI816X_DDR3_SW_LEVELING,这个定义了,我目前正在看gel和uboot的DDR部分,ddr的头文件名称:ddr_defs_ti816x.h,但是这个文件在很多目录都有,不知道到低应该看那个。
Chris Meng:
回复 jin xin:
你好,
你是否有阅读下面链接的内容?
http://processors.wiki.ti.com/index.php/DM816x_C6A816x_AM389x_DDR3_Init
jin xin:
回复 Chris Meng:
谢谢你的回复,目前使用的Uboot在开发板运行正常,seed-8168,但是我自己画的板子就不行,跑不起来,自己画的板子和开发板区别:ARM频率不同,自己画的板子ARM频率1.2GHZ,开发板1G,DDR的型号有区别,但是CCS测试成功,而且我刚才对比了一下,uboot和GEL中的ddr部分参数一样
自己画的板子nandflash:8bit ,开发板:16bit
user1369122:
回复 jin xin:
是否已经用其他的boot方式验证过uboot能够起来? 如果你能起来, 和nand关系大
jin xin:
回复 user1369122:
我不知道如果用串口和网口加载uboot,我只会用仿真器烧写,有没有具体的方法提供谢谢
Chris Meng:
回复 jin xin:
你好,
如果你使用的DDR芯片有变化,请参考你使用的DDR芯片重新配置DDR的时序,以及用新的时序配置获得slave ratio,更新uboot。
网口启动请参考:http://processors.wiki.ti.com/index.php/TI81XX_PSP_EMAC_Boot。