[Balloon] Bad blocks caused by expiring mtd status poll loop…

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
Delete this message
Reply to this message
Author: Jim Rayner
Date:  
To: Balloon
Subject: [Balloon] Bad blocks caused by expiring mtd status poll loop in 2.6.29-rc7
I believe I have a repeatable defect with the nand status poll loop (in
nand_write, mtd/nand/nand_base.c) which only shows up in 2.6.29-rc7.

On my E1 Balloon3 board the loop expires before the status is ready, causing
bad block status and verification errors as bit 6 (ready) is often set due
to the previous status request.

For anyone else hitting this problem it is easy to fettle the loop to poll
over a increased number of jiffies (doubling the values worked) and unset
CONFIG_MTD_NAND_VERIFY_WRITE (ecc will handle any 1/2 bit errors).

I believe a better long term approach is to use the existing NAND_RNB
outputs. Although I believe currently I'm the only user experiencing these
problems, I assume that tolerances on most boards allow this polling loop to
work as expected.

Jim



Note: Even after these changes and a validated ready status, although more
usable, there is still a large disparity in retired blocks (avg 1 in 10)
compared with 2.6.25.2 (0 retired), using untouched code from Balloon svn.
...... Anyone fancy swapping a Balloon 3 board?