作者askacis (ASKA)
看板LinuxDev
标题Re: [问题] jffs2的erase block size
时间Sat Mar 20 09:52:37 2010
为了让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