S3C6410的IROM启动模式
********************************LoongEmbedded********************************
作者:LoongEmbedded(kandi)
時間:2011.7.26
類別:WINCE bootloader開發
********************************LoongEmbedded********************************
?
IROM啟動(internal ROM Booting),IROM啟動是指從OneNAND、SD/MMC卡和NAND Flash存儲設備啟動的方式,見下圖,描述了6410支持的啟動模式。
圖1
?
1.IROM啟動方式的圖解
圖2
上圖的啟動流程根據進一步細化為下面的流程,結合圖1和圖2理解:
1)????? 處理器上電后,當OM[4:1]=1111時,執行IROM中的啟動代碼(boot codes),這個啟動代碼稱為BL0,它具體會做一些初始化的工作。
2)????? 根據GPN[15:13]管腳的設置,假如是圖1中標識的NAND啟動介質,則GPN[15:13]=101,這樣BL0就會從BL1中讀取前4KB的程序,也就是從NAND的第0個block中讀取第0和第1頁這4KB的程序到Stepping Stone的(0x0C000000)地址內存處運行,這4KB的程序(在Real6410開發板中式nbl.nb1,大小為4KB)是去掉.rdata部分的鏡像文件。
3)????? BL1可以初始化系統時鐘,UART,SDRAM等設備,然后拷貝Bootloader2(BL2)到SDRAM的(0x800000000)地址內存處。
4)????? 然后跳轉到SDRAM中的BL2繼續運行,BL2支持更強大的功能,在此開發板設計中,BL2拷貝eboot到SDRAM的(0x8003000)地址內存處。
5)????? 接著跳轉到SDRAM中的eboot中繼續運行,其中eboot進一步初始化硬件和把WINCE內核鏡像拷貝到SDRAM的(0x80100000)地址內存處
6)????? 最好在SDRAM中開始執行NK。
在上面整個啟動的過程中,IROM是最先被運行的,它會首先做一些初始化,具體IROM的流程如下:
1) 禁用Watch-dog
2) 初始化TCM
3) 初始化設備拷貝函數,用于拷貝BL1到SteppingStone中
4)初始化棧區域
5) 初始化PLL
6) 初始化指令Cache
7) 初始化堆區域
8) 拷貝BL1到SteppingStone中
9) 驗證BL1
10) 跳轉到SteppingStone中運行
?
2. IROM啟動方式的流程圖
為了更好理解IROM啟動方式的流程,看下面的流程圖:
圖3
3.基于NAND Flash的 IROM啟動方式的啟動塊分配(Boot Block Assignment)
圖4
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的S3C6410的IROM启动模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: S3C6410设备时钟源选择、启动方式选
- 下一篇: 基于WINCE6.0+S3C6410通过