原文链接:https://blog.csdn.net/emma3slp/article/details/5591086
【什么是CFI】
CFI(Common Flash Interface),是JEDEC(Joint Electron Device Engineering Council,电子器件工程联合委员会)制定的一个接口,
用来帮助程序读取Flash的制造商ID和设备ID,确定Flash的大小,获得flash的各个物理特性,比如block块的擦除时间等等。
【为什么需要这个CFI】
在应用CFI之前,Flash器件的有关信息都储存在系统软件的表格中。当有新的器件发布时,一般必须修改软件来添加该器件的描述信息。
CFI出现后,工程师们正在利用CFI来构建代码,它不仅能够运行在现在的Flash存储器上,而且随时准备着应用在下一代的低成本版本上。
这使得原始设备制造商能够在低成本Flash存储器设备可用时使用它而不必重写代码。
由于生产Flash Memory的半导体制造商众多,不同厂商Flash Memory产品的操作命令集
和电气参数又千差万别,这些人在设计硬件的时候,已经在阵脚的兼容性等方面,
做了足够多的文章,做得很好了,但是与此对应的软件方面,由于硬件升级,软件都要改动很大,
这给Flash Memory的开发设计人员和OEM制造商带来许多不便。
为了对现有的Flash Memory的产品进行升级或使用其它公司的Flash Memory产品替换,
必须对原有的程序代码和硬件结构进行修改。
所以,由Intel、AMD、Sharp和Fujutsu出面,通过JEDEC(Joint Electron Device Engineering Council,电子器件工程联合委员会)
制定了这个CFI。
【CFI的好处】
它可以使系统软件查询已安装的Flash Memory器件的各种参数,
包括器件阵列结构参数、电气和时间参数以及器件支持的功能等。
利用CFI可以不用修改系统软件就可以用新型的和改进的产品代替旧版本的产品。
例如:如果新型的Flash Memory的擦除时间只有旧版本的一半,
系统软件只要通过CFI读取新器件的擦除时间等参数,修改一下定时器的时间参数即可。
简单说就是:
1.使得软件和硬件升级更加方便。
2.使得不同厂商之间的硬件兼容性更好,也就是如果都支持了CFI,很多时候,可以实现底层硬件的互换。
比如,软件是基于CFI的,那么底层硬件的flash,换了另一厂商的,,而上层软件就不需要改动,也可以工作。
【CFI内容简介】
CFI标准,其实也就是一系列的表格,包含了5个部分:
1.“CFI Query Identification String”,CFI查询识别码字符串
2.“System Interface String”,系统接口字符串
3. “Device Geometry Definition”,设备物理结构信息定义
4. “Primary Vendor-Specific Extended Query”,原始设备提供商相关的扩展查询信息
5.“Alternate Vendor-Specific Extended Query”,可选/备用提供商相关的扩展查询信息
【其他】
1.现在(截至2008年6月5号),CFI标准只支持并行(parallel) Nor flash,
还不支持SPI的Flash和Spansion的ORNAND flash。关于SPI的Flash,比如Spansion的FL系列的。
【引用】
1.Quick Guide to Common Flash Interface
http://www.spansion.com/application_notes/Quick_Guide_to_CFI_AN_02_e.pdf
2.CFI(通用Flash存储器接口)
http://blog.verycd.com/light/showentry=47793
3.intel Common Flash Interface (CFI) and Command Sets
http://d.download.csdn.net/down/690990/alvazhao
4.关于NOR Flash的两种接口
http://arm86.spaces.eaw.com.cn/articles/article/item/457