主题 : 用openjtag怎样烧写bios? 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 9817
精华: 0
发帖: 62
金钱: 330 两
威望: 78 点
贡献值: 0 点
综合积分: 124 分
注册时间: 2009-10-14
最后登录: 2012-07-31
楼主  发表于: 2010-03-24 14:40

 用openjtag怎样烧写bios?

目前bootloader无法启动,想用OpenJtag烧写,请问如何做?谢谢!
[ 此帖被alexli05在2010-03-26 09:34重新编辑 ]
级别: 新手上路
UID: 10286
精华: 0
发帖: 12
金钱: 85 两
威望: 29 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2009-10-30
最后登录: 2011-03-12
1楼  发表于: 2010-05-27 18:55
我照着openjtag手册上的步骤,把附带的u-boot.bin下载的内存里串口上可以打印出信息来,但是烧到nand后,重启单板,串口上没信息诶
为什么呢?
我的nand操作命令是:
1,nand erase 0 30000
2,nand write.jffs2 30000000 0 30000

另外我用自己的u-boot也是同样的情况,为什么呢?
级别: 新手上路
UID: 10286
精华: 0
发帖: 12
金钱: 85 两
威望: 29 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2009-10-30
最后登录: 2011-03-12
2楼  发表于: 2010-05-30 12:30
谢谢,版主及时的回复!
明白了openjtag光盘里的u-boot.bin没有对RAM做初始化

这样的话引出了另一个问题:
利用openjtag下载Bootloader到RAM前,必须初始化RAM吗?如果是这样,下载到RAM里并且要在RAM里运行的这个Bootloader应不应该包括初始化RAM的部分呢?
最后烧写到NAND里的Bootloader是一定要包括初始化RAM的部分的
级别: 新手上路
UID: 10286
精华: 0
发帖: 12
金钱: 85 两
威望: 29 点
贡献值: 0 点
综合积分: 24 分
注册时间: 2009-10-30
最后登录: 2011-03-12
3楼  发表于: 2010-06-01 10:24
引用第2楼kasim于2010-03-24 15:47发表的  :
简单的说:
在NAND Flash启动模式下,
1. 用OpenJtag下载一个可以初始化SDRAM的二进制档(OpenJtag随机光盘里的init.bin就可以)到0x0地址上,并执行;
2. 用OpenJtag下载一个带有烧写Flash和程序下载功能的bootloader到SDRAM中,并且将PC指针跳转到它在SDRAM的入口地址上执行;
3. 用这个bootloder下载你需要放在Flash中的bios到Flash中。
.......



这样说比较方便,
第二步中的Bootloader是在RAM中运行,并且是用来在第三步中烧写BIOS的(也就是,Bootloader吧?!)
因为在第一步中已经初始化了RAM,所以第二步中在RAM跑的这个Bootloader不能再初始化RAM,也省去了从NAND到RAM的搬运过程,也就是说这个Bootloader跟第三步中烧写到NAND里的Bootloader是不一样的
这是我的理解。
这样理解正确吗?(好像不对,源码好像能判断当前是在RAM中还是在flash中的,请版主给出明确的回答和详细的解释,谢谢!)

这样理解的话,利用openjtag烧写NAND,需要两个不同的Bootloader,另外还需要初始化RAM的binary文件(如init.bin),这样会不会太傻瓜了呢