[技术问答] NUC980 SPI NandFlash问题

[复制链接]
3508|12
 楼主| 18861289414 发表于 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,暂时看不出明显问题
  大家是否有解决方案?


评论

项目需要SD NAND存储芯片吗,可以送样测试,13537608950  发表于 2024-3-7 18:02
 楼主| 18861289414 发表于 2019-10-12 08:52 | 显示全部楼层
自己解决了,但是还不知道具体原因
硬件上W25N01GV设计的是使用QSPI0的Quad模式,但是kernel中改为Normal就OK了:
  使能CONFIG_SPI_NUC980_QSPI0_NORMAL
  失能CONFIG_SPI_NUC980_QSPI0_QUAD

希望知道该问题根本原因的回复下,多谢~
xinpian101 发表于 2019-10-13 18:33 | 显示全部楼层
666,可能内核的Normal会自动匹配各种模式。
jiekou001 发表于 2019-10-13 18:51 | 显示全部楼层
能力超强的楼主。
yiyigirl2014 发表于 2019-10-15 11:15 | 显示全部楼层
楼主,980的ebi.h对应的ebi.c怎么没有,.h最后几个函数的原型在哪儿看。楼主有没有经验,分享分享。
dongnanxibei 发表于 2019-10-15 21:57 | 显示全部楼层
980跑系统很6.
幸福小强 发表于 2019-10-16 10:35 | 显示全部楼层
NF的SPI问题,如果挂载其他的SPI能调试通吗
 楼主| 18861289414 发表于 2019-10-18 13:16 | 显示全部楼层
yiyigirl2014 发表于 2019-10-15 11:15
楼主,980的ebi.h对应的ebi.c怎么没有,.h最后几个函数的原型在哪儿看。楼主有没有经验,分享分享。 ...

不太清楚是哪个ebi.h,我这好像没有用到这个
 楼主| 18861289414 发表于 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
sblpp 发表于 2020-12-29 11:18 | 显示全部楼层
我也遇到了这个问题。。。启动时一大堆的error,已经配置成Normal模式了,在linux的那个手册中有说明的,
也是查看了下驱动发现只有一个mt29f的驱动,其他的照着说明把.name改成W25N01G的,结果发现不行
看来不需要做这个修改。。。
sblpp 发表于 2020-12-29 11:33 | 显示全部楼层
nand: WARNING: spi0.0: the ECC used on your system is too weak compared to the one required by the NAND chip
可能是这句的问题吗?
yangxiaor520 发表于 2024-3-7 18:20 来自手机 | 显示全部楼层
这个驱动对应的片子应该是镁光的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

0

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