免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3394 | 回复: 1

[BootLoader] 求助:请教从uboot向Linux内核传递自定义简单参数 以及flash问题 [复制链接]

论坛徽章:
0
发表于 2010-05-10 13:05 |显示全部楼层
小弟想实现这样的功能:在boot下通过环境变量将一些简单参数传递到内核,在一个内核模块xxx.ko中获取到该环境变量。
所用的u-boot版本为1.0.2
目前的做法是:在boot下saveenv将环境变量保存到flash中然后do_reset重启,在xxx.ko中对flash的环境变量区域进行ioremap,在其中搜索需要的环境变量。xxx.ko是在系统启动过程中自动加载的。
现在发现有一个问题:如果boot阶段有写flash操作(saveenv或者其它下载版本等操作),这时候系统启动时自动加载xxx.ko,搜索不到指定的环境变量,查看ioremap后的内容,里面不是flash中的实际内容,而是类似下面的形式:
004f000f 004f000f 004f000f 004f000f ...
或者
fe00fe00 fe00fe00 fe00fe00 fe00fe00 ...
...

此时,如果等系统启动全部完成以后,手动执行rmmod xxx.ko,再insmod xxx.ko,则显示flash中的数据正常;
如果在boot阶段不进行写flash操作,直接启动系统,则系统启动过程中自动加载xxx.ko时读出的flash中的数据正常。

请教各位大侠,
1. 这个问题是由什么原因引起的?
2. 如果这个问题不能解决,有没有其它的方法从boot向内核传递自定义参数,比如mips体系结构下好像有个获取u-boot环境变量的函数prom_getenv,但是powerpc下貌似没有实现类似功能的函数?网上说的使用param_tag并且在内核中set_xxx_param,在我使用的这个boot及内核中都没有类似的东西

请各位大侠不吝赐教,小弟不胜感激!

论坛徽章:
0
发表于 2010-05-12 21:30 |显示全部楼层
原因我还没找到,不过我用另外的方法解决了,即在内核模块中使用mtd_info->read 可以从flash中正常读出数据。
期待有高人能找到上面问题的原因
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP