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