imx6ull的boot, 之我的理解

2021-10-04 20:42:04 字數 634 閱讀 9851

以前做過am335x,它的uboot是直接放在emmc或者sd卡的fat分割槽中的,這個其實也很好理解,am335x在啟動的過程中,片內還有乙個啟動程式,這個啟動程式可以驅動sdio介面,並且這個程式還支援fat檔案系統,於是就輕而易舉的把fat檔案分割槽uboot拷貝到ddr中執行。

而imx6ull做的就簡單了,它內部也有個簡單的啟動程式,這個程式不支援fat檔案系統,但它支援sdio介面,所以imx6ull啟動的時候只能從原始的0x400偏移處讀取uboot的內容。

這樣做對使用者是不友好的的,如果是am335x,使用者只要把sd卡插入電腦,把uboot拷貝到叫做boot的fat分割槽就可以了,而imx6ull就不能這麼輕易的寫入uboot, 必須使用專用的工具寫uboot, 

方法如下:

1.在uboot中更新uboot,mmc  write命令。

2.在linux系統中,sudo dd if=u-boot.imx of=/dev/sdb bs=1024 seek=1 conv=fsync 

3.在windows中,這個不知道

其實為了驗證我的想法,我還對比了sd卡與u-boot.imx的原始資料。

IMX6ULL啟動流程

假設板子設定為sd tf卡啟動,boot rom程式會做什麼?把程式從sd tf卡讀出來,執行。從 讀?從sd tf卡讀,這需要先初始化sd tf卡 根據efuse或gpio的設定初始化sd tf卡。讀到 去?讀到記憶體即ddr去,這需要先初始化ddr。除了初始化啟動裝置 初始化ddr,還需要初始化...

IMX6ULL學習筆記(一)

imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。bin檔案前面要新增頭部 ivt boot data dcd資料 由官方手冊可知要燒寫到sd卡中的load.imx檔案在sd卡中的起始位址是0x400,也就是1...

IMX6ULL學習筆記(三)

imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。鏈結指令碼的例子 sections rodata align 4 data align 4 bss start bss align 4 bss end bss ...