All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Egholm Nielsen <martin@egholm-nielsen.dk>
To: linux-mtd@lists.infradead.org
Subject: Re: [Yaffs1] mkyaffs exits with "MTD Erase failure"
Date: Wed, 06 Jun 2007 22:38:31 +0200	[thread overview]
Message-ID: <f4760b$rmm$1@sea.gmane.org> (raw)
In-Reply-To: <200706061207.27957.ian@brightstareng.com>

Ian McDonnell wrote:
> On Wednesday 06 June 2007 08:40, Martin Egholm Nielsen wrote:
>>Well, glancing at the code, it should be doing something like
>>it:

>>==== ORIGINAL mkyaffs.c ====
>>for(addr = 0; addr < meminfo.size; addr += meminfo.erasesize)
>>{
>>   /* Read the OOB data to determine if the block is valid.
>>    * If the block is damaged, then byte 5 of the OOB data
>>will * have at least 2 zero bits.
>>    */
--- 8< 8< 8< ---
>>=======================

>>However, it doesn't seem to do the trick. So I copied the
>>check from "flash_eraseall" and put in, as well:
--- 8< 8< 8< ---
>>   int ret = ioctl(fd, MEMGETBADBLOCK, &bah);
>>   if (ret > 0)
>>   {
>>     printf( "Block at 0x08%lx would have been ignored by
>>flash_eraseall!\n", addr );
>>     continue;
>>   } // if
>>=======================

>>And now it seems to work:
--- 8< 8< 8< ---
>>So that's good!? Unless there is a reason why that check was
>>not there originally!
>>Charles Manning, do you care for a comment?

> mkyaffs.c coding is from way back when reading the OOB was more
> transparent (originally written to run on 'raw' NAND without MTD, 
> non-linux). These days (post 2.6.17 mtd, perhaps earlier) this 
> technique is not successful.  

Heh! Actually, I'm running with MTD from 2005-07-22 (2005!)... But, 
still there could be some issues!


> The OOB bytes returned by MTD will have been gathered using the
> nand_ecclayout policy from the nand driver or nand_base.c and the
> byte *returned* at offset 5 is not (necessarily) the block/page
> status byte and physical offset 5, as with old mtd api.

Oh! That's a shame ;-)


> See the yaffs mail archive regarding issues with constructing 
> Yaffs images using mkyaffs.c etc.  

Well, gave it 10 minutes - didn't have any luck searching for mkyaffs 
and/or nand_ecclayout policy...


> Replacing this old test for a bad-block with MEMGETBADBLOCK is fine,
> but might only take you to the next road block.

It only seems to be a problem for the boards that I messed up by setting 
the timing parameters for the chip incorrectly!
But I will look some more to find the "correct" solution...

Thanks Ian!

// Martin

  reply	other threads:[~2007-06-06 20:39 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.1398.1181133636.2239.linux-mtd@lists.infradead.org>
2007-06-06 16:07 ` [Yaffs1] mkyaffs exits with "MTD Erase failure" Ian McDonnell
2007-06-06 20:38   ` Martin Egholm Nielsen [this message]
2007-06-04 13:06 Martin Egholm Nielsen
2007-06-04 13:58 ` Ricard Wanderlof
2007-06-04 14:36   ` Martin Egholm Nielsen
2007-06-04 15:12     ` Ricard Wanderlof
2007-06-06 12:06       ` Martin Egholm Nielsen

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='f4760b$rmm$1@sea.gmane.org' \
    --to=martin@egholm-nielsen.dk \
    --cc=linux-mtd@lists.infradead.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.