嵌入式爱好者

查看: 8163|回复: 6

uboot环境下查询bdinfo部分参数为空

[复制链接]

0

主题

0

帖子

0

积分

扫一扫,手机访问本帖
发表于 2011-7-3 22:31:21 | 显示全部楼层 |阅读模式
本帖最后由 gd102 于 2011-7-3 22:32 编辑

在网站下载最新的uboot,更换了DM9000的网卡驱动和修改smdk6410.h里面的DM9000的宏定义和IP地址。
其它文件和代码未改变。
编译后,再进行一键烧写编译好的u-boot.bin文件。
重启后发现:
Hit any key to stop autoboot:  0
NAND read: device 0 offset 0x100000, size 0x500000
8388608 bytes read: OK
Boot with zImage
Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported machine ID (r1 = 0x00000000).
Available machine support:

ID (hex)        NAME
000004f6        SMDK6400
0000065a        SMDK6410

Please check your kernel config and/or bootloader.

查询单板信息,发现arch_number(保存Machine ID值),env_t....为空:
SMDK6410 # bdinfo
arch_number = 0x00000000
env_t       = 0x00000000
boot_params = 0x00000000
DRAM bank   = 0x00000000
-> start    = 0x00000000
-> size     = 0x00000000
ethaddr     = 00:40:5C:26:0A:5B
ip_addr     = 192.168.2.10
baudrate    = 115200 bps

从而导致,uboot无法向内核传递参数。

请问:如何解决????

说明:官方的u-boot.bin能够正常显示其bdinfo个变量值。

谢谢!!
回复

使用道具 举报

0

主题

0

帖子

0

积分

 楼主| 发表于 2011-7-4 09:15:40 | 显示全部楼层
顶一下,等待回答!!!
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

积分

发表于 2011-7-4 11:10:17 | 显示全部楼层
还在在飞凌提供的UBOOT基础上来修改吧,估计你的NAND驱动都没有做好,如果有了NAND启动就可以用‘saveenv‘ 保存参数了
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

积分

 楼主| 发表于 2011-7-4 11:20:18 | 显示全部楼层
我就是采用凌提供的UBOOT基础上来修改的啊。
----前面说的 网上 是指飞凌的更新地址下载的:
http://bbs.witech.com.cn/thread-3809-1-1.html
唯一改变的地方:
更换了DM9000的网卡驱动和修改smdk6410.h里面的DM9000的宏定义和IP地址。
其它文件和代码未改变。
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

积分

发表于 2011-7-4 16:01:01 | 显示全部楼层
可能是这里的问题:Error: unrecognized/unsupported machine ID (r1 = 0x00000000).

在源码中搜一下相关信息,machine ID是不是不对呢
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

积分

 楼主| 发表于 2011-7-4 16:40:58 | 显示全部楼层
machine ID 是没有问题的,我看到uboot中的smdk6410.h
和内核的smdk6410.h 都是定义为 1626

目前是r1 = 0x00000000,不管machine ID填的对不对,至少它应该有个值才行啊。有值才能够传递到内核那边然后在比较正确如何。

因为r1 = 0x00000000 ,所以内核认为 Machine ID为 0 ,跟内核的machine id(1626) 不相同,所以提示:
Error: unrecognized/unsupported machine ID
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

积分

 楼主| 发表于 2011-7-5 11:30:29 | 显示全部楼层
问题已经解决。
原因是:我使用了友善之臂的 4.5.1交叉编译器,现在换回 飞凌的 4.3.2交叉编译器后,问题解决。
疑问:为什么我使用4.5.1编译内核却没问题而且能够正常被加载进入Linux系统,而uboot虽然能编译过去,但是就出现上面的问题.
难道uboot1.1.6的版本实在太老了(2006发布的)??不同的编译器有不同的语法解析?

SMDK6410 # bdinfo
arch_number = 0x0000065A
env_t       = 0x00000000
boot_params = 0x50000100
DRAM bank   = 0x00000000
-> start    = 0x50000000
-> size     = 0x08000000
ethaddr     = 00:40:5C:26:0A:5B
ip_addr     = 192.168.2.10
baudrate    = 115200 bps
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-10-5 06:36

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表