码迷,mamicode.com
首页 > 其他好文 > 详细

u-boot-2014.10移植第24天----nand flash启动(二)

时间:2015-02-11 09:24:09      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:u-boot   2014.10   arm   2440   nand   

硬件平台:tq2440

开发环境:Ubuntu-3.11

u-boot版本:2014.10

本文允许转载,请注明出处:http://blog.csdn.net/fulinus


nand flash启动

比较新的u-boot版本包括u-boot-2014版本的都是用重定向的机制,而且用到了代码位置无关的技术,在u-boot连接时使用了-pie选项:
-pie :

Produce a position independent executable on targets which support it. For predictable results,
you must also specify the same set of options that were used to generate code (-fpie, -fPIE, or model
suboptions) when you specify this option.
"产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意
位置,都可以正确的执行。"
u-boot是可以在Nor flash中运行的,u-boot.bin的起始位置在Norflash的0地址处,当MO[1:0] = 01、10时,系统上电后从Nor flash启动,从0地址处开始运行。并将u-boot重定向到SDRAM中运行。但是Nand flash是不能像Nor flash那样可以当做RAM操作,因为nand flash是地址和数据总线复用的。好在s3c2440从nand flash启动时会从nand flash读4Kbytes的内容到s3c2440芯片内部自带的DRAM中,如果在nand flash的前4Kbytes存储空间放上一段可以执行的代码,其功能就是将nand flash中u-boot拷贝到SDRAM中,再将使用重定向的方法,跳转到SDRAM中去运行u-boot即可。
可惜的是2440中跑的u-boot并不支持从Nand flash启动。因此,我们需要在u-boot的前4K代码中加入操作nand flash的代码,然后重定向。

u-boot-2014.10移植第24天----nand flash启动(二)

标签:u-boot   2014.10   arm   2440   nand   

原文地址:http://blog.csdn.net/fulinus/article/details/41578025

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!