public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: Kyungmin Park <kyungmin.park@samsung.com>
To: 'Jarkko Lavinen' <jarkko.lavinen@nokia.com>
Cc: linux-mtd@lists.infradead.org
Subject: RE: Erase verify problem with OneNAND
Date: Wed, 25 Jan 2006 16:32:25 +0900	[thread overview]
Message-ID: <0ITN00AYE0Y14Q@mmp2.samsung.com> (raw)
In-Reply-To: <20060124124710.GA29129@angel.research.nokia.com>

Hi Jakko 

I think it's same problem related with Double Density Package (DDP) previous

In erase call path, there's no DDP select. It only set DFS, FBA as following

% onenand_command()
        if (block != -1) {
                /* Write 'DFS, FBA' of Flash */
                value = onenand_block_address(this, block);
                this->write_word(value, this->base +
ONENAND_REG_START_ADDRESS1);
        }

I think we have to add 

	  /* Select DataRAM for DDP */
              value = onenand_bufferram_address(this, block);
              this->write_word(value, this->base +
ONENAND_REG_START_ADDRESS2);

Now I can't have a DDP chip I can't test.  please test this code and
feekback

And "Newly-erased block contained word ..." is also happend on my board in
latest omap kernel tree.
Now I also debugging this problem

Regards,
Kyungmin Park

> -----Original Message-----
> From: Jarkko Lavinen [mailto:jarkko.lavinen@nokia.com] 
> Sent: Tuesday, January 24, 2006 9:47 PM
> To: Kyungmin Park
> Cc: linux-mtd@lists.infradead.org
> Subject: Erase verify problem with OneNAND
> 
> Hi Kyungmin
> 
> I have a strange erase verify read problem with OneNand. It occurs
> strangely when crossing the 128MB border, first erasing (and
> presumably verifying) a block on other side and then erasing another
> block on the other side. Then verify reads garbage.
> 
> I am using CVS head for the drivers/mtd but the JFFS2 part is from the
> 2.6.15 kernel, before Erase Block Headers were committed. 
> Onenand_base.c
> is rev 1.15. The test board has muxed 256MB OneNand.
> 
> I see JFFS2 repeatably complaining "Newly-erased block contained
> word...".  This comes from fs/jffs2/erase.c:jffs2_block_check_erase()
> which reads the erased block and checks all the bits are 1.
> 
> I see this occuring when I flash JFFS2 root image and boot it. Our
> bootloader leaves unused erase blocks empty, without cleanmarker.
> When JFFS2 sees an empty block, it has to erase it again since there 
> is no cleanmarker. After erasing, it reads the first page to see it 
> really is empty.
> 
> For some reason the first verify read at physical offset 0x7fe0000 
> (JFFS2 report offset 0x07b60000 relative to the partition offset 
> 0x480000) fails but retry succeeds -- which means the block was 
> correctly erased but the first verify reads some garbage.
> 
> This is tricky to debug, since the problem disappears if I increase 
> MTD debug level. On the other hand the verify problem seems to appear
> always after after flashing and booting the board.
> 
> I have modified jffs2_block_check_erase() to retry the verify read
> if garbage is seen at the erased page.  I am using MTD debug level
> 0 and changed onenand_erase to report at that level to see when it 
> is being called.
> 
> The repeatably occuring one:
> 
>   ...
>   onenand_erase: start = 0x08040000, len = 131072
>   onenand_erase: start = 0x08020000, len = 131072
>   onenand_erase: start = 0x08000000, len = 131072
>   onenand_erase: start = 0x07fe0000, len = 131072
>   Newly-erased block contained word 0x45e0f628 at offset 0x07b60000
>   Read OK after 1 retries
>   onenand_erase: start = 0x07fc0000, len = 131072
>   onenand_erase: start = 0x07fa0000, len = 131072
>   onenand_erase: start = 0x07f80000, len = 131072
>   ...
> 
> Another exmaple, less frequent:
> 
>   onenand_erase: start = 0x04ce0000, len = 131072
>   onenand_erase: start = 0x04cc0000, len = 131072
>   onenand_erase: start = 0x04ca0000, len = 131072
>   onenand_erase: start = 0x0ffe0000, len = 131072
>   Newly-erased block contained word 0x7ea4c at offset 0x0fb60000
>   Read OK after 1 retries
> 
> Jarkko Lavinen
> 
> 

  reply	other threads:[~2006-01-25  7:32 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-24 12:47 Erase verify problem with OneNAND Jarkko Lavinen
2006-01-25  7:32 ` Kyungmin Park [this message]
2006-01-25 12:06   ` Jarkko Lavinen

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=0ITN00AYE0Y14Q@mmp2.samsung.com \
    --to=kyungmin.park@samsung.com \
    --cc=jarkko.lavinen@nokia.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox