打印

[技术问答] NUC980 SPI NandFlash问题

[复制链接]
168|8
跳转到指定楼层
楼主
 楼主 | 2019-10-11 16:31 | 只看该作者 |退出气泡模式 回帖奖励 |倒序浏览 |阅读模式
芯片NUC980DK61Y,使用的SPI NandFlash为Winbond W25N01GV  按照NUC980 Linux BSP 使用手冊进行编译,kernel的编译使用:make nuc980_iot_defconfig
开机kernel log报错,报了很多"Bad eraseblock",log如下:
nand: device found, Manufacturer ID: 0xef, Chip ID: 0xaa
nand: Winbond W25N01GV 1G 3.3V
nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
nand: WARNING: spi0.0: the ECC used on your system is too weak compared to the one required by the NAND chip
Scanning device for bad blocks
Bad eraseblock 9 at 0x000000120000
Bad eraseblock 10 at 0x000000140000
Bad eraseblock 11 at 0x000000160000
...(中间省略)
Bad eraseblock 1022 at 0x000007fc0000
Bad eraseblock 1023 at 0x000007fe0000
Creating 3 MTD partitions on "nand0":
0x000000000000-0x000000200000 : "u-boot"
0x000000200000-0x000001600000 : "Kernel"
0x000001600000-0x000008000000 : "user"



  开机后对/dev/mtdblock2设备的读写操作也是异常的,
  查看kernel源码,发现SPI NandFLash的驱动为drivers/staging/mt29f_spinand/mt29f_spinand.c,
  但是Bad eraseblock错误出现在drivers/mtd/nand/nand_bbt.c,暂时看不出明显问题
  大家是否有解决方案?


使用特权

评论回复
沙发
 楼主 | 2019-10-12 08:52 | 只看该作者
自己解决了,但是还不知道具体原因
硬件上W25N01GV设计的是使用QSPI0的Quad模式,但是kernel中改为Normal就OK了:
  使能CONFIG_SPI_NUC980_QSPI0_NORMAL
  失能CONFIG_SPI_NUC980_QSPI0_QUAD

希望知道该问题根本原因的回复下,多谢~

使用特权

评论回复
板凳
| 2019-10-13 18:33 | 只看该作者
666,可能内核的Normal会自动匹配各种模式。

使用特权

评论回复
地板
| 2019-10-13 18:51 | 只看该作者
能力超强的楼主。

使用特权

评论回复
5
| 2019-10-15 11:15 | 只看该作者
楼主,980的ebi.h对应的ebi.c怎么没有,.h最后几个函数的原型在哪儿看。楼主有没有经验,分享分享。

使用特权

评论回复
6
| 2019-10-15 21:57 | 只看该作者
980跑系统很6.

使用特权

评论回复
7
| 2019-10-16 10:35 | 只看该作者
NF的SPI问题,如果挂载其他的SPI能调试通吗

使用特权

评论回复
8
 楼主 | 2019-10-18 13:16 | 只看该作者
yiyigirl2014 发表于 2019-10-15 11:15
楼主,980的ebi.h对应的ebi.c怎么没有,.h最后几个函数的原型在哪儿看。楼主有没有经验,分享分享。 ...

不太清楚是哪个ebi.h,我这好像没有用到这个

使用特权

评论回复
9
 楼主 | 2019-10-18 13:24 | 只看该作者
幸福小强 发表于 2019-10-16 10:35
NF的SPI问题,如果挂载其他的SPI能调试通吗

对于SPI-Nor:
drivers/mtd/devices/Kconfig里的说明:
  config MTD_M25P80
      tristate "Support most SPI Flash chips (AT26DF, M25P, W25X, ...)"
      depends on SPI_MASTER && MTD_SPI_NOR
应该能支持大部分SPI-Nor

但对于SPI-Nand:
可以参考drivers/staging/mt29f_spinand这个驱动
目前nuvoton用的就是这个驱动,我用W25N01GV是可以的,但不确定是否还适用其他spi-nand

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表