
Bonjour Scott,
Le Tue, 10 Mar 2015 13:49:46 -0500, Scott Wood scottwood@freescale.com a écrit :
On Tue, 2015-03-10 at 13:54 +0100, Albert ARIBAUD wrote:
Hi Scott,
Le Mon, 9 Mar 2015 18:51:03 -0500, Scott Wood scottwood@freescale.com a écrit :
On Thu, 2015-03-05 at 07:46 +0100, Albert ARIBAUD (3ADEV) wrote:
- while (left) {
if (read_single_page(dst, page) >= 0) {
dst += LARGE_PAGE_SIZE;
page++;
left--;
}
- }
No bad block skipping?
Hmm... actually the 'left--' should be just after the 'if' block, otherwise not only will the code not skip a bad block, it will actually loop infinitely trying to read it. Will fix in v4. Thanks for pointing this out!
What causes read_single_page() to fail when there's a bad block marker? Especially if the marker is on a different page of the block. I'm not talking about ECC failures (which should not silently be skipped).
Oh gods, I see, sorry. I was indeed mixing up ECC errors and bad block markers. Show I'm really not good at NAND. :/
I'll look up how other drivers do it and add bad block skipping there.
-Scott
Cordialement, Albert ARIBAUD 3ADEV