環境變數設定
setenv
設定一個環境變數
# 格式:setenv key vlaue
setenv bootdelay 5 # 設定uboot啟動延時5s
刪除一個環境變數
uboot對於一個沒有值的環境變數,預設不再維護,做刪除處理
# 格式:setenv key
setenv ipaddr # 刪除ipaddr,讓ipaddr不復存在
修改一個環境變數
# 格式:setenv key vlaue
setenv bootdelay 5 # 原來的bootdleay值被覆蓋,採用新值5
saveenv
uboot啟動時,從非易失性儲存器中讀取環境變數的值,在記憶體中維護一份拷貝,當採用setenv命令建立、修改、或者刪除後,記憶體中被相應地建立、修改或者刪除,非易失儲存器中的那一份並沒有改變。直到執行saveenv,寫入非易失性儲存器。
# 1.列印所有環境變數及其值。
print # 列印所有
# 2. 列印某一個
# 如果要檢視某個你知道名字的環境變數,可以使用該命令。例如,列印bootcmd命令:
print bootcmd # 只列印bootcmd
系統啟動相關的命令
bootz
bootz命令根據給定的kernel、dtb在ddr中的地址,去啟動核心。可以通過多種方式(tftp命令、fatload命令等方式將zImage、dtb載入到ddr指定位置)
輸入引數1:zImage_addr
輸入引數2:dtb_addr
# if zimage_addr=80800000 dtb_addr=83000000
tftp 80800000 zImage
tftp 83000000 xxxx.dtb
bootz 80800000 - 83000000
bootm
bootm用於啟動uImage
boot
boot命令執行uboot環境變數bootcmd中定義好的一組命令來啟動系統。這一組命令一般包含
1)將kerneldtb拷貝到ddr指定位置的命令
2)bootz或者bootm命令
# 執行boot命令則執行環境變數bootcmd中定義好的命令
# 測試該命令,可以自定定義bootcmd命令,如下所示:
# 下面使用雙引號包含多個命令,命令之間用分號隔開,單引號也可以
setenv bootcmd "tftp 80800000 zImage;tftp 83000000 xxxx.dtb;bootz 80800000 - 83000000"
saveenv # 做測試可以不儲存,如果儲存了,聚會寫入環境變數區
boot
run
run命令可以執行一個自定義命令,這個自定義命令的名字以一個環境變數形式出現,環境變數的內容就是使用者要執行的一系列命令集合。
setenv usercmd "tftp 80800000 zImage;tftp 83000000 xxxx.dtb;bootz 80800000 - 83000000"
run usercmd
run命令和boot命令很相似,知識boot命令預設會執行bootcmd中定義好的一系列操作,不需要制定這個環境變數,但是run命令需要明確指定這個變數的名字。