打印
[技术问答]

NUC980 SPI NandFlash问题

[复制链接]
2864|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,暂时看不出明显问题
  大家是否有解决方案?


使用特权

评论回复
沙发
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 | 只看该作者
能力超强的楼主。

使用特权

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

使用特权

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

使用特权

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

使用特权

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

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

使用特权

评论回复
9
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

使用特权

评论回复
10
sblpp| | 2020-12-29 11:18 | 只看该作者
我也遇到了这个问题。。。启动时一大堆的error,已经配置成Normal模式了,在linux的那个手册中有说明的,
也是查看了下驱动发现只有一个mt29f的驱动,其他的照着说明把.name改成W25N01G的,结果发现不行
看来不需要做这个修改。。。

使用特权

评论回复
11
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
可能是这句的问题吗?

使用特权

评论回复
12
yangxiaor520| | 2024-3-7 18:20 | 只看该作者
这个驱动对应的片子应该是镁光的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

8

帖子

0

粉丝