1适用性说明
表 1
开发板型号 是否支持本实验
TL437x-EVM 支持
TL437x-EasyEVM 支持
TL437x-IDK 不支持
TL437xF-EVM 支持
2U-Boot启动参数通读
系统启动时,快速按任意键进入U-Boot命令行,执行printenv命令即可看到U-Boot的所有启动参数,若使用默认参数则类似如下。以下为AM437x平台U-Boot-2014.07版本U-Boot启动参数详解:
/芯片架构为ARM。/
arch=arm
/串口波特率为115200。/
baudrate=115200
/板卡平台为am43xx 。/
board=am43xx
/板卡模板型号为AM43__GP。/
board_name=AM43__GP
/* U-Boot入口命令bootcmd。bootcmd命令会在出现”Hit any key to stop autoboot”提示后执行。如果不按任意键,bootcmd命令会上电自动运行,按任意键则进入U-Boot命令行。bootcmd命令自动运行时,启动顺序为:MMC设备0、NAND FLASH、MMC设备1、USB设备0。我司AM437x平台的SD系统启动卡使用MMC设备0,eMMC版本TL437xF-EVM开发板使用MMC设备1。*/
bootcmd=run findfdt; run mmcboot;run nandboot; setenv mmcdev 1; setenv bootpart 1:2; run mmcboot;setenv bootpart 0:2; run usbboot;
/U-Boot自动启动等待时间为1秒。/
bootdelay=1
/内核镜像文件在文件系统的路径为”/boot”目录。/
bootdir=/boot
/*U-Boot环境变量存储文件名为uEnv.txt。 */
bootenv=uEnv.txt
/*内核镜像的文件名为zImage。 */
bootfile=zImage
bootm_size=0x10000000
/文件系统在启动设备的第二分区。/
bootpart=0:2
/调试串口为UART0,波特率为115200,数据位为8bit,无奇偶校验。/
console=ttyO0,115200n8
/CPU指令集为armv7。/
cpu=armv7
dfu_alt_info_emmc=MLO raw 0x100 0x100 mmcpart 0;u-boot.img raw 0x300 0x1000 mmcpart 0
dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;spl-os-args fat 0 1;spl-os-image fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1
dfu_alt_info_ram=kernel ram 0x80200000 0x4000000;fdt ram 0x80f80000 0x80000;ramdisk ram 0x81000000 0x4000000
dfu_bufsiz=0x10000
/ETH1网口MAC地址,可手动设置。/
eth1addr=a8:1b:6a:c9:91:3b
/网卡驱动类型。/
ethact=cpsw
/ETH0网口MAC地址,可手动设置。/
ethaddr=a8:1b:6a:c9:91:39
fdt_addr_r=0x88000000
/设备树文件加载地址。/
fdtaddr=0x88000000
/设备树文件名,此处暂未定义。/
fdtfile=undefined
/findfdt命令根据开发板名称board_name设置设备树文件名fdtfile。/
findfdt=if test $board_name = AM43EPOS; then setenv fdtfile am43x-epos-evm.dtb; fi; if test $board_name = AM43__GP; then setenv fdtfile am437x-gp-evm.dtb; fi; if test $board_name = AM43__SK; then setenv fdtfile am437x-sk-evm.dtb; fi; if test $fdtfile = undefined; then echo WARNING: Could not determine device tree; fi;
/从loadaddr地址开始,加载bootenv指定文件、定义大小为filesize的环境变量。/
importbootenv=echo Importing environment from mmc …; env import -t $loadaddr $filesize
kernel_addr_r=0x82000000
/内核镜像文件、bootenv指定文件中的环境变量的共用加载地址。/
loadaddr=0x82000000
/从设备类型为devtype的第devnum个设备的第一分区中,加载U-Boot环境变量。/
loadbootenv=load ${devtype} ${devnum} ${loadaddr} ${bootenv}
/从设备类型为devtype,bootpart指定的设备分区的bootdir目录中,加载设备树文件。/
loadfdt=load ${devtype} ${bootpart} ${fdtaddr} b o o t d i r / {bootdir}/ bootdir/{fdtfile}
/从设备类型为devtype,bootpart指定的设备分区的bootdir目录中,加载内核镜像文件。/
loadimage=load ${devtype} ${bootpart} ${loadaddr} b o o t d i r / {bootdir}/ bootdir/{bootfile}
loadramdisk=load ${devtype} ${devnum} r d a d d r r a m d i s k . g z / ∗ M M C 启 动 参 数 。 ∗ / m m c a r g s = s e t e n v b o o t a r g s c o n s o l e = {rdaddr} ramdisk.gz /*MMC启动参数。*/ mmcargs=setenv bootargs console= rdaddrramdisk.gz/∗MMC启动参数。∗/mmcargs=setenvbootargsconsole={console} o p t a r g s r o o t = {optargs} root= optargsroot={mmcroot} rootfstype=${mmcrootfstype}
/MMC方式启动时,从mmcdev变量指定的MMC设备中,加载bootenv指定文件中环境变量、文件系统分区boot目录下的设备树和内核镜像文件。加载完成后,运行mmcargs,启动系统。/
mmcboot=mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${devnum};if run loadbootenv; then echo Loaded environment from ${bootenv};run importbootenv;fi;if test -n u e n v c m d ; t h e n e c h o R u n n i n g u e n v c m d . . . ; r u n u e n v c m d ; f i ; i f r u n l o a d i m a g e ; t h e n r u n l o a d f d t ; e c h o B o o t i n g f r o m m m c uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;if run loadimage; then run loadfdt; echo Booting from mmc uenvcmd;thenechoRunninguenvcmd...;runuenvcmd;fi;ifrunloadimage;thenrunloadfdt;echoBootingfrommmc{mmcdev} …; run mmcargs; bootz ${loadaddr} - f d t a d d r ; f i ; f i ; / ∗ M M C 设 备 为 0 。 ∗ / m m c d e v = 0 / ∗ M M C 设 备 中 r o o t f s 分 区 的 文 件 系 统 挂 载 节 点 。 ∗ / m m c r o o t = / d e v / m m c b l k 0 p 2 r w / ∗ M M C 设 备 中 的 文 件 系 统 类 型 。 ∗ / m m c r o o t f s t y p e = e x t 4 r o o t w a i t / ∗ N A N D F L A S H 为 n a n d . 0 。 ∗ / m t d i d s = n a n d 0 = n a n d . 0 / ∗ N A N D F L A S H 分 区 列 表 。 ∗ / m t d p a r t s = m t d p a r t s = n a n d . 0 : 256 k ( N A N D . S P L ) , 256 k ( N A N D . S P L . b a c k u p 1 ) , 256 k ( N A N D . S P L . b a c k u p 2 ) , 256 k ( N A N D . S P L . b a c k u p 3 ) , 512 k ( N A N D . u − b o o t − s p l − o s ) , 1 m ( N A N D . u − b o o t ) , 256 k ( N A N D . u − b o o t − e n v ) , 256 k ( N A N D . u − b o o t − e n v . b a c k u p 1 ) , 7 m ( N A N D . k e r n e l ) , − ( N A N D . f i l e − s y s t e m ) / ∗ N A N D F L A S H 启 动 参 数 。 ∗ / n a n d a r g s = s e t e n v b o o t a r g s c o n s o l e = {fdtaddr}; fi;fi; /* MMC设备为0。*/ mmcdev=0 /*MMC设备中rootfs分区的文件系统挂载节点。*/ mmcroot=/dev/mmcblk0p2 rw /*MMC设备中的文件系统类型。*/ mmcrootfstype=ext4 rootwait /*NAND FLASH为nand.0。*/ mtdids=nand0=nand.0 /*NAND FLASH分区列表。*/ mtdparts=mtdparts=nand.0:256k(NAND.SPL),256k(NAND.SPL.backup1),256k(NAND.SPL.backup2),256k(NAND.SPL.backup3),512k(NAND.u-boot-spl-os),1m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup1),7m(NAND.kernel),-(NAND.file-system) /*NAND FLASH启动参数。*/ nandargs=setenv bootargs console= fdtaddr;fi;fi;/∗MMC设备为0。∗/mmcdev=0/∗MMC设备中rootfs分区的文件系统挂载节点。∗/mmcroot=/dev/mmcblk0p2rw/∗MMC设备中的文件系统类型。∗/mmcrootfstype=ext4rootwait/∗NANDFLASH为nand.0。∗/mtdids=nand0=nand.0/∗NANDFLASH分区列表。∗/mtdparts=mtdparts=nand.0:256k(NAND.SPL),256k(NAND.SPL.backup1),256k(NAND.SPL.backup2),256k(NAND.SPL.backup3),512k(NAND.u−boot−spl−os),1m(NAND.u−boot),256k(NAND.u−boot−env),256k(NAND.u−boot−env.backup1),7m(NAND.kernel),−(NAND.file−system)/∗NANDFLASH启动参数。∗/nandargs=setenvbootargsconsole={console} o p t a r g s r o o t = {optargs} root= optargsroot={nandroot} rootfstype=${nandrootfstype}
/NAND FLASH方式启动时,从nand.0的对应分区中,加载设备树、内核镜像文件。加载完成后,启动系统。/
nandboot=echo Booting from nand …; run nandargs; nand read ${fdtaddr} NAND.u-boot-spl-os; nand read ${loadaddr} NAND.kernel; bootz ${loadaddr} - f d t a d d r / ∗ N A N D F L A S H 中 文 件 系 统 分 区 的 挂 载 节 点 。 ∗ / n a n d r o o t = u b i 0 : r o o t f s r w u b i . m t d = N A N D . f i l e − s y s t e m , 4096 / ∗ N A N D F L A S H 中 的 文 件 系 统 类 型 。 ∗ / n a n d r o o t f s t y p e = u b i f s r o o t w a i t = 1 / ∗ 网 络 启 动 参 数 , 文 件 系 统 目 录 挂 载 节 点 为 ” / d e v / n f s ” , 此 处 ” i p = d h c p ” 表 示 开 发 板 在 内 核 和 文 件 系 统 阶 段 自 动 获 取 I P 。 ∗ / n e t a r g s = s e t e n v b o o t a r g s c o n s o l e = {fdtaddr} /*NAND FLASH中文件系统分区的挂载节点。*/ nandroot=ubi0:rootfs rw ubi.mtd=NAND.file-system,4096 /*NAND FLASH中的文件系统类型。*/ nandrootfstype=ubifs rootwait=1 /*网络启动参数,文件系统目录挂载节点为”/dev/nfs”,此处”ip=dhcp”表示开发板在内核和文件系统阶段自动获取IP。*/ netargs=setenv bootargs console= fdtaddr/∗NANDFLASH中文件系统分区的挂载节点。∗/nandroot=ubi0:rootfsrwubi.mtd=NAND.file−system,4096/∗NANDFLASH中的文件系统类型。∗/nandrootfstype=ubifsrootwait=1/∗网络启动参数,文件系统目录挂载节点为”/dev/nfs”,此处”ip=dhcp”表示开发板在内核和文件系统阶段自动获取IP。∗/netargs=setenvbootargsconsole={console} o p t a r g s r o o t = / d e v / n f s n f s r o o t = {optargs} root=/dev/nfs nfsroot= optargsroot=/dev/nfsnfsroot={serverip}: r o o t p a t h , {rootpath}, rootpath,{nfsopts} rw ip=dhcp
/网络方式启动时,使用TFTP从服务器中加载设备树和内核镜像文件,执行netargs命令,启动系统。此处dhcp 表示开发板在U-Boot阶段自动获取IP。/
netboot=echo Booting from network …; setenv autoload no; dhcp; tftp ${loadaddr} ${bootfile}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - f d t a d d r / ∗ N F S 传 输 取 消 文 件 锁 模 式 。 ∗ / n f s o p t s = n o l o c k p a r t i t i o n s = u u i d d i s k = {fdtaddr} /*NFS传输取消文件锁模式。*/ nfsopts=nolock partitions=uuid_disk= fdtaddr/∗NFS传输取消文件锁模式。∗/nfsopts=nolockpartitions=uuiddisk={uuid_gpt_disk};name=rootfs,start=2MiB,size=-,uuid= u u i d g p t r o o t f s r a m a r g s = s e t e n v b o o t a r g s c o n s o l e = {uuid_gpt_rootfs} ramargs=setenv bootargs console= uuidgptrootfsramargs=setenvbootargsconsole={console} o p t a r g s r o o t = {optargs} root= optargsroot={ramroot} rootfstype= r a m r o o t f s t y p e r a m d i s k a d d r r = 0 x 88080000 r a m r o o t = / d e v / r a m 0 r w r a m r o o t f s t y p e = e x t 2 r d a d d r = 0 x 88080000 / ∗ 网 络 方 式 启 动 时 , 文 件 系 统 在 P C 的 默 认 存 放 目 录 , 可 手 动 修 改 。 ∗ / r o o t p a t h = / e x p o r t / r o o t f s s o c = a m 33 x x / ∗ 根 据 相 关 环 境 变 量 设 置 静 态 I P 。 ∗ / s t a t i c i p = {ramrootfstype} ramdisk_addr_r=0x88080000 ramroot=/dev/ram0 rw ramrootfstype=ext2 rdaddr=0x88080000 /*网络方式启动时,文件系统在PC的默认存放目录,可手动修改。*/ rootpath=/export/rootfs soc=am33xx /*根据相关环境变量设置静态IP。*/ static_ip= ramrootfstyperamdiskaddrr=0x88080000ramroot=/dev/ram0rwramrootfstype=ext2rdaddr=0x88080000/∗网络方式启动时,文件系统在PC的默认存放目录,可手动修改。∗/rootpath=/export/rootfssoc=am33xx/∗根据相关环境变量设置静态IP。∗/staticip={ipaddr}: s e r v e r i p : {serverip}: serverip:{gatewayip}: n e t m a s k : {netmask}: netmask:{hostname}::off
/定义标准错误输出。/
stderr=serial
/定义标准输入。/
stdin=serial
/定义标准输出。/
stdout=serial
/USB启动参数。/
usbargs=setenv bootargs console=${console} o p t a r g s r o o t = {optargs} root= optargsroot={usbroot} rootfstype=${usbrootfstype}
/USB方式启动时,从usbdev变量指定的USB设备中,加载bootenv指定文件中的环境变量、文件系统分区boot目录下的设备树和内核镜像文件。加载完成后,运行usbargs,启动系统。/
usbboot=setenv devnum ${usbdev}; setenv devtype usb; usb start ${usbdev}; if usb dev ${usbdev}; then if run loadbootenv; then echo Loaded environment from ${bootenv};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd …;run uenvcmd;fi;if run loadimage; then run loadfdt; echo Booting from usb ${usbdev}…; run usbargs;bootz ${loadaddr} - ${fdtaddr}; fi;fi
/USB设备为0。AM437x平台U-Boot参数中的USB设备0,对应开发板的物理接口为USB1。/
usbdev=0
usbnet_devaddr=a8:1b:6a:c9:91:3b
/USB设备中rootfs分区文件系统的挂载节点。/
usbroot=/dev/sda2 rw
/USB设备中的文件系统格式。/
usbrootfstype=ext4 rootwait
/处理器生产厂家为TI。/
vendor=ti
/U-Boot版本信息。/
ver=U-Boot 2014.07-00121-g0adfb2b (Jul 04 2017 - 15:21:24)
后续详细帮助在官网
销售邮箱:[email protected]
技术邮箱:[email protected]
创龙总机:020-8998-6280
技术热线:020-3893-9734
创龙官网:www.tronlong.com
技术论坛:www.51ele.net
线上商城:https://tronlong.taobao.com