IROM啟動(dòng)(internal ROM Booting),IROM啟動(dòng)是指從OneNAND、SD/MMC卡和NANDFlash存儲設備啟動(dòng)的方式,見(jiàn)下圖,描述了6410支持的啟動(dòng)模式。
本文引用地址:http://dyxdggzs.com/article/201611/317611.htm圖1
1.IROM啟動(dòng)方式的圖解

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

圖3
3.基于NAND Flash的 IROM啟動(dòng)方式的啟動(dòng)塊分配(Boot Block Assignment)

圖4
評論