免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3221 | 回复: 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中正常读出数据。
期待有高人能找到上面问题的原因
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时8.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP