2440从NANDFlash启动之bootloader运行以前

一直对2440上电以后怎么从nandflash中启动不是很清楚,闲来无事看了下s3c2440的用户手册,看到下面这样一段话:
S3C2440A boot code can be executed on an external NAND flash memory. In order to support NAND flash bootloader, the S3C2440A is equipped with an internal SRAM buffer called "Steppingstone". When booting, the first 4KBytes of the NAND flash memory will be loaded into Steppingstone and the boot code loaded into Steppingstone will be executed.
Generally, the boot code will copy NAND flash content to SDRAM. Using hardware ECC generating, the NAND flash data validity will be checked. Upon the completion of the copy, the main program will be executed on the SDRAM.
虽然大家都看得懂上面的eng,但是为了自己以后看得方便一些,在此稍微解释一下:
2440的启动代码可以从外部的nandflash上执行。为了能支持nboot,2440需要带有一个叫做steppingstone的内部sram缓冲区。在启动加载的时候,nandflash的前4k的内容(nboot部分)要被先load到steppingstone中去(此时steppingstone被映射为物理地址的0x0,复位后执行的第一条指令就是从这里取的),并且接着就是在steppingstone中去执行该启动代码。这部分代码(nboot)的作用是会将nandflash中的bootloader step2部分拷贝到sdram中去,并跳到sdram中去执行以加载内核(nk)。
nboot从nandflash被load到steppingstone中的过程为:在上点的时候,nandflash控制器通过几个引脚的状态(NCON-Adv flash;GPG13-Page size;GPG14-Address cycle;GPG15-Bus width)来得到nandflash的相关信息,之后nandflash控制器就会自动load nandflash中前4k的启动代码到steppingstone中去,并在其中执行了。

本文出自 “bluefish” 博客,请务必保留此出处http://bluefish.blog.51cto.com/214870/67093

更多相关文章
  • 


    		    深入研究S3C2440 bootloader[原创]
    肯请高手们批评指正,这里高手太多了,在这里给需要这东东的新手们分享下,老手们手下留情,多给点建议,谢谢了. 很久前就想移植2440的bootloader了,但是由于出身硬件职位有别,不能越殂代庖,因此此计划一度搁浅.但是扬创公司着实另人气愤,bootloader做得不好不说,还当自己代码如心肝宝贝, ...
  • (嵌入式方向) 一.常用的bootloader u-boot (支持大多数处理器平台) pccboot (支持powerpc的处理器平台) redboot (支持m68k,sh处理器平台) yamon (支持MIPS
  • 韦东山的视频里面说S3C2440有4KB的内存,这个其实是不正确的,这4KB的RAM严格说不应该叫内存,严格来说芯片外面的64MB的SDRAM才能叫做内存,里面的那4KB只是当nandflash启动的时候用来加载bootloader的. 关于SRAM.DRAM.SDRAM SRAM:静态随机存储器,
  • 


    		    結合PXA270 Bootloader實例詳細分析ARM映象文件
    结合PXA270 Bootloader实例详细分析ARM映象文件 最近花了一个月的时间终于把PXA270的板子Bootloader 部分整出来了,颇费周折:其中的很长一段时间,一直被ARM可执行程序的执行机理迷惑:搞不懂ARM的映象文件组成.代码重定位.地址重映射remap等,网上查了N多资料看了N ...
  • 轉S3C2440與SDRAM NorFlash NandFlash連線分析
    一.SDRAM(HY57V561620F)连线分析 1.  S3C2440 有27根地址线ADDR[26:0],8根片选信号ngcs0-ngcs7,对应bank0-bank7,当访问bankx 的地址空间,ngcsx引脚为低电平,选中外设. 2^27=128MByte, 8*128Mbyte = 1
  • 


    		    嵌入式bootloader,linux,filesystem的烧写
    平台: 深圳市优龙科技有限公司的FS2410(基于ARM9) 准备: 1.用串口(UART1,J8)线与PC机相连,这个是用来传输数据和显示信息的 2.连接USB数据下载线(usb device),注意需要自己装usb驱动,这个是用来下载文件的 3.设置好串口工具(超级终端或DNW工具)的参数 说明 ...
  • 


    		    ARM S3C2416 启动过程分析 详解 (转)
    ARM S3C2416 启动过程分析 详解 (转) 最近在使用三星S3C2416这个处理器,需要在EBOOT上实现SD卡文件系统,并从SD卡中烧写wince系统,与S3C2416的从SD卡启动不同.我用的BSP是SMDK2416_WinCE50_PM_REL_0.01_080611的,Bootloa ...
  • 1.在板子上电的一开始,首先自动判断是否是autoboot模式(这是由硬件设计阶段,由硬件工程师对mcu的引脚连线决定的),我所使用的s3c2410是带有nandflash的,并切被设置成autoboot,从nand
一周排行