Nand 啓動

一段程序引發的思考:

FS2410開發板上,有NAND FLASH NORFLASH ,兩片FLASH各有各的特點和區別:

1.       NOR  價格比NAND 要貴。

2.       NOR   在讀的時候很快, NAND讀的時候很慢。

3.       NOR   在寫的時候比NAND稍快。

4.       NOR    在出廠是是沒有壞塊的,而NAND 在出廠時允許有壞塊。

5.       NAND     擦寫壽命是NOR 的十倍,NAND 擦寫次數可達10萬次

6.另外NOR RAM 的接口相同,NAND I/O接口。NOR  支持XIP ,及代碼可以直接在NOR 上執行,無需複製到內存中,NAND 沒有這種特性。

7NOR  可以隨機訪問,NAND 順序訪問

 

FC2410開發板上用的型號是K9F1208UOM NAND FLASH 它的大小是64M

u-boot-1.3.1內核中 NAND FLASH 初始化代碼如下:

 

.equ        SDRAM_BASE,       0x30000000

@ reset NAND

  mov r1, #NAND_CTL_BASE

  ldr r2, =0xf830 @ initial value

  str r2, [r1, #oNFCONF]

  ldr r2, [r1, #oNFCONF]

  bic r2, r2, #0x800 @ enable chip

  str r2, [r1, #oNFCONF]

  mov r2, #0xff @ RESET command

  strb r2, [r1, #oNFCMD]

 

  mov r3, #0 @ wait

nand1:

  add r3, r3, #0x1

  cmp r3, #0xa

  blt nand1

 

nand2:

  ldr r2, [r1, #oNFSTAT] @ wait ready

  tst r2, #0x1

  beq nand2

 

  ldr r2, [r1, #oNFCONF]

  orr r2, r2, #0x800 @ disable chip

  str r2, [r1, #oNFCONF]

 

 

 

 

S3C2410支持從Nand FLASH 啓動,系統上電啓動後,通過Rom code檢查是否從NAND FLASH 啓動,如果是就將NAND 4k數據搬移到4kSRAM ,並把0x00000000設置內部SRAM的起始地址,CPU從內部SRAM 0x00000000位置開始啓動,這個過程不需要程序干涉。

程序員需要完成的工作,是把最核心的啓動程序放在NAND FLASH 的前4k中。由於NAND FLASH 控制器從NAND FLASH 中搬移到內部SRAM的代碼是有限的,所以在啓動代碼的前4k裏。在這4k要完成的任務簡單列舉如下:

1.       關閉看門狗。

2.       PLL倍頻選擇。

3.       加載NAND FLASH驅動

4.       SDRAM 初始化。

 

 

 

 

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