看板 LinuxDev 關於我們 聯絡資訊
為了讓JFFS2能夠work,小弟目前的改法如下,不知道這樣改是好還不好~~ 因為我使用的這顆w25x64使用的介面是spi,所以在kernel Source裡面支援 的檔案為drivers/mtd/devices/m25p80.c ,其中關於flash的定義如下 { "w25x64", INFO(0xef3017, 0, 64 * 1024, 128, SECT_4K) }, 又在probe() 裡面有一段寫法如下 if (info->flags & SECT_4K) { flash->erase_opcode = OPCODE_BE_4K; flash->mtd.erasesize = 4096; } else { flash->erase_opcode = OPCODE_SE; flash->mtd.erasesize = info->sector_size; } 這邊會根據SECT_4K這個flag回報給mtd core 4KB的erase size, 以及不一樣的OPCODE好下command給flash... 所以我便將原始w25x64 define的SECT_4K拿掉,這樣回報給mtd core 就會是64KB了,之後也可以成功掛載JFFS2了.... ※ 引述《askacis (ASKA)》之銘言: : 小弟日前使用一顆erase sector size 為4KB的spi flash(w25x64), : 並且想掛載jffs2系統,掛載的時候會有一大堆諸如 : jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at... : 的警告訊息,雖然最後是可以成功mount....google了一下發現是 : image 與flash 兩者的erase sector size不一致的問題... : 目前的問題是mkfs.jffs2他可以設定的最小erase size是 8K : 是否代表無法在這顆4KB erase size的flash掛載jffs2了呢? : 或是還有其他的方法可以解決呢? : P.S 1 當我mount 一個很小的(<4096)的jffs2 image時是可以成功 : mount的. : P.S 2 mtd-utils 運作看起來是正常的,可以利用flash_eraseall 或是 : flashcp之類的指令來存取flash. : 感謝各位大大了...... ※ 引述《askacis (ASKA)》之銘言: : 小弟日前使用一顆erase sector size 為4KB的spi flash(w25x64), : 並且想掛載jffs2系統,掛載的時候會有一大堆諸如 : jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at... : 的警告訊息,雖然最後是可以成功mount....google了一下發現是 : image 與flash 兩者的erase sector size不一致的問題... : 目前的問題是mkfs.jffs2他可以設定的最小erase size是 8K : 是否代表無法在這顆4KB erase size的flash掛載jffs2了呢? : 或是還有其他的方法可以解決呢? : P.S 1 當我mount 一個很小的(<4096)的jffs2 image時是可以成功 : mount的. : P.S 2 mtd-utils 運作看起來是正常的,可以利用flash_eraseall 或是 : flashcp之類的指令來存取flash. : 感謝各位大大了...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.105.155.91