u-boot中nor flash的sector管理方式

转载 2015年11月18日 16:35:53

   我们通过flinfo可以看到,在u-boot中,nor flash被按照sector来管理,但是注意分清出概念,这里的sector,并非和nor flash中sector的定义一样,而是nor flash datasheet中定义的sector的倍数个,并且,在u-boot中,可以划分不同的区域(最大可以设置6个区域),并且在不同区域中,sector的大小不同,请看下面的示意图:

jedec_table.regions[]:
                                    |---------------|
                                    |regions[3]  |
info->start[3]----------->|---------------|
                                    |regions[2]  |
info->start[2]----------->|---------------| 
                                    |regions[1]  |
info->start[1]----------->|---------------|
                                    |regions[0]  |
info->start[0]----------->|---------------| <---- PHYS_FLASH_1 0x00000000


                                   |--------------| 
                                   |regions[1]  |
info->start[1]----------->|--------------|
                                       /
                                     /   ERASEINFO(size,blocks)
                                   /
                  |-------------|\ 
                  |-------------| |
                  |-------------| |
                  |-------------| |regions_size = sector_size*sector_number
                  |-------------| |
                  |-------------| |
                  |-------------| |
                  |-------------|/

u-boot在管理nor flash时,擦除操作时按照最小单位为sector_size进行的,我们给出一个实例:

  1. .NumEraseRegions= 4,  
  2. .regions    = {  
  3.    ERASEINFO(0x10000,6),  /* 6  blocks */  
  4.    ERASEINFO(0x10000,10), /* 10 blocks */  
  5.           ERASEINFO(0x10000,15), /* 15 blocks */  
  6.           ERASEINFO(0x10000,1),  /* 1  blocks */  

在这个例子中,我们共分了4个区域,第一个区域有6个sectors,每个sectors大小为0x10000(也就是刚好SST39LV1601一个block的大小),这样,u-boot在擦除操作的时候,擦除的最小单位就是一个block了。这里定义第一个区域为6,是因为一般这个区域放u-boot映像文件,最后一个区域为1block是因为这个区域我们计划用来放置环境变量。


http://blog.csdn.net/cneozhang/article/details/6694405

uboot对Flash和DDR的管理

1、Flash分区管理 Flash分区如下: 功能: 自由分区 待用空间(一般做根文件系统使用) rootfs ...
  • qq_25827755
  • qq_25827755
  • 2016年12月15日 16:26
  • 433

u-boot-2014.10移植第15天----nor flash操作

去除nor flash写保护在已经运行起来的u-boot命令行去除nor flash写保护:TQ2440 # flinfo Bank # 1: EON EN29LV160AB flash (16 x...
  • sonbai
  • sonbai
  • 2015年02月05日 08:38
  • 2629

移植u-boot学习笔记6-----修改代码支持nor flash

支持了nand flash启动并不是说支持了以后对nand flash的读写操作,支持nand flash启动只需要在重定位时(把代码从nand flash拷贝到SDRAM的函数copy_code_t...
  • qingkongyeyue
  • qingkongyeyue
  • 2016年09月08日 19:20
  • 740

u-boot-2016.01移植笔记之支持norflash

这时候串口打印出来的信息中flash和nand的大小都是0K,这就代表u-boot现在还不支持这款mini2440上的norflash和nandflash,那么就要修改它 在start.S中有” bl...
  • a1043503402
  • a1043503402
  • 2016年02月09日 22:52
  • 1271

关于NorFlash的一点总结

最近在搞Uboot时才发现自己的裸机实验中没有相关NorFlash的代码,对NorFlash一无所知,查了一些资料,将自己的一点心得总结一下。        开发板:mini2440       ...
  • lizuobin2
  • lizuobin2
  • 2015年12月22日 19:09
  • 7879

UBoot支持双启动(Nor and Nand)及环境变量保存的实现

本文所要讲述的是如何使UBoot只编译一次就能支持从Nor Flash和Nand Flash启动,并且在保存环境变量时能够保存在其所在的Flash中. 注意,本文针对的为S3C2410芯片,...
  • flytreeleft
  • flytreeleft
  • 2011年09月20日 11:49
  • 3189

第十七期 U-Boot norflash 操作原理分析 《路由器就是开发板》

在一些论坛里大家说路由器变砖了往往指的就是flash中关键的内容被清空了。就像PC中的硬盘被格式化了一样,有点常识都知道,硬盘被清空了只要没有重要数据,从技术角度讲并不大碍,重新安装一个操作系统就可以...
  • aggresss
  • aggresss
  • 2016年09月28日 21:20
  • 1899

u-boot-1.1.6 移植

思路: 一. 移植前准备:u-boot源码,编译工具与开发平台等,阅读必要资料等 二. 着手移植: 1.精简代码. 2.建立自己的开发板文件 3.增加对S3C2440的支持 4.配置NOR...
  • special00
  • special00
  • 2016年04月08日 12:16
  • 726

U-boot-2014.04移植到MINI2440(9) nor flash启动和nand flash 启动

在mini2440上,nor flash启动和nand flash启动可以满足不同的需要,这里进行移植,nor的启动移植比较简单,因为不需要进行代码的重定向,nand的启动相对复杂,这里先从nor开始...
  • Deep_l_zh
  • Deep_l_zh
  • 2015年09月02日 19:27
  • 967

Nor Flash中的启动扇区(Boot Sector, Boot Block)

在Nor Flash中,有个启动扇区(Boot Sector,有时也被称为启动块)的概念,这个概念应该是只针对Nor Flash的,因为Nand Flash无法直接寻址,故Nand Flash中是没有...
  • TNTHUAHUA
  • TNTHUAHUA
  • 2017年03月31日 14:27
  • 603
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:u-boot中nor flash的sector管理方式
举报原因:
原因补充:

(最多只允许输入30个字)