From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Wed, 19 Sep 2007 07:49:14 +0200 Subject: [U-Boot-Users] NAND and bad blocks In-Reply-To: References: Message-ID: <200709190749.15569.sr@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Matthew, On Tuesday 18 September 2007, MatthewLCreech at eaton.com wrote: > 1. How does U-Boot handle a bad block in the area where the environment > is stored? I can create a second environment via CFG_ENV_OFFSET_REDUND, > but that's not very flexible (what if the primary and the backup are > both bad blocks?) I also need to write to the environment from within > Linux via the "fw_setenv" utility, but it doesn't seem to have any NAND > awareness. You could be right here. The bad block handling in the NAND environment is not perfect. If both blocks of the environment are bad (primary & redundant) then we really have a problem. There was a patch sent to the list a few months ago (IIRC, from the Openmoko project), that addressed this problem. Unfortunately I didn't find the time till now to take a deeper look at it. > 2. It's not obvious to me how U-Boot reacts when it encounters a bad > block. If I'm copying a kernel image out of NAND, and a bad block is > encountered, does it skip to the next block? There are both option: a) Bad blocks are not skipped and writted as 0xff in memory b) Bad blocks are skipped upon read from NAND I personally never used a) and always use b). > If so, do I need to > compensate by padding each partition with unused blocks, or how else > does addressing work? Yes, you have to add some reserve to your partitions size for bad blocks that could occur. > Similarly for writes - if I do "nand write > 100000", and the first block is bad, will U-Boot > write all 0x100000 bytes _after_ that block? Yes. > 3. Can Linux handle bad blocks in the same manner? Specifically, I need > to use 'nandwrite' to copy a kernel image to an MTD partition from > within Linux, and have U-Boot read the image correctly on bootup, both > in the presence of bad blocks and bit-flips. Sure, this works the same way. Best regards, Stefan ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de =====================================================================