IROM啟動(internal ROM Booting),IROM啟動是指從OneNAND、SD/MMC卡和NANDFlash存儲設(shè)備啟動的方式,見下圖,描述了6410支持的啟動模式。
本文引用地址:http://m.butianyuan.cn/article/201611/317611.htm圖1
1.IROM啟動方式的圖解
圖2
上圖的啟動流程根據(jù)進(jìn)一步細(xì)化為下面的流程,結(jié)合圖1和圖2理解:
1)處理器上電后,當(dāng)OM[4:1]=1111時,執(zhí)行6410芯片中IROM的啟動代碼(bootcodes),這個啟動代碼稱為BL0,它具體會做一些初始化的工作,初始化system clock, D-TCM, devicespecific controller and booting device。
2)根據(jù)GPN[15:13]管腳的設(shè)置,假如是圖1中標(biāo)識的NAND啟動介質(zhì),則GPN[15:13]=101,這樣BL0就會從BL1中讀取前4KB的程序,也就是從NAND的第0個block中讀取第0和第1頁這4KB的程序到SteppingStone的(0x0C000000)地址內(nèi)存處運行,這4KB的程序(在Real6410開發(fā)板中式nbl.nb1,大小為4KB)是去掉.rdata部分的鏡像文件。
3)BL1的這4K程序,可以初始化系統(tǒng)時鐘,UART,SDRAM等設(shè)備,然后拷貝Bootloader2(BL2)到SDRAM的(0x800000000)地址內(nèi)存處。
4)然后跳轉(zhuǎn)到SDRAM中的BL2繼續(xù)運行,BL2支持更強大的功能,在此開發(fā)板設(shè)計中,BL2拷貝eboot到SDRAM的(0x8003000)地址內(nèi)存處。
5)接著跳轉(zhuǎn)到SDRAM中的eboot中繼續(xù)運行,其中eboot進(jìn)一步初始化硬件和把WINCE內(nèi)核鏡像拷貝到SDRAM的(0x80100000)地址內(nèi)存處
6)最好在SDRAM中開始執(zhí)行NK。
在上面整個啟動的過程中,IROM是最先被運行的,它會首先做一些初始化,具體IROM的流程如下:
1) 禁用Watch-dog
2) 初始化TCM
3) 初始化設(shè)備拷貝函數(shù),用于拷貝BL1到SteppingStone中
4)初始化棧區(qū)域
5) 初始化PLL
6) 初始化指令Cache
7) 初始化堆區(qū)域
8) 拷貝BL1到SteppingStone中
9) 驗證BL1
10) 跳轉(zhuǎn)到SteppingStone中運行
2. IROM啟動方式的流程圖
為了更好理解IROM啟動方式的流程,看下面的流程圖:
圖3
3.基于NAND Flash的 IROM啟動方式的啟動塊分配(Boot Block Assignment)
圖4
評論