1. U-Boot 簡介
? ? Linux 系統(tǒng)要啟動(dòng)就必須需要一個(gè) bootloader 程序,也就說芯片上電以后先運(yùn)行一段bootloader 程序。這段bootloader程序會(huì)先初始化DDR等外設(shè),然后將Linux內(nèi)核從flash(NAND,NOR FLASH,SD,MMC 等)拷貝到 DDR 中,最后啟動(dòng) Linux 內(nèi)核。當(dāng)然了,bootloader 的實(shí)際工作要復(fù)雜的多,但是它最主要的工作就是啟動(dòng) Linux 內(nèi)核,bootloader 和 Linux 內(nèi)核的關(guān)系就跟 PC 上的 BIOS 和 Windows 的關(guān)系一樣,bootloader 就相當(dāng)于 BIOS。所以我們要先搞定bootloader,很慶幸,有很多現(xiàn)成的 bootloader 軟件可以使用,比如 U-Boot、vivi、RedBoot 等等,其中以 U-Boot 使用最為廣泛
? ?U-Boot 的全稱是 Universal Boot Loader,uboot 是一個(gè)遵循 GPL 協(xié)議的開源軟件,uboot 是一個(gè)裸機(jī)代碼,可以看作是一個(gè)裸機(jī)綜合例程。現(xiàn)在的 uboot 已經(jīng)支持液晶屏、網(wǎng)絡(luò)、USB 等高
級(jí)功能。uboot 官網(wǎng)為 http://www.denx.de/wiki/U-Boot/,如圖所示:
2. Rockchip, ArmSoM, U-Boot官方提供的區(qū)別
2.1 uboot 官方的 uboot 代碼
? ? 目前U-Boot最新的版本是 2023.07。但是我們一般不會(huì)直接用 uboot 官方的 U-Boot 源碼的。uboot 官方的 uboot 源碼是給半導(dǎo)體廠商準(zhǔn)備的,半導(dǎo)體廠商會(huì)下載 uboot 官方的 uboot 源碼,然后將自家相應(yīng)的芯片移植進(jìn)去。也就是說半導(dǎo)體廠商會(huì)自己維護(hù)一個(gè)版本的 uboot,這個(gè)版本的 uboot 相當(dāng)于是他們定制的。既然是定制的,那么肯定對(duì)自家的芯片支持會(huì)很全,雖然 uboot 官網(wǎng)的源碼中一般也會(huì)支持他們的芯片,但是絕對(duì)是沒有半導(dǎo)體廠商自己維護(hù)的 uboot 全面。
? ? 為做對(duì)比把官方的代碼切換到v2017.09
# git checkout v2017.09
2.2 Rockchip 提供的UBoot
? ? Rockchip 就維護(hù)的 U-Boot 官?的 v2017.09 正式版本中切出來進(jìn)?開發(fā)的版本,?前已經(jīng)?持 RK 所有主流在售芯?。?持的功能主要有:
- ?持 RK Android 固件啟動(dòng);
- ?持 Android AOSP 固件啟動(dòng);
- ?持 Linux Distro 固件啟動(dòng);
- ?持 Rockchip miniloader 和 SPL/TPL 兩種 Pre-loader 引導(dǎo);
- ?持 LVDS、EDP、MIPI、HDMI、CVBS、RGB 等顯?設(shè)備;
- ?持 eMMC、Nand Flash、SPI Nand flash、SPI NOR flash、SD 卡、 U 盤等存儲(chǔ)設(shè)備啟動(dòng);
- ?持 FAT、EXT2、EXT4 ?件系統(tǒng);
- ?持 GPT、RK parameter 分區(qū)表; ?持開機(jī) LOGO、充電動(dòng)畫、低電管理、電源管理;
- ?持 I2C、PMIC、CHARGE、FUEL GUAGE、USB、GPIO、PWM、GMAC、eMMC、NAND、 Interrupt 等;
- ?持 Vendor storage 保存??的數(shù)據(jù)和配置;
- ?持 RockUSB 和 Google Fastboot 兩種 USB gadget 燒寫 eMMC;
- ?持 Mass storage、ethernet、HID 等 USB 設(shè)備;
- ?持通過硬件狀態(tài)動(dòng)態(tài)選擇 kernel DTB;
2.3 ArmSoM提供的UBoot
? ? 如果是我們自己(ArmSoM)做的板子就需要修改 Rockchip 官方的 uboot,使其支持我們自己做的板子,ArmSoM的 ArmSoM-W3(rk3588) 開發(fā)板就是自己做的板子,雖然大部分都參考了 Rockchip官方的RK3588-EVB 開發(fā)板,但是還是有很多不同的地方,所以需要修改 Rockchip官方的 uboot,使其適配ArmSoM-W3 開發(fā)板。所以當(dāng)我們拿到開發(fā)板以后是有三種 uboot ,這三種 uboot的區(qū)別如表
種類(跳轉(zhuǎn)github倉庫) | 描述 |
---|---|
uboot 官方的 uboot 代碼 | 由 uboot 官方維護(hù)開發(fā)的 uboot 版本,版本更新快,基本包含所有常用的芯片。 |
半導(dǎo)體廠商的 uboot 代碼 | 半導(dǎo)體廠商維護(hù)的一個(gè) uboot,專門針對(duì)自家的芯片,在對(duì)自家芯片支持上要比 uboot 官方的好。 |
ArmSoM提供的 uboot 代碼 | ArmSoM開發(fā)板廠商在半導(dǎo)體廠商提供的 uboot 基礎(chǔ)上加入了對(duì)自家開發(fā)板的支持。 |
3. 如何選擇UBoot
? ? 那么這三種 uboot 該如何選擇呢?首先 uboot 官方的基本是不會(huì)用的,因?yàn)橹С痔趿恕?/p>
最常用的就是半導(dǎo)體廠商或者開發(fā)板廠商的 uboot,如果你用的半導(dǎo)體廠商的評(píng)估板,那么就使
用半導(dǎo)體廠商的 uboot,如果你是購買的第三方開發(fā)板,比如ArmSoM的 ArmSoM-W3 開發(fā)板,
那么就使用ArmSoM提供的 uboot 源碼(也是在半導(dǎo)體廠商的 uboot 上修改的)。當(dāng)然了,你也
可以在購買了第三方開發(fā)板以后使用半導(dǎo)體廠商提供的 uboot,只不過有些外設(shè)驅(qū)動(dòng)可能不支
持,需要自己移植,這個(gè)就是我們常說的 uboot 移植。
4. ArmSoM UBoot 的支持
? ? ArmSoM UBoot 在Rockchip官方提供的UBoot基礎(chǔ)上針對(duì)我們的開發(fā)板增加
- 支持PCIE30的NVMe啟動(dòng)
- 持續(xù)開發(fā)中
5. ArmSoM-W3 RK3588 開發(fā)板
ArmSoM-W3開發(fā)板基于Rockchip新一代旗艦 RK3588處理器開發(fā),采用核心板+底板的分體式設(shè)計(jì),將RK3588核心板的全部功能引腳以最便利的方式引出,并針對(duì)不同的功能做了深度優(yōu)化,方便用戶二次開發(fā)的同時(shí)簡化用戶設(shè)計(jì),為您的項(xiàng)目評(píng)估提供良好的評(píng)估及設(shè)計(jì)依據(jù)。 支持8K超清顯示,四屏異顯,配備豐富的高速數(shù)據(jù)通訊接口,滿足用戶多樣化需求;本產(chǎn)品經(jīng)由嚴(yán)苛測(cè)試,可為您的高端應(yīng)用提供穩(wěn)定性能支撐。
ArmSoM wiki:http://wiki.armsom.org/index.php/Getting_Started_with_ArmSoM-w3
ArmSoM forum:http://forum.armsom.org/
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
87文章
11342瀏覽量
210155 -
程序
+關(guān)注
關(guān)注
117文章
3795瀏覽量
81305 -
u-boot
+關(guān)注
關(guān)注
0文章
121瀏覽量
38289 -
Rockchip
+關(guān)注
關(guān)注
0文章
73瀏覽量
18619 -
RK3566
+關(guān)注
關(guān)注
0文章
148瀏覽量
4959
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論