4-3-1-u-boot启动参数详解u-boot-2016 05版本_W_第1页
4-3-1-u-boot启动参数详解u-boot-2016 05版本_W_第2页
4-3-1-u-boot启动参数详解u-boot-2016 05版本_W_第3页
4-3-1-u-boot启动参数详解u-boot-2016 05版本_W_第4页
4-3-1-u-boot启动参数详解u-boot-2016 05版本_W_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、U-Boot 启动参数详解(U-Boot-2016.05 版本) Revision HistoryDraft DateRevision No.Description2018/04/15V1.11. 内容勘误。 2017/9/30V1.01. 初始版本。 公司官网:销售邮箱:公司总机:020-8998-62801/16技术论坛:技术邮箱:技术热线:020-3893-9734目录1 适用性说明32 U-Boot 启动参数解析通读33 U-Boot 环境变量还原与保存11

2、4 特定方式启动的 U-Boot 参数设置124.1 SD 系统启动卡方式启动124.2 网络方式启动14更多帮助16公司官网:销售邮箱:公司总机:020-8998-62802/16技术论坛:技术邮箱:技术热线:020-3893-97341 适用性说明表 1开发板型号 是否支持本实验 TL5728-EasyEVM支持 TL5728-IDK支持 TL5728F-EVM不支持 2 U-Boot 启动参数解析通读系统启动时,快速按任意键进入 U-Boot 命令行,执行 p

3、rintenv 命令即可看到 U-Boot的所有启动参数,若使用默认参数则类似如下。以下为 AM57x 平台 U-Boot-2016.05 版本U-Boot 启动参数详解: 公司官网:销售邮箱:公司总机:020-8998-62803/16技术论坛:技术邮箱:技术热线:020-3893-9734图 1公司官网:销售邮箱:公司总机:020-8998-62804/16技术论坛:技术

4、邮箱:技术热线:020-3893-9734图 2AM57x 平台默认的 U-Boot 启动参数设置的启动顺序为: SD 卡启动脚本SD 卡eMMC若检测到 SD 卡已插入,则加载 SD 卡 boot 分区中的 zImage 内核镜像和 rootfs 分区文件系统;若没有检测到 SD 卡插入,从 eMMC 启动系统。以下为 U-Boot 启动参数解析: /*芯片架构为 ARM*/ arch=arm/*MMC 启动参数*/args_mmc=runfinduuid;setenvbootargsconsole=$console$optargs root=PARTU

5、UID=$uuid rw rootfstype=$mmcrootfstypeargs_usb=setenvbootargsrootfstype=$usbrootfstyperoot=$usbrootrwconsole=$console $optargs;公司官网:销售邮箱:公司总机:020-8998-62805/16技术论坛:技术邮箱:技术热线:020-3893-9734/*串口控制台波特率为 115200*/ baudrate=115200/*板卡平台为 AM57

6、xx*/ board=am57xx/*板卡模板型号为 am57xx_evm_reva3*/ board_name=am57xx_evm_reva3/*U-Boot 入口命令bootcmd。bootcmd 命令会在出现”Hit any key to stop autoboot”提示后执行。如果不按任意键,bootcmd 命令会上电自动运行,按任意键则进入 U-Boot 命令行。系统启动时,会先判断环境变量 dofastboot 是否为 1,若为 1,则执行fastboot 命令。当dofastboot 设置为 0 时,系统会采用默认的 U-Boot 环境变量,并运行 run mmcboot*/

7、bootcmd=if test $dofastboot -eq 1; then echo Boot fastboot requested, resettingdofastboot .;setenv dofastboot 0; saveenv;echo Booting into fastboot .; fastboot 0;fi;run findfdt; run envboot; run mmcboot;setenv mmcdev 1; setenv bootpart 1:2; setenv mmcroot/dev/mmcblk0p2 rw; run mmcboot;/* U-Boot 自动启动

8、等待时间为 2 秒*/ bootdelay=2/*内核镜像文件在文件系统的路径为”/boot”目录*/ bootdir=/boot/*U-Boot 环境变量存储文件名为uEnv.txt*/ bootenvfile=uEnv.txt/*内核镜像的文件名为 zImage*/ bootfile=zImage/*内核镜像大小*/ bootm_size=0x10000000/*文件系统在启动设备的第二分区*/ bootpart=0:2/*运行 SD 卡启动脚本*/bootscript=echo Running bootscript from mmc$mmcdev .;source $loadaddr公司

