Memory NAND闪存接口ARM9 MTD分区未生成

Memory NAND闪存接口ARM9 MTD分区未生成,memory,embedded,arm,embedded-resource,embedded-linux,Memory,Embedded,Arm,Embedded Resource,Embedded Linux,我正在基于ARM9的主板上开发一个应用程序,使用UBUNTU 10.04和GCC作为编译器 之前,我已经连接了意法半导体公司(NAND512W3A25NB)的NAND闪存。它是64MByte。它的页面大小为512Kbit 有了这个NAND,我的应用程序运行得非常好 由于一些升级的内存需求,我需要切换到一个更大的NAND闪存,这是从微米(MT29F2G08ABAEA)。它的大小为256MB,页面大小为2048KB 随着这些变化,我的主板无法启动 我得到了制造商ID和芯片ID。但是没有生成MTD分区

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

之前,我已经连接了意法半导体公司(NAND512W3A25NB)的NAND闪存。它是64MByte。它的页面大小为512Kbit

有了这个NAND,我的应用程序运行得非常好

由于一些升级的内存需求,我需要切换到一个更大的NAND闪存,这是从微米(MT29F2G08ABAEA)。它的大小为256MB,页面大小为2048KB

随着这些变化,我的主板无法启动

我得到了制造商ID和芯片ID。但是没有生成MTD分区

经过一些搜索,我发现页面大小存在一些问题。 我不知道如何解决这个问题,因为我经历了linux/include/mtd/nand。它有一个最大可更改的页面大小是8216,它也在m的要求范围内,所以我不能确切地知道我哪里出了问题???

我在IMX25设计上使用了相同的芯片,Micron MT29F2G08ABAEA。链mtd->ubi->ubifs对该芯片组非常满意。我们的不同之处在于产品和它们的配置

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

对于MXC Nand控制器,我们使用的是
hw_ecc
flash_bbt
,以及一个
宽度
。Micron芯片只有8位,但也有一些16位版本,如Micron MT29F2G16ABAEA。确保几何图形正确。我认为Linux MTDs支持多个并行芯片

使用数据表可以快速验证该零件是否更快。我怀疑ST部分比微米部分慢,计时不是你的问题

对Micron MT29F2G08ABAEA的时序分析表明,IMX25 NAND闪存控制器实际上是瓶颈。微米级的闪光看起来相当快。这可能是NAND控制器中的错误,也可能是配置问题

其他一些有用的信息(对您或帮助您的人而言)

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

我认为没有人能正确回答您的问题,但我很高兴感到惊讶。

我在内核中发现了一些默认设置的NAND定时。您可以通过查看/linux/arch/arm/mach-davici/board-da850-evm.c文件来检查这一点。我使用的是基于AM1808 ARM9的微处理器。好的,我发现我的块大小设置错误,所以我更改了它。当我从U-Boot获取环境变量时,我得到了解决方案。因此,我需要对U-boot进行更改,并根据您的NAND更改NAND Pagesize的U-boot头文件。@ParthivShah:如果您认为答案足够,您可以单击该答案上/下箭头下的复选框。有时,人们会等待一段时间,等待更好的答案。我知道你没有接受任何问题的答案,所以我想你可能不知道这件事?