免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5410 | 回复: 23
打印 上一主题 下一主题

u-boot从nand进行加载问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-26 14:10 |只看该作者 |倒序浏览
2440,支持nand boot
虽然网上有很多2410的,也比较的类似,但是仍有问题困扰我
问题:
1.u-boot是否直接从block0开始烧,然后直接load就可以了?还是要做一个4k的启动代码,放在最前面,之后才放u-boot?
2.如果是直接烧的话,u-boot一般都几百k,而只能copy4k过去做启动,这样的代码片段,能有效执行吗?

论坛徽章:
0
2 [报告]
发表于 2008-08-26 14:48 |只看该作者

回复 #1 fishrei 的帖子

uboot代码分两部分,前面的是硬件初始化和加载到RAM区域. 后面的部分代码是在RAM中运行的.前面的就是你的4K启动代码.烧写地址为0x00000000.
只copy4K可以执行的,你详细看一下uboot源代码.

论坛徽章:
0
3 [报告]
发表于 2008-08-26 15:16 |只看该作者
可以分成两个部分吗,我只生成了一个文件啊?(u-boot.bin)
它使用什么方式或者说在那个文件里定义了把u-boot.bin分成两个部分的呢?
而且,我用的是nand,不是nor

[ 本帖最后由 fishrei 于 2008-8-26 15:27 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-08-26 15:29 |只看该作者

回复 #3 fishrei 的帖子

我是说任何bootloader都是有两个阶段。第一阶段初始化,第二阶段启动内核。产生的是一个文件。第一阶段初始化并把你的代码copy到RAM中,第二阶段跳到RAM运行,并启动内核。

评分

参与人数 1可用积分 +15 收起 理由
bitmilong + 15 鼓勵下

查看全部评分

论坛徽章:
0
5 [报告]
发表于 2008-08-26 15:39 |只看该作者
这部分我能看到,
我想问的是,我的u-boot烧在nand里,而启动的时候只能读u-boot的前4k,这4k的代码应该只是代码片段,这样的代码片段能正常工作吗?

论坛徽章:
0
6 [报告]
发表于 2008-08-26 15:50 |只看该作者

回复 #5 fishrei 的帖子

你的问题不对,Nand启动时你的程序是从Nand前4k开始运行的。干嘛还要读取啦!这4K代码已经被映射到了地址0处。

论坛徽章:
0
7 [报告]
发表于 2008-08-26 16:39 |只看该作者
不对吧
启动的时候应该是硬件先把nand的前4k copy到片内ram里,然后再把片内ram的首地址映射成0地址啊

我想问的就是copy的这4k代码,如果只是片段,能工作吗?当然,我编译的时候肯定是保证了start在bin的最前面

论坛徽章:
0
8 [报告]
发表于 2008-08-26 16:42 |只看该作者

回复 #7 fishrei 的帖子

这个问题我看是回答不了啦。你详细看一下uboot源码不就什么都知道了。

论坛徽章:
0
9 [报告]
发表于 2008-08-26 16:46 |只看该作者

回复 #8 rodgerluo 的帖子

不管怎样,还是谢谢你!

论坛徽章:
0
10 [报告]
发表于 2008-08-26 17:00 |只看该作者
原帖由 fishrei 于 2008-8-26 16:39 发表
不对吧
启动的时候应该是硬件先把nand的前4k copy到片内ram里,然后再把片内ram的首地址映射成0地址啊

我想问的就是copy的这4k代码,如果只是片段,能工作吗?当然,我编译的时候肯定是保证了start在bin的最前面

uboot里有copy_myself的函数,即将自身copy到sdram,再长跳转到sdram运行

评分

参与人数 1可用积分 +15 收起 理由
bitmilong + 15 鼓勵下

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP