我正在开发一个基于ARM9的应用程序,使用Ubuntu10.04和GCC作为编译器。
之前,我已经接口了STMicroelectronics ( NAND512W3A25NB )的NAND。它是64 64MByte。它的页面大小为512。
有了这个NAND,我的应用程序工作得很好。
由于内存需求的一些升级,我需要切换到一个更大的NAND闪存,这是从美光( MT29F2G08ABAEA )。它是256,有一个2048千比特的页面大小。
随着变化,我的董事会没有启动。
我有制造商ID和芯片ID,但是MTD分区没有生成。
经过一些搜索,我发现PAGE_SIZE有一些问题。我不知道如何解决这个问题,因为我通过linux/include/mtd/nand.h它的MAX_ALLWABLE_PAGE_SIZE是8216,它也在m要求范围内,所以我不能准确地知道我在哪里出错?
发布于 2013-05-01 15:58:58
我使用相同的芯片,微米MT29F2G08ABAEA,在一个IMX25设计。mtd->ubi->ubi链对此芯片集非常满意。我们的区别是NAND闪存控制器和它们的配置。
美光芯片有子页面,你的控制器可能不支持这一点。在nand.c中搜索,我没有看到任何子页面处理。
对于MXC控制器,我们使用的是hw_ecc、flash_bbt和一个width。美光芯片只有8位,虽然有一些16位版本,如美光MT29F2G16ABAEA.确保几何是正确的。我认为Linux并行支持多个芯片。
使用数据表可以快速验证该部分是否更快。我怀疑ST部分比微米部分慢,时间不是您的问题。
对微米MT29F2G08ABAEA的时序分析表明,IMX25 NAND闪存控制器实际上是瓶颈。美光闪光灯看上去相当快。这要么是NAND控制器中的bug,要么更可能是配置问题。
其他一些有用的信息(对你或某人帮助你),
dmesg或控制台输出。grep '^[^#].*MTD' .config或MTD相关配置。我认为没有人能回答你的问题-对,但我很高兴感到惊讶。
https://stackoverflow.com/questions/16318357
复制相似问题