9、官网:销售邮箱:公司总机:020-8998-62806/16技术论坛:技术邮箱:技术热线:020-3893-9734/*调试串口为 UART3,波特率为 115200,数据位为 8bit,无奇偶校验*/ console=ttyO2,115200n8/*CPU 指令集为 armv7*/ cpu=armv7/*dofastboot 状态标志位,判断是否进行 fastboot*/ dofastboot=0/*扫描是否 SD 卡已插入,若 SD 卡中有 U-Boot 启动脚

10、本,则使用脚本中的 U-Boot 环境变量启动,否则采用默认的 U-Boot 环境变量进行启动*/envboot=mmc dev $mmcdev; if mmc rescan; then echo SD/MMC found on device$mmcdev;if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from $bootenvfile;run importbootenv;fi;if test -n $uenvcmd; then echo Running uenv

11、cmd .;run uenvcmd;fi;fi;fi;/*网口 MAC 地址,可手动设置*/ ethaddr=fc:0f:4b:9d:15:6c/*设备树文件读取地址*/ fdt_addr_r=0x88000000/*设备树文件加载地址*/ fdtaddr=0x88000000 fdtcontroladdr=bef310f0/*设备树文件名,此处暂未定义,接下来的 findfdt 环境变量中会根据 board_name 进行设置*/ fdtfile=undefined/*findfdt 命令根据开发板名称 board_name 设置设备树文件名 fdtfile */findfdt=if tes

12、t $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi; if test$board_name = dra7xx; then setenv fdtfile dra7-evm.dtb; fi;if test $board_name = dra72x- revc; then setenv fdtfile dra72-evm-revc.dtb; fi;if test $board_name = dra72x; then公司官网:销售邮箱:公司总机:020-8

13、998-62807/16技术论坛:技术邮箱:技术热线:020-3893-9734setenv fdtfile dra72-evm.dtb; fi;if test $board_name = beagle_x15; then setenv fdtfile am57xx- beagle-x15.dtb; fi;if test $board_name = beagle_x15_revb1; then setenv fdtfile am57xx- beagle-x15-revb1.dtb; fi;if test $board_name =

14、 am57xx_evm; then setenv fdtfile am57xx- evm.dtb; fi;if test $board_name = am57xx_evm_reva3; then setenv fdtfile am57xx-evm- reva3.dtb; fi;if test $board_name = am572x_idk; then setenv fdtfile am572x-idk.dtb; fi;if test$board_name = am571x_idk & test $idk_lcd = no; then setenv fdtfile am571x-idk.dtb

15、; fi;if test $board_name = am571x_idk & test $idk_lcd = osd101t2045; then setenv fdtfile am571x- idk-lcd-osd.dtb; fi;if test $fdtfile = undefined; then echo WARNING: Could not determine device tree to use; fi;finduuid=part uuid mmc $bootpart uuididk_lcd=osd101t2045 idk_pru1_mii=no/*从 loadaddr 地址开始,加

16、载 bootenv 指定文件、定义大小为 filesize 的环境变量*/ importbootenv=echo Importing environment from mmc$mmcdev .; env import -t$loadaddr $filesize/*内核镜像读取地址*/ kernel_addr_r=0x82000000/*内核镜像加载地址*/ loadaddr=0x82000000/*从 SD 卡加载 U-boot 环境变量*/loadbootenv=fatload mmc $mmcdev $loadaddr $bootenvfile/*从 SD 卡加载启动脚本*/loadboo

17、tscript=fatload mmc $mmcdev $loadaddr boot.scr/*从 SD 卡加载 dtb 文件*/loadfdt=load mmc $bootpart $fdtaddr $bootdir/$fdtfile;公司官网:销售邮箱:公司总机:020-8998-62808/16技术论坛:技术邮箱:技术热线:020-3893-9734/*从 SD 卡加载内核镜像文件*/loadimage=load mmc $bootpart $loadaddr

18、 $bootdir/$bootfile/*SD 卡启动时,先扫描 SD 卡是否插入,若检测到 SD 卡已经插入,则加载 SD 卡 boot 分区中的 Uboot.img 以及 zImage 内核镜像。加载完成后,运行 run args_mmc,加载 rootfs分区文件系统,以及设置控制台参数,加载完成后,运行 bootz 进行从SD 卡启动*/ mmcboot=mmc dev $mmcdev; if mmc rescan; then echo SD/MMC found on device$mmcdev;if run loadimage; then run loadfdt; echo Boot

19、ing from mmc$mmcdev .; run args_mmc; bootz $loadaddr - $fdtaddr; fi;fi;/*MMC 设备为 0*/ mmcdev=0/*MMC 设备中的文件系统类型*/ mmcrootfstype=ext4 rootwait/*网络启动参数,文件系统目录挂载节点为”/dev/nfs”,此处”ip=dhcp”表示开发板在内核和文件系统阶段自动获取 IP*/netargs=setenv bootargs console=$console $optargs root=/dev/nfs nfsroot=$serverip:$rootpath,$nf

20、sopts rw ip=dhcp/*网络方式启动时,使用 TFTP 从服务器中加载设备树和内核镜像文件,执行 netargs 命令, 启动系统。此处 dhcp 表示开发板在 U-Boot 阶段自动获取 IP*/netboot=echo Booting from network .; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz $loadaddr - $fdtaddr/*网络启动时,通过 TFTP 加载设备树文件到 fdtaddr 中*/ netloadfdt=tftp $fdtad

21、dr $fdtfile/*网络启动时,通过 TFTP 加载内核镜像文件到 loadaddr 中*/ netloadimage=tftp $loadaddr $bootfile/*NFS 传输取消文件锁模式*/公司官网:销售邮箱:公司总机:020-8998-62809/16技术论坛:技术邮箱:技术热线:020-3893-9734nfsopts=nolock/* 根 文 件 系 统 分 区 设 置 */ partitions=uuid_disk=$uuid_gpt_di

22、sk;name=rootfs,start=2MiB,size=-,uuid=$uuid_gpt_rootf s/*pxe 启动文件加载地址*/ pxefile_addr_r=0x80100000/*ramdisk 文件读取地址*/ ramdisk_addr_r=0x88080000/*ramdisk 文件加载地址*/ rdaddr=0x88080000/*网络方式启动时,文件系统在 PC 的默认存放目录,可手动修改*/ rootpath=/export/rootfs/*脚本文件加载地址*/ scriptaddr=0x80000000/*设置扫描发现的 SCSI 设备数量*/ scsidevs=

23、0/*SOC 类型为 omap5*/ soc=omap5/* 根 据 相 关 环 境 变 量 设 置 静 态 IP*/ static_ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:off/*定义标准错误输出*/ stderr=serial48020000/*定义标准输入*/ stdin=serial48020000/*定义标准输出*/ stdout=serial48020000/*USB 方式启动参数*/公司官网:销售邮箱:公司总机:020-8998-628010/16技术

24、论坛:技术邮箱:技术热线:020-3893-9734usbboot=echo usb found on device $usbdev; run findfdt; usb start; if run usbloadimage; then run usbloadfdt; echo Booting from usb$usbdev .; run args_usb; bootz $loadaddr -$fdtaddr; fi;/*USB 设备为 0。AM57xx 平台 U-Boot 参数中的 USB 设备 0,对应开发板的物理接口为USB1

25、。*/ usbdev=0/*USB 启动时,通过 TFTP 加载设备树文件到 fdtaddr 中*/ usbloadfdt=load usb $bootpart $fdtaddr $bootdir/$fdtfile;/*USB 设备中 rootfs 分区文件系统的挂载节点*/ usbroot=/dev/sda2/*USB 设备中的文件系统格式*/ usbrootfstype=ext4 rootwait usbtty=cdc_acm/*处理器生产厂家为 TI*/ vendor=ti/*U-Boot 版本信息*/ver=U-Boot 2016.05-g2cdaef6 (Nov 21 2017 -

26、09:04:05 +0800)vram=16MEnvironment size: 4451/65532 bytes3 U-Boot 环境变量还原与保存进入 U-Boot 命令行,执行如下命令,还原为系统默认设置的 U-Boot 环境变量。 U-Bootenv default -a图 3U-Bootsaveenv 执行如下命令,保存更改,如下图所示: 公司官网:销售邮箱:公司总机:020-8998-628011/16技术论坛:技术邮箱:技术热线:020-3893-97

