在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 flash驱动程序移植到新内核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
也许某人已经解决了这个错误? 谢谢。
答案 0 :(得分:2)
第一条消息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
为0
。 id_len
计算为.id_len = (!(_jedec_id) ? 0 : (3 + ((_ext_id) ? 2 : 0)))
,因此可能的解决方案就是让jedec_id
成为0
。
像:
{ "s70fl256p", INFO(0, 0, 256 * 1024, 64, 0) },