无法识别的 jedec id

Unrecognized jedec id

在 linux 2.6.25 我有输出:

physmap platform flash device: 00800000 at ff800000
physmap-flash.0: Found 1 x16 devices at 0x0 in 8-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
physmap-flash.0: CFI does not contain boot bank location. Assuming top.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
Using physmap partition information
Creating 6 MTD partitions on "physmap-flash.0":
0x00000000-0x00040000 : "U-Boot image"
0x00040000-0x00050000 : "U-Boot params"
0x00050000-0x00250000 : "Linux kernel"
0x00250000-0x00750000 : "RFS"
0x00750000-0x007f0000 : "JFFS"
0x007f0000-0x00800000 : "unused"
m25p80 spi1.0: s70fl256p (16384 Kbytes)
Creating 2 MTD partitions on "tpts1691.spi.flash":
0x00000000-0x00400000 : "spi_flash_part0"
0x00400000-0x01000000 : "spi_flash_part1"
DSPI: Coldfire master initialized

并且我尝试将 spi 闪存驱动程序移植到新内核 4.12.5。 我在 spi-nor/spi-nor.c 中添加 spi_nor_ids 我的 jedecid

{ "s70fl256p",  INFO(0x012018,      0, 256 * 1024,  64, 0) },

但我有错误:

spi_coldfire spi_coldfire: master 未排队,已弃用 m25p80 spi1.0:无法识别的 JEDEC id 字节:00、00、00

在输出中:

physmap platform flash device: 00800000 at ff800000
physmap-flash.0: Found 1 x16 devices at 0x0 in 8-bit bank. Manufacturer ID 0x000001 Chip ID 0x000201
Amd/Fujitsu Extended Query Table at 0x0040
  Amd/Fujitsu Extended Query version 1.3.
physmap-flash.0: CFI contains unrecognised boot bank location (1). Assuming bottom.
number of CFI chips: 1
Creating 6 MTD partitions on "physmap-flash.0":
0x000000000000-0x000000040000 : "U-Boot image"
0x000000040000-0x000000050000 : "U-Boot params"
0x000000050000-0x000000250000 : "Linux kernel"
0x000000250000-0x000000750000 : "RFS"
0x000000750000-0x0000007f0000 : "JFFS"
0x0000007f0000-0x000000800000 : "unused"
uclinux[mtd]: probe address=0x3549d0 size=0x10804000
Creating 1 MTD partitions on "ram":
0x000000000000-0x000010804000 : "ROMfs"
spi_coldfire spi_coldfire: master is unqueued, this is deprecated
m25p80 spi1.0: unrecognized JEDEC id bytes: 00, 00, 00
DSPI: Coldfire master initialized

也许有人已经解决了这个错误? 谢谢。

第一条消息 spi_coldfire: master is unqueued, this is deprecated 不是错误。 这只是注册 SPI 控制器有自己的消息传输回调 master->transfer 的警告。它已被弃用,但在 kernel 4.12.5 中仍受支持。 看看drivers/spi/spi.c:1993.

第二条消息:我怀疑您的闪存根本没有 JEDEC ID(读数为 0,0,0),但您的 flash_info 有。因此,为了避免调用 spi_nor_read_id(),只需让 info->id_len 成为 0id_len 计算为 .id_len = (!(_jedec_id) ? 0 : (3 + ((_ext_id) ? 2 : 0))),因此可能的解决方案只是让 jedec_id0。 喜欢:

{ "s70fl256p",  INFO(0,      0, 256 * 1024,  64, 0) },