RK U-Boot 基于開源的 U-Boot 進行開發,工作模式有啟動加載模式和下載模式。啟動加載模式是 U-Boot 的正常工作模式,嵌入式產品發布時,U-Boot 都工作在此模式下,主要用于開機時把內存中的內核加載到內存中,啟動操作系統;下載模式主要用于將固件下載到閃存,開機時長按 Recovery 鍵可進入下載模式。
編譯 U-Boot 與編譯內核類似,編譯前把默認配置寫入 .config,執行:
make rk3399_box_defconfig
linux 則為
make rk3399_linux_defconfig
如果需要修改相關選項,也可以用:
make menuconfig
編譯:
make ARCHV=aarch64
編譯后生成:
u-boot/uboot.img u-boot/trust.img u-boot/RK3399MiniLoaderAll_Vx.xx.bin
打開燒錄工具,板子接好 USB OTG 線,接通電源時按住 Recovery 鍵,使開發板進入 U-Boot 的下載模式,在燒錄工具中選擇編譯好的 Loader 文件,點擊執行即可,如下圖:
如果你已經成功燒寫你最新編譯的 Loader,在開機的串口輸出中可以看到類似如下信息:
#Boot ver: 2016-12-19#1.05
如果打印的時間及版本與你編譯的一致,說明你成功更新了Loader。
由于Firefly產品主要用于開發,所以我們默認設置開機時有1秒的倒計時,如果這時候在串口輸入任意鍵即可進入u-boot命令行模式。 發布的產品是不需要進入u-boot命令行模式的,如果需要設置u-boot默認不進入命令行模式的,可以做如下修改: 在文件 u-boot/include/configs/rk33plat.h
/* mod it to enable console commands. */ #define CONFIG_BOOTDELAY 0
把宏CONFIG_BOOTDELAY改為 0 即默認不進入命令行模式。
U-BOOT 作為一級Loader模式,那么僅支持EMMC存儲設備,編譯完成后生成的鏡像:
RK3288LoaderU-BOOT_V2.17.01.bin
其中V2.17.01是發布的版本號,rockchip 定義U-Boot loader 的版本,其中2.17是根據存儲版本定義的,客戶務必不要修改這個版本,01是U-Boot定義的小版本,用戶根據實際需求在 Makefile中修改。
U-Boot 作為二級Loader模式,那么固件支持所有的存儲設備,該模式下,需要MiniLoader支持,通過宏CONFIG_MERGER_MINILOADER進行配置生成。同時引入Arm Trusted,Firmware后會生成trust image,這個通過宏CONFIG_MERGER_TRUSTIMAGE進行配置生成。 RK3399使用二級Loader,編譯生成的鏡像為:
u-boot/uboot.img u-boot/trust.img u-boot/RK3399MiniLoaderAll_V1.05.bin
其中V1.05是發布的版本號,rockchip 定義U-Boot loader 的版本,其中1.05是根據存儲版本定義的,客戶務必不要修改這個版本。 uboot.img 是U-Boot作為二級loader 的打包。 trust.img 是U-Boot作為二級loader 的打包。
-
Linux
+關注
關注
87文章
11292瀏覽量
209328 -
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35295 -
Firefly
+關注
關注
2文章
538瀏覽量
7027
發布評論請先 登錄
相關推薦
評論