飛騰uboot命令簡(jiǎn)單介紹

原文在我公眾號(hào)上:
https://mp.weixin.qq.com/s/qT-ymrp4e_jR_niAfAP65Q

飛騰uboot和開(kāi)源uboot并無(wú)大差異,故飛騰uboot固件命令可以直接從網(wǎng)上搜索開(kāi)源uboot相關(guān)命令。這里為了便于大家調(diào)試,將一些可能用到的命令說(shuō)明一下。在 Uboot 命令行下,輸入 help 將打印所有的可用命令,復(fù)雜命令操作,通過(guò)命令 help 的方式獲取具體說(shuō)明。
1.help命令
輸入 help,可以得到命令簡(jiǎn)易說(shuō)明。
輸入:命令 help,可以得到命令的具體說(shuō)明。

2.環(huán)境變量命令
舉例:查看當(dāng)前環(huán)境變量后,修改 server ip 地址,然后在保存
1)查看當(dāng)前環(huán)境變量

2)修改地址和保存
修改就是重置,就是用setenv給變量重新賦值,新值需要用英文單引號(hào)’引起來(lái)。

? ? ? ? ?
? ? ? ? ?
3.開(kāi)關(guān)機(jī)等操作命令
? ? ? ? ?
4.加載命令???? ??? ? ? ? ?
啟動(dòng) Image 文件使用 booti;
啟動(dòng) uImage 文件,使用 bootm

booti?0x90100000 -:- 0x90000000?解釋:引導(dǎo) OS 的命令,booti參數(shù)一是加載的內(nèi)核鏡像文件,這里是從0x90100000 地址加載;參數(shù)二是文件系統(tǒng),這里寫成“-:-”表示不用加載,表示使用默認(rèn)的文件系統(tǒng);參數(shù)三是設(shè)備樹(shù)文件,這里是從?0x90000000?地址加載。? ? ? ? ?
那這個(gè)內(nèi)核鏡像、設(shè)備樹(shù)是什么時(shí)候放到0x90100000?、0x90000000?地址呢?
是靠加載命令進(jìn)去的。這個(gè)加載命令是后面要說(shuō)的,它根據(jù)不同的存儲(chǔ)介質(zhì)是不一樣的。
當(dāng)前示例環(huán)境變量是從sata盤讀取,加載到內(nèi)存0x90100000?、0x90000000?地址的。
如圖:

當(dāng)uboot去啟動(dòng)系統(tǒng)的時(shí)候,最先執(zhí)行的環(huán)境變量為bootcmd。
通過(guò)上面可以看出,bootcmd是要去執(zhí)行distro_bootcmd。distro_bootcmd又去執(zhí)行boot_ft。
boot_ft調(diào)用了load_fdt_ft、load_kernel_ft。
load_fdt_ft用ext4load命令從sata盤(scsi就是sata接口)將dtb設(shè)備樹(shù)加載到了0x90000000內(nèi)存地址。
load_kernel_ft用ext4load命令從sata盤uImage內(nèi)核鏡像加載到了0x90100000內(nèi)存地址。
之后再去按上面說(shuō)的bootm,booti就可以了。
提示一句,加載的設(shè)備樹(shù)是硬盤里存的,名字是啥就填啥,不是都叫圖里的名字。
? ? ? ? ??? ? ??
5.PCI(PCIe)相關(guān)命令
輸入 pci help 會(huì)有所有命令說(shuō)明

? ? ? ? ?
1)查看 PCIE 控制器情況以及掃到外設(shè)情況,例如 pci 3中3代表BUS號(hào),

2)查看外設(shè)配置空間
"pci d"命令用于顯示PCI設(shè)備的配置空間信息。"03.00.00" 是一個(gè)由三個(gè)部分組成的地址,分別表示 PCI 設(shè)備的總線號(hào)(bus number)、設(shè)備號(hào)(device number)和功能號(hào)(function number)。
"pci d 03.00.00" 的意思是在第三條總線上的第一個(gè)插槽中的第一個(gè)功能的 PCI 設(shè)備的配置空間信息。
執(zhí)行該命令后,u-boot 將顯示與該設(shè)備相關(guān)的詳細(xì)信息,例如廠商ID、設(shè)備ID、設(shè)備類別等。通常情況下,這些信息以十六進(jìn)制格式顯示,以便更精確地表示數(shù)據(jù)。對(duì)于一些常見(jiàn)的字段,如廠商ID和設(shè)備ID,可以使用 PCI 數(shù)據(jù)庫(kù)或其他參考資料將其轉(zhuǎn)換為對(duì)應(yīng)的字符串,以便更容易理解。

