2017-09-25 8 views
0

私が持っている出力:認識できないJEDEC ID

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 

を、私は新しいカーネル4.12.5にポートSPIフラッシュドライバにしてみてください。 私はSPIノル/ SPI-nor.c私jedecid

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

にspi_nor_idsに追加しますが、私はエラーを持っている:

spi_coldfireのspi_coldfire:マスターが、これは m25p80のspi1.0を推奨されていません、unqueuedです。未認識の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

待ってください。メインラインにはドライバはありませんか? – 0andriy

+0

はい、特定のドライバです。 – user3826752

+0

あなたは**確信していますか?アウトプットから、長い時間前に上流に行った標準ドライバーしか見ることができません。 – 0andriy

答えて

2

第1メッセージspi_coldfire: master is unqueued, this is deprecatedはエラーではありません。 これは、登録SPIコントローラが独自のメッセージ転送コールバックmaster->transferを持っているという警告です。これは非推奨ですが、依然としてkernel 4.12.5でサポートされています。 drivers/spi/spi.c:1993をご覧ください。

2番目のメッセージ:あなたのフラッシュにはJEDEC IDが全くない(0,0,0と読み込まれています)が、あなたのflash_infoは持っていると思われます。だからspi_nor_read_id()と呼ぶことを避けるためにinfo->id_len0とするだけです。 id_len.id_len = (!(_jedec_id) ? 0 : (3 + ((_ext_id) ? 2 : 0)))と計算されるので、考えられる解決策は単にjedec_id0とすることです。 Like:

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

ありがとうございます。私は今日それを修正するために真実になります。しかし、あなたは2番目のメッセージを書きました:あなたのフラッシュはJEDEC IDを全く持っていないと思います(0,0,0を読みます)。 Linux 2.6.25では、正しい出力m25p80 spi1.0を持っています:s70fl256p(16384 Kbytes)。 – user3826752

+0

家に帰る途中で考えてみると、別のシナリオがあるかもしれないことに気付きました。 spi_nor_match_id()は成功しました。しかし、あなたのjedec idは!= 0なので、info-> id_len> 0でもspi_nor_read_id()はspi-nor.cの1567行で呼び出します。この関数を呼び出さないようにするには、(name && info-> id_len)節をfalseにしてから、 {"s70fl256p"、INFO(0,0,256 * 1024,64,0)のようにjedec id = }、 – MrCryo

+1

私はそれを修正する:1.私はjedec idをゼロに設定し、私のデバイスチップにフィールドを入力するためにflash_platform_data構造体に追加する必要があります。m25p80です。cをm25_probeで読むことができます: 多くのプラットフォームでは、flash_platform_dataに「name」と「type」という2種類の異なる名前が提供されています。多くの場合、 "m25p80"に名前を付け、次に "type"は実際のチップ名を提供します。 *その場合、 "タイプ"を尊重し、 "名前"を無視してください。 – user3826752

関連する問題