主题 : 关于tiny6410 Nand Flash 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 53401
精华: 0
发帖: 6
金钱: 50 两
威望: 10 点
综合积分: 12 分
注册时间: 2011-08-07
最后登录: 2013-09-18
楼主  发表于: 2011-08-07 10:28

 关于tiny6410 Nand Flash

管理提醒: 本帖被 mindee 执行锁定操作(2011-08-07)
请问tiny6410核心板2G Nand Flash是不是用K9GAG08U0E?我是新手,想入手Tiny6410,想问清楚。这块芯片需要12bit ECC/512字节吧,但是6410只有8bit,不会有问题吗?
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2011-08-07 11:29
我已经说过很多次了,只要解决了ECC问题,所有的MLC Flash性能都是一样的,几乎没有差别。

如果没有解决ECC问题,最明显的体现就是Flash根本无法正确烧写和读取,系统自然就无法跑起来,ECC实际是概率问题。比如说,把4BIT ECC应用于本应该需要8BIT ECC的U0D,只能说明,大部分时候读写是可以的,但无法保证100%每次成功,所以就会出现有时无法启动的情况。而把1BIT ECC应用于U0M或U0D,因为要求相差悬殊,读写失败的概率也几乎达到100%,也就是无法正常读写。

而对于需要12BIT ECC 或 16BIT ECC, 或24 BIT,甚至40BIT ECC的MLC Flash,我们采用了软硬结合的ECC校验方式,并配合Flash的OOB区域,最终实现了安全稳定的读写。对于K9GAG08U0E的驱动,这不仅仅因为它需要12BIT ECC,更关键的是U0E的读写时序要求非常严格,如果说Linux尚可找资料摸索到,但WinCE部分则基本无迹可寻。目前估计仅有我们公司实现了U0E的完善驱动,鉴于此,U0E的驱动不开源的。

当然,我们十分欢迎并支持感兴趣的志愿者,甚至公司参与到U0E在6410上的开源驱动项目中,它远非某些人所认为的U0E驱动很简单,只要在U0D的基础上改一下就可以实现,实际远非如此。如果有人实现了(达到我们所实现的效果即可),可以随时联系通知我们,并发布到本论坛,我们将会提供一些奖励。

补充一下,凡是需要更多位ECC的MLC Flash,其本身的OOB也都预留了足够的空间,以便CPU配合软件来解决ECC问题。很多采用MLC的电子产品如mp3, mp4, 优盘等正是采用了这点才能保证数据的稳定性。

无论怎样,MLC比SLC都要差很多,速度慢,寿命短,是它天生的缺陷。做产品,要看具体的需求,如果是广告机之类的,不需要频繁读写,就可以使用MLC,如果监控类,需要经常保存大量的数据,推荐使用SLC。

附:Superboot目前支持的NAND Flash型号列表:


SLC  NAND Flash:
    K9F1G08: 128M
    K9F2G08: 256M
    K9F4G08: 512M
    K9K8G08: 1GB
MLC  NAND Flash:
    K9GAG08U0D: 2GB
    K9GAG08U0E: 2GB
[ 此帖被mindee在2011-08-08 10:26重新编辑 ]
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.