AM57xx uboot啓動參數詳解

U-Boot-2016.05 啓動參數詳解

系統啓動時,快速按任意鍵進入 U-Boot 命令行,執行 printenv 命令即可看到 U-Boot 的所有啓動參數,若使用默認參數則類似如下。以下爲 AM57x 平臺 U-Boot-2016.05 版本 U-Boot 啓動參數詳解:

1、啓動過程如下

=> printenv
arch=arm
args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}
args_usb=setenv bootargs rootfstype=${usbrootfstype} root=${usbroot} rw console=${console} ${optargs};
baudrate=115200
board=am57xx
board_name=am57xx_evm_reva3
bootcmd=setexpr bootcount ${bootcount} + 1; saveenv; if test ${dofastboot} -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 ${emmcbootpart}; setenv mmcroot /dev/mmcblk0p2 rw; run mmcboot;
bootcount=12
bootdelay=2
bootdir=/boot
bootenvfile=uEnv.txt
bootfile=zImage
bootm_size=0x10000000
bootpart=0:2
bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
console=ttyO2,115200n8
cpu=armv7
display_panel=TL043A
dofastboot=0
emmcbootpart=1:2
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 uenvcmd ...;run uenvcmd;fi;fi;fi;
ethaddr=34:03:de:ee:c2:9e
fdt_addr_r=0x88000000
fdtaddr=0x88000000
fdtcontroladdr=bef2f0f0
fdtfile=undefined
findfdt=if test $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 setenv 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 = 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 = am57xx_fpga_evm; then setenv fdtfile am57xx-fpga-evm.dtb; fi;if test $board_name = am572x_idk; then setenv fdtfile am572x-idk.dtb; fi;if test $board_name = am572x_idk && test $idk_pru1_mii = yes; then setenv fdtfile am572x-idk-pru1-mii.dtb; fi;if test $board_name = am571x_idk && test $idk_lcd = no; then setenv fdtfile am571x-idk.dtb; 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} uuid
idk_lcd=osd101t2045
idk_pru1_mii=no
importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
kernel_addr_r=0x82000000
loadaddr=0x82000000
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr
loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile};
loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
logofile=logo.yuv
mmcboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then run loadfdt; echo Booting from mmc${mmcdev} ...; run args_mmc; bootz ${loadaddr} - ${fdtaddr}; fi;fi;
mmcdev=0
mmcrootfstype=ext4 rootwait
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
netboot=echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}
netloadfdt=tftp ${fdtaddr} ${fdtfile}
netloadimage=tftp ${loadaddr} ${bootfile}
nfsopts=nolock
optargs=vt.global_cursor_default=0 consoleblank=0 coherent_pool=2M
partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}
pxefile_addr_r=0x80100000
ramdisk_addr_r=0x88080000
rdaddr=0x88080000
rootpath=/export/rootfs
scriptaddr=0x80000000
scsidevs=0
soc=omap5
static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
stderr=serial@48020000
stdin=serial@48020000
stdout=serial@48020000
usbboot=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;
usbdev=0
usbloadfdt=load usb ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile};
usbloadimage=load usb ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
usbroot=/dev/sda2
usbrootfstype=ext4 rootwait
usbtty=cdc_acm
vendor=ti
ver=U-Boot 2016.05-00042-g225a0c6 (Jul 09 2018 - 09:24:27 +0800)
vram=16M

Environment size: 4660/65532 bytes

2、參數詳解

若檢測到 SD 卡已插入,則加載 SD 卡 boot 分區中的 zImage 內核鏡像和 rootfs 分區文件系統;若沒有檢測到 SD 卡插入,從 eMMC 啓動系統。以下爲 U-Boot 啓動參數解析:

 

/*芯片架構爲 ARM*/

 

arch=arm

 

/*MMC 啓動參數*/

 

args_mmc=run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype}

 

args_usb=setenv bootargs rootfstype=${usbrootfstype} root=${usbroot} rw console=${console} ${optargs};

 

/*串口控制檯波特率爲 115200*/

 

baudrate=115200

 

/*板卡平臺爲 AM57xx*/

 

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*/

 

bootcmd=if test ${dofastboot} -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;

 

/* U-Boot 自動啓動等待時間爲 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}

 

/*調試串口爲 UART3,波特率爲 115200,數據位爲 8bit,無奇偶校驗*/

 

console=ttyO2,115200n8

 

/*CPU 指令集爲 armv7*/

 

cpu=armv7

 

/*dofastboot 狀態標誌位,判斷是否進行 fastboot*/

 

dofastboot=0

 

/*掃描是否 SD 卡已插入,若 SD 卡中有 U-Boot 啓動腳本,則使用腳本中的 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 uenvcmd ...;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 test $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 setenv 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 = 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; 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} uuid

 

idk_lcd=osd101t2045

 

idk_pru1_mii=no

 

/*從 loadaddr 地址開始,加載 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 卡加載啓動腳本*/

 

loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr

 

/*從 SD 卡加載 dtb 文件*/

 

loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile};

 

/*從 SD 卡加載內核鏡像文件*/

 

loadimage=load mmc ${bootpart} ${loadaddr} ${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 Booting 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},${nfsopts} 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 ${fdtaddr} ${fdtfile}

 

/*網絡啓動時,通過 TFTP 加載內核鏡像文件到 loadaddr 中*/

 

netloadimage=tftp ${loadaddr} ${bootfile}

 

/*NFS 傳輸取消文件鎖模式*/

 

nfsopts=nolock

 

/*根文件系統分區設置*/

 

partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}

 

/*pxe 啓動文件加載地址*/

 

pxefile_addr_r=0x80100000

 

/*ramdisk 文件讀取地址*/

 

ramdisk_addr_r=0x88080000

 

/*ramdisk 文件加載地址*/

 

rdaddr=0x88080000

 

/*網絡方式啓動時,文件系統在 PC 的默認存放目錄,可手動修改*/

 

rootpath=/export/rootfs

 

/*腳本文件加載地址*/

 

scriptaddr=0x80000000

 

/*設置掃描發現的 SCSI 設備數量*/

 

scsidevs=0

 

/*SOC 類型爲 omap5*/

 

soc=omap5

 

/*根據相關環境變量設置靜態 IP*/

 

static_ip=${ipaddr}{serverip}{gatewayip}{netmask}{hostname}:ff

 

/*定義標準錯誤輸出*/

 

stderr=serial@48020000

 

/*定義標準輸入*/

 

stdin=serial@48020000

 

/*定義標準輸出*/

 

stdout=serial@48020000

 

/*USB 方式啓動參數*/

 

usbboot=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。*/

 

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 - 09:04:05 +0800)

 

vram=16M

 

Environment size: 4451/65532 bytes

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章