imx6ul 0 之啟動方式

2021-10-23 17:38:38 字數 2186 閱讀 8857

1、啟動方式選擇

一種是改寫efuse熔絲(只能改一次),另一種就是改gpio高低電平(b_m0 , b_m1)

boot_mode0

boot_mode1

這兩個是由兩個io來控制的

從開發板撥碼開關左邊一開始,先是boot_mode1,然後是boot_mode0

前提是,設定 mode1 和 mode0 是從內部boot啟動的,也就是設定為mode1=1,mode0=0。

可以通過efuse配置,也可以gpio配置。(這裡只用gpio配置)

通過撥碼開關來將某些gpio設定為高低電平

設定內部啟動時,支援哪些裝置

nor flash(現在很少用了),onenand flash,nand flash,qspi flash,sd/emmc,eeprom

現在最常用的時nand,sd,emmc

如何選擇啟動裝置:

通過boot_cfg來選擇,有boot_cfg1,boot_cfg2,boot_cfg4.每個8位。

boot_cfg是由lcd_data0 ~ 23來設定的,再alpha開發板上,大部分預設都47k接地。

boot_cfg4的8根線全部接地;boot_cfg2的8根線全部接地,boot_cfg2 [ bit3 ] 較為重要,此位用來選擇sd卡啟動介面(esdhc1,esdhc2),boot_cfg2對應第三個撥碼開關;boot_cfg1(0,1,2定死的。bit 3,4,5,6,7可以設定的)

–在核心板上,正點原子開發板boot / 啟動 電路設定核心板lcd_data0 - 23 基本都是下,底板上有上拉。

詳細見參考手冊第八章,以及教程。

image最終會被copy到ram裡面去

從boot_cfg 設定的外接儲存中,讀取image,做相應的處理

2、ivt 和 boot data 資料

bin檔案要新增頭部,

燒寫到sd卡中的load.imx在sd卡中的起始位址是 0x400,也就是 1kb ,(sd卡前512b儲存的是分割槽資訊,寫了卡報廢

頭部大小是3kb,將是偏移的1kb,一共是4kb

因此,在sd card 中,bin檔案的起始位址為4kb

ivt大小為32b ,共8 條資訊,一條四個位元組

boot data區域的size不定,但在ivt指定了dcd的位址,那麼三塊區域的位置都可以確定。

就是配置6ull內部暫存器的

首先將ccgr0 ~ ccgr6 置1,開啟所有時鐘

設定ddr的工作模式位ddr3…

……都是和ddr相關的

其它的就是檢查資料命令,nop命令,解鎖命令…(也都屬於dcd,但本次沒寫)

imx6ul之LCD驅動移植

首先貼上一位大佬的部落格,對lcd有很詳細的描述 在uboot和kernel中,都存在這樣乙個結構體fb videomode 描述lcd的各項引數,結構體 如下 struct fb videomode 其中 display timings 中的 mode name 如果不寫會預設使用native m...

imx6ul之ddr初始化

一 環境 linux系統 3.14.52 uboot 2015.04 系統選用ddr晶元型號 is43 46tr16640a 二 ddr設定方法 2.1 簡介 imx6ul只支援16bit匯流排,最大速率大400mhz。外部訊號 系統選用ddr晶元型號 is43 46tr16640a 特點 實際應用...

imx6ul 10 之EPIT定時器

一 epit簡介 實現精準的定時功能 1 epit是乙個32位的向下計數器,是最基本的定時器。2 epit的時鐘源有多種選擇,在此選擇ipg clk 66 mhz 3 可以對時鐘源進行分頻,12位的分頻器,0 4095分別代表 1 4096分頻 4 開啟定時器後,計數暫存器會每個時鐘減1,如果和比較...