NAND Flash接口ARM9 MTD分区未生成

时间:2013-05-01 12:46:50

标签: memory embedded arm embedded-resource embedded-linux

我正在使用UBUNTU 10.04和GCC作为编译器在基于ARM9的板上开发应用程序。

此前,我已与STMicroelectronics(NAND512W3A25NB)的NAND闪存接口。它是64MByte。它的页面大小为512Kbit。

有了这个NAND,我的应用程序工作正常。

由于存储器要求的某些升级,我需要切换到更大的NAND闪存,该闪存来自Micron(MT29F2G08ABAEA)。它的大小为256MBy,页面大小为2048Kbit。

随着更改,我的主板无法启动。

我获得了制造商ID以及芯片ID。但是没有生成MTD分区。

经过一番搜索,我发现PAGE_SIZE存在一些问题。 我不知道如何解决这个问题,因为我经历了linux / include / mtd / nand.h它的MAX_ALLWABLE_PAGE_SIZE是8216并且它也在m要求之内,所以我无法准确地说明我在哪里出错了?

1 个答案:

答案 0 :(得分:3)

我在IMX25设计上使用相同的芯片 Micron MT29F2G08ABAEA 。链 mtd-> ubi-> ubifs 对这个芯片组非常满意。我们的差异是NAND flash controllers及其配置。

Micron 芯片有子页面,您的控制器可能不支持。通过davinci_nand.c搜索,我看不到任何子页面处理。

对于 MXC Nand 控制器,我们使用的是hw_eccflash_bbtwidth Micron 芯片仅 8位,但有一些 16位版本,如 Micron MT29F2G16ABAEA 。确保几何图形正确。我认为Linux MTD并行支持多个芯片。

使用数据表快速验证该部件是否更快。我怀疑 ST 部分比 Micron 部分慢,而且时间不是你的问题。

Micron MT29F2G08ABAEA 的时序分析表明,IMX25 NAND闪存控制器实际上是瓶颈。 Micron Flash看起来非常快。它可能是 NAND控制器中的错误,也可能是配置问题。

其他一些有用的信息(供您或有人帮助您),

  • 某些dmesg控制台输出。
  • 数据表的链接。
  • 使用的确切 NAND控制器
  • 使用平台数据 DT 信息。
  • grep '^[^#].*MTD' .config MTD 相关配置。

我认为任何人都不能正确地回答你的问题,但我很高兴感到惊讶。