27、34图 4任何 U-Boot 环境变量的修改,如果需要得到保存,都需要执行 saveenv 命令。执行saveenv 命令后,所有 U-Boot 环境变量将会保存在 SD 系统启动卡 boot 分区的 uboot.env文件中。如果 SD 系统启动卡 boot 分区的 uboot.env 文件存在,系统会使用此文件中的U-Boot 环境变量启动系统。 修改环境变量后,执行 boot 命令,即可使用更改后的 U-Boot 环境变量启动系统,如U-Bootboot下图所示: 4 特定方式启动的 U-Boot 参数设置4.1 SD 系统启动卡方式启动由于系统默认的环境变量已经设置为从 SD 系统启动

28、卡启动,执行如下指令恢复默认环U-Bootenv default -aU-Bootsaveenv境变量并保存即可: 公司官网:销售邮箱:公司总机:020-8998-628012/16技术论坛:技术邮箱:技术热线:020-3893-9734图 5总的来说,SD 卡启动过程涉及到了三个环境变量参数,分别是 bootcmd、mmcboot、args_mmc。三个环境变量的相互关系为:当系统上电启动时,系统会自动执行 bootcmd命令,在选择 SD 卡启动方式时,boot

29、cmd 命令会调用到 run mmcboot 命令,从而运行mmcboot 命令加载U-boot.img 以及zImage 内核镜像文件,加载完成后,运行run args_mmc设置bootargs 参数,设置完成后运行 bootz 命令启动系统。 SD 卡启动具体涉及到的环境变量 /*如下 bootcmd 所示,系统启动时,会先判断环境变量 dofastboot 是否为 1,若为 1,则执行 fastboot 命令;当 dofastboot 设置为 0 时,系统会采用默认的 U-Boot 环境变量, 并运行 run mmcboot*/bootcmd=if test $dofastboot -

30、eq 1; then echo Boot fastboot requested, resetting dofastboot .;setenv dofastboot 0; saveenv;echo Booting into fastboot .; fastboot 0;fi;run findfdt; run envboot; run mmcboot;setenv mmcdev 1; setenv bootpart 1:2; setenv mmcroot/dev/mmcblk0p2 rw; run mmcboot;/*SD 卡启动参数*/args_mmc=runfinduuid;setenvboo

31、targsconsole=$console$optargs root=PARTUUID=$uuid/*SD 卡启动时,先扫描 SD 卡是否插入,若检测到 SD 卡已经插入,则加载 SD 卡 boot 分区中的 Uboot.img 以及 zImage 内核镜像。加载完成后,运行 run args_mmc,加载 rootfs 分区文件系统,以及设置控制台参数,加载完成后,运行 bootz 进行从SD 卡启动*/ mmcboot=mmc dev $mmcdev; if mmc rescan; then echo SD/MMC found on device$mmcdev;if run loadima

32、ge; then run loadfdt; echo Booting from mmc$mmcdev .; run args_mmc; bootz $loadaddr - $fdtaddr; fi;fi;公司官网:销售邮箱:公司总机:020-8998-628013/16技术论坛:技术邮箱:技术热线:020-3893-97344.2 网络方式启动基于 TFTP 和 NFS 启动开发板,是一种很便捷网络启动和调试方式,避免用户在开发过程中,使用 SD 系统启动卡等方式拷

33、贝启动文件到开发板而造成的繁琐工作。 本小节使用 TFTP 和 NFS 加载设备树文件、内核镜像文件和文件系统。进行以下操作前,请先搭建好 TFTP 和 NFS 开发环境。 依次执行如下指令修改环境变量: U-Bootenv default a/恢复默认环境变量 U-Bootsetenv serverip /根据实际情况设置服务器 IP 地址U-Bootsetenv ipaddr 0/设置开发板 IP 地址与服务器 IP 在同一网段下U-Bootsetenv fdtfile am57xx-evm-reva3.dtb /设置加载的设备树文件名 U-Bootsetenv rootpath/home/cy/share/nfs/rootfs /根据实际情况设置根文件系统路径 U-Bootsetenv netboot echo Booting from network .; setenv autoload no; run netloadimage; run netloadfdt; run netargs; bootz $loadaddr - $fdtaddr/设置 netboot 环境变量 U-Bootsetenv bootcmd run netboot/设置启动方式 U-Bootsaveenv总的来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论