mtd erase error
Hi All,
I am trying to write a rootfs on flash. I have made an jffs2 image of the rootfs and I am using "cat rootfs.jffs2 > /dev/mtdblock/3", but I am getting the following output:
----------------------------------------------------------
# cat rootfs.jffs2 > /dev/mtdblock/3 mtdblock_open ok mtdblock: read on "RootFS" at 0x282000, size 0x1000 mtdblock: write on "RootFS" at 0x0, size 0x1000 mtdblock: write on "RootFS" at 0x1000, size 0x1000 mtdblock: write on "RootFS" at 0x2000, size 0x1000 mtdblock: write on "RootFS" at 0x3000, size 0x1000 mtdblock: write on "RootFS" at 0x4000, size 0x1000 mtdblock: write on "RootFS" at 0x5000, size 0x1000 mtdblock: write on "RootFS" at 0x6000, size 0x1000 mtdblock: write on "RootFS" at 0x7000, size 0x1000 mtdblock: write on "RootFS" at 0x8000, size 0x1000 mtdblock: write on "RootFS" at 0x9000, size 0x1000 mtdblock: write on "RootFS" at 0xa000, size 0x1000 mtdblock: write on "RootFS" at 0xb000, size 0x1000 mtdblock: write on "RootFS" at 0xc000, size 0x1000 mtdblock: write on "RootFS" at 0xd000, size 0x1000 mtdblock: write on "RootFS" at 0xe000, size 0x1000 mtdblock: write on "RootFS" at 0xf000, size 0x1000 mtdblock: write on "RootFS" at 0x10000, size 0x1000 mtdblock: write on "RootFS" at 0x11000, size 0x1000 mtdblock: write on "RootFS" at 0x12000, size 0x1000 mtdblock: write on "RootFS" at 0x13000, size 0x1000 mtdblock: write on "RootFS" at 0x14000, size 0x1000 mtdblock: write on "RootFS" at 0x15000, size 0x1000 mtdblock: write on "RootFS" at 0x16000, size 0x1000 mtdblock: write on "RootFS" at 0x17000, size 0x1000 mtdblock: write on "RootFS" at 0x18000, size 0x1000 mtdblock: write on "RootFS" at 0x19000, size 0x1000 mtdblock: write on "RootFS" at 0x1a000, size 0x1000 mtdblock: write on "RootFS" at 0x1b000, size 0x1000 mtdblock: write on "RootFS" at 0x1c000, size 0x1000 mtdblock: write on "RootFS" at 0x1d000, size 0x1000 mtdblock: write on "RootFS" at 0x1e000, size 0x1000 mtdblock: write on "RootFS" at 0x1f000, size 0x1000 mtdblock: write on "RootFS" at 0x20000, size 0x1000 mtdblock: writing cached data for "RootFS" at 0x0, size 0x20000 Chip reports voltage low on erase: status 0xa8 mtdblock: erase of region [0x0, 0x20000] on "RootFS" failed end_request: I/O error, dev 1f:03 (mtdblock), sector 256 mtdblock: write on "RootFS" at 0x21000, size 0x1000 mtdblock: writing cached data for "RootFS" at 0x0, size 0x20000 Chip reports voltage low on erase: status 0xa8 mtdblock: erase of region [0x0, 0x20000] on "RootFS" failed end_request: I/O error, dev 1f:03 (mtdblock), sector 264 mtdblock: write on "RootFS" at 0x22000, size 0x1000 mtdblock: writing cached data for "RootFS" at 0x0, size 0x20000 Chip reports voltage low on erase: status 0xa8 mtdblock: erase of region [0x0, 0x20000] on "RootFS" failed end_request: I/O error, dev 1f:03 (mtdblock), sector 272 mtdblock: write on "RootFS" at 0x23000, size 0x1000 mtdblock: writing cached data for "RootFS" at 0x0, size 0x20000 Chip reports voltage low on erase: status 0xa8 mtdblock: erase of region [0x0, 0x20000] on "RootFS" failed end_request: I/O error, dev 1f:03 (mtdblock), sector 280 mtdblock: write on "RootFS" at 0x24000, size 0x1000 mtdblock: writing cached data for "RootFS" at 0x0, size 0x20000 Chip reports voltage low on erase: status 0xa8 mtdblock: erase of region [0x0, 0x20000] on "RootFS" failed end_request: I/O error, dev 1f:03 (mtdblock), sector 288 mtdblock: write on "RootFS" at 0x25000, size 0x1000 mtdblock: writing cached data for "RootFS" at 0x0, size 0x20000 Chip reports voltage low on erase: status 0xa8 mtdblock: erase of region [0x0, 0x20000] on "RootFS" failed end_request: I/O error, dev 1f:03 (mtdblock), sector 296 mtdblock: write on "RootFS" at 0x26000, size 0x1000 ------------------------------------------------------
Is this really a hardware problem, or has anybody come across this? Any help is appreciated...
Regards
Talat Ozyagcilar wrote:
...
Quoted 2 lines
mtdblock: writing cached data for "RootFS" at
0x0, size0x20000Chip reports voltage low on erase: status0xa8
...
Quoted 1 line
Is this really a hardware problem, or has anybody come across this?
It means the driver for the chip's connection to your board (probably) isn't raising the voltage to the proper level (called VPP in the mtd code) required by the chip for an erase operation. Various code paths can nest VPP enables/disables in unbalanced ways, often causing problems. If this is the case in your situation, info in
http://lists.infradead.org/pipermail/linux-mtd/2005-January/011517.html
may help.
Signature · 1 line
Todd