3)查看外設(shè)信息
"pci h"命令用于在PCI設(shè)備上執(zhí)行總線控制器的操作。它可以用于掃描PCI總線,探測(cè)和配置PCI設(shè)備,設(shè)置中斷路由等。這個(gè)命令可以用于操作和管理PCI總線上的設(shè)備。

? ? ? ? ?? ? ??
6.USB命令
? ? ? ? ?
其中常用命令如下:??? ??
1)usb start 為加載 usb 驅(qū)動(dòng),尋找 usb 控制器

2)usb reset 為復(fù)位 usb 控制器

3)usb info 為顯示掃描到 usb 外設(shè)

? ? ? ? ?
7.scsi(sata)命令
其中常用如下:
1)查詢 SATA 控制下有幾個(gè) device 設(shè)備,示例硬件中連接一個(gè) SATA 盤

2)顯示 SATA 控制下有幾個(gè) device 設(shè)備,示例硬件中連接一個(gè) SATA 盤


"scsi device" 和 "scsi info" 是兩個(gè)不同的命令,它們的作用和顯示的信息有一些差別:
"scsi device" 命令用于設(shè)置當(dāng)前的 SCSI 設(shè)備。它接受一個(gè)參數(shù),該參數(shù)表示要選擇的 SCSI 設(shè)備的索引號(hào)。索引號(hào)從 0 開(kāi)始,代表第一個(gè) SCSI 設(shè)備。該命令可以用于在多個(gè) SCSI 設(shè)備之間進(jìn)行切換,以便執(zhí)行針對(duì)特定設(shè)備的操作。一旦設(shè)置了當(dāng)前設(shè)備,后續(xù)的 SCSI 命令將應(yīng)用于該設(shè)備。
"scsi info" 命令用于顯示 SCSI 控制器和已連接的 SCSI 設(shè)備的信息。它會(huì)列出每個(gè) SCSI 設(shè)備的詳細(xì)信息,如設(shè)備號(hào)、設(shè)備類型、廠商等。此命令不需要參數(shù),并且會(huì)顯示當(dāng)前系統(tǒng)中所有可用的 SCSI 設(shè)備的信息。
總的來(lái)說(shuō)"scsi device" 命令用于設(shè)置當(dāng)前的 SCSI 設(shè)備,而 "scsi info" 命令用于顯示系統(tǒng)中所有 SCSI 設(shè)備的詳細(xì)信息。
? ? ? ? ?
8.操作SATA 盤中文件的命令
用于啟動(dòng)系統(tǒng),具體可見(jiàn)環(huán)境變量中的設(shè)置。
示例如下:
第一步,首先查看有幾個(gè) SATA 盤,device0 為 FAT 格式容量 250G,device1 為
ext4 格式容量為 1G;
第二步,查看 device0 中的文件;
第三步,加載 device0 中設(shè)備樹(shù);
第四步,查看 device1 中的文件;
第五步,加載 device1 中的 image 文件。

? ? ? ? ?
? ? ? ? ?
9.nvme 命令
?? ? ??命令的用法與?scsi?相似。
? ? ? ? ??? ? ?
10.mii命令
mii命令請(qǐng)查看文章:


個(gè)人資料推廣:
最近將多年來(lái)收集到的教學(xué)視頻、國(guó)內(nèi)外圖書(shū)、源碼等整理整合拿出來(lái),
涉及 arm、Linux、python、信號(hào)完整性、FPGA、DSP、算法、stm32、
單片機(jī)、制圖、電子模塊、kali、出版社圖書(shū)等。
資料目前約 1.5TB+。初、中、高不同階段工程師,都能有提升自己的資料。


分享,讓技術(shù)更偉大!歡迎轉(zhuǎn)發(fā)!?
歡迎飛騰愛(ài)好者加入微信交流群。
群內(nèi)大家可以暢所欲言。在群內(nèi)不需要表露自己的公司和身份,可以群內(nèi)交流遇到的問(wèn)題,分享自己的調(diào)試心得。
希望大家共建飛騰友誼!
