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的啓動模式,只不過Samsung在S3C6410 User Manual中隱藏了S3C6400中所支持Nandflash啓動模式,目的可能是Samsung不希望在S3C6410中使用Nandflash啓動,而要推崇IROM的啓動模式。個人理解啊!

 

下面來總結一下S3C6410所支持的啓動模式:

1. NORFlash啓動

通過Nor Flash啓動,此時OM[4:1]爲0100或0101,對應8bit和16bit。

 

2. NandFlash啓動

雖然在S3C6410 User Manual中沒有提到,但是也是支持的,從S3C6400 User Manual可以找到。OM[4:1]四個硬件管腳決定了Nandflash啓動,以及支持的Nandflash的類型,包括大Page和小Page,地址週期爲3,4,5。當然,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可以初始化系統時鐘,UART,SDRAM等設備,然後拷貝Bootloader2(BL2)到SDRAM中。

4. 跳轉到SDRAM中的BL2,繼續運行,BL2可以支持更強大的功能,可以將OS加載到SDRAM中,然後運行OS。

 

整個過程中,IROM是最先被運行的,它會首先做一些初始化,具體IROM的流程如下:

1. 禁用Watch-dog

2. 初始化TCM

3. 初始化設備拷貝函數,用於拷貝BL1到SteppingStone中

4. 初始化棧區域

5. 初始化PLL

6. 初始化指令Cache

7. 初始化堆區域

8. 拷貝BL1到SteppingStone中

9. 驗證BL1

10. 跳轉到SteppingStone中運行

 

還是看一下流程圖吧,理解起來會更直觀一些,IROM啓動流程如圖:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章