免费注册 查看新帖 |

Chinaunix

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

uboot是如何把环境变量传递给内核的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-07 08:24 |只看该作者 |倒序浏览
mips32环境。

我看到网上有介绍说,uboot会根据用户传递的bootarg参数,将其放到某个区域,然后把这些参数的地址放到寄存器里,再跳转到内核。


请问,这个存放环境变量的区域,是在哪里,有关的代码是在哪里? 一直没有找到。

论坛徽章:
0
2 [报告]
发表于 2009-09-07 17:34 |只看该作者
6.4.3  U-Boot的环境变量

有点类似Shell,U-Boot也使用环境变量。可以通过printenv命令查看环境变量的设置。



U-Boot> printenv

bootdelay=3

baudrate=115200

netmask=255.255.0.0

ethaddr=12:34:56:78:90:ab

bootfile=uImage

bootargs=console=ttyS0,115200 root=/dev/ram rw initrd=0x30800000,8M

bootcmd=tftp 0x30008000 zImage;go 0x30008000

serverip=192.168.1.1

ipaddr=192.168.1.100

stdin=serial

stdout=serial

stderr=serial



Environment size: 337/131068 bytes

U-Boot>



表6.5是常用环境变量的含义解释。通过printenv命令可以打印出这些变量的值。

表6.5                                                  U-Boot环境变量的解释说明

环 境 变 量

解 释 说 明

bootdelay

定义执行自动启动的等候秒数

baudrate

定义串口控制台的波特率

netmask

定义以太网接口的掩码

ethaddr

定义以太网接口的MAC地址

bootfile

定义缺省的下载文件

bootargs

定义传递给Linux内核的命令行参数

bootcmd

定义自动启动时执行的几条命令

serverip

定义tftp服务器端的IP地址

ipaddr

定义本地的IP地址

stdin

定义标准输入设备,一般是串口

stdout

定义标准输出设备,一般是串口

stderr

定义标准出错信息输出设备,一般是串口



U-Boot的环境变量都可以有缺省值,也可以修改并且保存在参数区。U-Boot的参数区一般有EEPROM和Flash两种设备。

环境变量的设置命令为setenv,在6.2.2节有命令的解释。

举例说明环境变量的使用。



=>setenv serverip  192.168.1.1

=>setenv ipaddr  192.168.1.100

=>setenv rootpath  "/usr/local/arm/3.3.2/rootfs"

=>setenv bootargs  "root=/dev/nfs rw nfsroot=\$(serverip):\$(rootpath) ip=
\$(ipaddr) "

=>setenv kernel_addr 30000000

=>setenv nfscmd  "tftp \$(kernel_addr) uImage; bootm \$(kernel_addr) "

=>run nfscmd

上面定义的环境变量有serverip ipaddr rootpath bootargs kernel_addr。环境变量bootargs中还使用了环境变量,bootargs定义命令行参数,通过bootm命令传递给内核。环境变量nfscmd中也使用了环境变量,功能是把uImage下载到指定的地址并且引导起来。可以通过run命令执行nfscmd脚本。

论坛徽章:
0
3 [报告]
发表于 2013-01-07 15:53 |只看该作者
有没有知道的啊,大侠求解啊

论坛徽章:
0
4 [报告]
发表于 2013-01-07 17:53 |只看该作者
./lib_arm/bootm.c:

theKernel (0, machid, bd->bi_boot_params);

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP