uboot常用命令及其使用

流雲的部落格發表於2021-09-08

環境變數設定

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,寫入非易失性儲存器。

print

# 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命令需要明確指定這個變數的名字。

相關文章