read error with 64 byte erase counter header & 2048 Byte mtd->writesize

Shivdas Gujare shivdas.tech at gmail.com
Mon Feb 22 19:00:19 EST 2010


Hi all,
I am trying to use ubifs, but currently I am facing an issue as follows,

1) I tries to format a mtd device as, "ubiformat /dev/mtd0 -s 2048 -f
./ubi.img" while it return with an error of

ubiformat: mtd0 (nand), size 164757504 bytes (157.1 MiB), 1257
eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 0 --  0 % complete  libmtd: error!:
cannot read 64 bytes from mtd0 (eraseblock 0, offset 0)
        error 22 (Invalid argument)
ubiformat: error!: failed to scan mtd0 (/dev/mtd0)

I tried to understand what it is and came to know that, "ret =
mtd_read(mtd, fd, eb, 0, &hdr, sizeof(struct ubi_ec_hdr));" from
"ubi-utils/src/libscan.c"
tried to read 64 byte "struct ubi_ec_hdr - UBI erase counter header"
while our MTD driver has set "mtd->writesize = 2048"
So this mismatch between 64 Byte "erase counter header" and 2048 Byte
"mtd->writesize" returns with an error.

I would like to know, Is this a real issue or am I missing any layer
between ubifs & mtd driver which interfaces this 64 & 2048 Byte
differences.

Thanks a lot for any help.

Thanks and Regards,
Shivdas Gujare


2)



More information about the linux-mtd mailing list