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 初始化。

 

 

 

 

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