Linux-mtd Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Artem Bityutskiy <dedekind1@gmail.com>
To: Shivdas Gujare <shivdas.tech@gmail.com>
Cc: linux-mtd@lists.infradead.org
Subject: Re: read error with 64 byte erase counter header & 2048 Byte mtd->writesize
Date: Sun, 14 Mar 2010 11:50:35 +0200	[thread overview]
Message-ID: <1268560235.2399.5.camel@localhost.localdomain> (raw)
In-Reply-To: <cf70f0211002221600p1de3b271uba65cda8dbcf6b94@mail.gmail.com>

Hi,

On Mon, 2010-02-22 at 16:00 -0800, Shivdas Gujare wrote:
> 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)

Most probably your NAND driver is broken and is unable to read 64 bytes.

> 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.

Your min. I/O unit is indeed 2048 bytes. However, MTD drivers are
supposed to be able to read any amount of bytes. In this case, your
driver should read 2048 bytes, then copy the requested 64 bytes to the
output buffer.

> 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.

UBI/UBIFS write only in min. I/O size aligned units, but read in
arbitrary aligned units.

You should debug fix your driver.

And validate it with the mtd tests, just like it is requested here:

http://www.linux-mtd.infradead.org/doc/ubifs.html#L_how_send_bugreport

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)

      reply	other threads:[~2010-03-14  9:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-23  0:00 read error with 64 byte erase counter header & 2048 Byte mtd->writesize Shivdas Gujare
2010-03-14  9:50 ` Artem Bityutskiy [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1268560235.2399.5.camel@localhost.localdomain \
    --to=dedekind1@gmail.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=shivdas.tech@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox