S3C6410啟動模式介紹

2022-05-26 14:36:09 字數 2305 閱讀 8028

目前的arm處理器都支援多種啟動模式,s3c6410和以前的samsung的arm處理器一樣,通過外部管腳om[4:0]的拉高拉低來決定是從哪個儲存裝置上啟動。我認為s3c6410的user manual並沒有說的很清楚,所以我在最開始使用的時候,也對其啟動模式有一些誤解,下面就我個人的理解,介紹一下s3c6410的啟動。

先讀一下s3c6410 user manual的第3章 system controller,在123頁列了一張表,如圖:

om[4:0]選擇啟動裝置及時鐘源。om[0]為0選擇xxtlpll,為1選擇xextclk。

gpn[15:13]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啟動

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啟動流程如圖:

S3C6410啟動模式介紹

目前的arm處理器都支援多種啟動模式,s3c6410和以前的samsung的arm處理器一樣,通過外部管腳om 4 0 的拉高拉低來決定是從哪個儲存裝置上啟動。我認為s3c6410的user manual並沒有說的很清楚,所以我在最開始使用的時候,也對其啟動模式有一些誤解,下面就我個人的理解,介紹一...

S3C6410啟動模式介紹

from 目前的arm處理器都支援多種啟動模式,s3c6410和以前的samsung的arm處理器一樣,通過外部管腳om 4 0 的拉高拉低來決定是從哪個儲存裝置上啟動。我認為s3c6410的user manual並沒有說的很清楚,所以我在最開始使用的時候,也對其啟動模式有一些誤解,下面就我個人的理...

S3C6410啟動模式介紹

s3c6410啟動模式介紹 目前的arm處理器都支援多種啟動模式,s3c6410和以前的samsung的arm處理器一樣,通過外部管腳om 4 0 的拉高拉低來決定是從哪個儲存裝置上啟動。我認為s3c6410的user manual並沒有說的很清楚,所以我在最開始使用的時候,也對其啟動模式有一些誤解...