Samsung的ARM處理器iROM啓動模式介紹

這篇文章寫的不錯 讓我明白Samsung ARM芯片啓動流程了


先前不太明白這三個Boot到底有什麼用,於是從網上找到了下面一篇文件,是以 S3C6410爲例作的介紹。

 
    目前的ARM處理器都支持多種啓動模式,S3C6410和以前的 Samsung的ARM處理器一樣,通過外部管腳OM[4:0]的拉高拉低來決定是從哪個存儲設備上啓動。我認爲S3C6410的User Manual並沒有說的很清楚,所以我在最開始使用的時候,也對其啓動模式有一些誤解,下面就我個人的理解,介紹一下S3C6410的啓動。
    先讀一下S3C6410 User Manual的第3章 System Controller,在123頁列了一張表,如圖:

這章表列出了S3C6410所支持的幾種啓動模式。首先介紹一下和啓動模式相關的硬件管腳:
OM[4:0]:選擇啓動設備及時鐘源。OM[0]爲0選擇XXTlpll,爲1選擇XEXTCLK。
 
 GPN[15:13]:用於識別所支持的Nandflash的類型,包括Page的類型和地址週期。
 XSELNAND:選擇Nand啓動或者是OneNand啓動。0爲OneNand,1爲Nand。
 
 
    從表中可以看出,S3C6410好像並不支持Nandflash啓動,因爲Boot Device中沒有Nandflash設備。當OM[4:0]爲0000x/0001x/0010x/0011x的時候,Boot Device是Reserved,我想這裏是Samsung在6410中有意要隱瞞什麼。如果你用過S3C6400,你應該知道在S3C6400 User Manual中也有這麼一張表,描述了s3c6400的啓動模式,具體S3C6400的啓動模式也是在第3章 System Controller,在第107頁的表,如圖:



我想和S3C6410的表對照一下就會發現,兩個處理器的啓動模式是兼容的,我認爲S3C6410應該兼容S3C6400的啓動模式,只不過SamsungS3C6410 User Manual中隱藏了S3C6400中所支持Nandflash啓動模式,目的可能是Samsung不希望在S3C6410中使用Nandflash啓動,而要推崇IROM的啓動模式。個人理解啊!
 
 
 
下面來總結一下S3C6410所支持的啓動模式:
 
1. NORFlash啓動
 
通過Nor Flash啓動,此時OM[4:1]01000101,對應8bit16bit
 
 
 
2. NandFlash啓動
 
雖然在S3C6410 User Manual中沒有提到,但是也是支持的,從S3C6400 User Manual可以找到。OM[4:1]四個硬件管腳決定了Nandflash啓動,以及支持的Nandflash的類型,包括大Page和小Page,地址週期爲345。當然,XSELNAND管腳也要爲1
 
 
 
3. OneNAND啓動
 
首先XSELNAND管腳爲0,其次OM[4:1]0110,爲OneNand啓動模式。
 
 
 
4. MODEM啓動
 
OM[4:1]0111的時候,爲MODEM啓動。S3C6410通過MODEM接口下載boot代碼到內部RAM中,然後進行引導。
 
 
 
5. IROM啓動
 
OM[4:1]1111的時候,從Internal ROM中啓動,此時GPN[15:13]用於識別設備的類型。這種模式以前沒見過,這裏具體介紹一下。
 
IROM模式可以支持MoviNand,SD/MMC,iNand,OneNand和Nand等。關於IROM的引導,具體過程如圖:




1. 處理器上電後,當OM[4:1]=1111時,運行iROM中的程序,這個程序被稱爲Bootloader0(BL0),它會做一些初始化的工作。
 
2. 然後根據GPN[15:13]的管腳設置,選擇從相應的設備(SD/MMC/OneNand/Nand)中的指定區域讀取4KB的程序到SteppingStone中運行,這段代碼被稱爲Bootloader1(BL1)
 
3. BL1可以初始化系統時鐘,UARTSDRAM等設備,然後拷貝Bootloader2(BL2)SDRAM中。
 
4. 跳轉到SDRAM中的BL2,繼續運行,BL2可以支持更強大的功能,可以將OS加載到SDRAM中,然後運行OS
 
 
 
整個過程中,IROM是最先被運行的,它會首先做一些初始化,具體IROM的流程如下:
 
1. 禁用Watch-dog
 
2. 初始化TCM
 
3. 初始化設備拷貝函數,用於拷貝BL1SteppingStone
 
4. 初始化棧區域
 
5. 初始化PLL
 
6. 初始化指令Cache
 
7. 初始化堆區域
 
8. 拷貝BL1SteppingStone
 
9. 驗證BL1
 
10. 跳轉到SteppingStone中運行


收藏了!!!!

發佈了13 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章