[U-Boot] NAND bad block Query

Gray Remlin gryrmln at gmail.com
Wed Feb 12 22:04:13 CET 2014


Example taken from include/configs/sheevaplug.h

#ifdef CONFIG_CMD_NAND
#define CONFIG_ENV_IS_IN_NAND           1
#define CONFIG_ENV_SECT_SIZE            0x20000 /* 128K */
#else
#define CONFIG_ENV_IS_NOWHERE           1       /* if env in SDRAM */
#endif
/*
 * max 4k env size is enough, but in case of nand
 * it has to be rounded to sector size
 */
#define CONFIG_ENV_SIZE                 0x20000 /* 128k */
#define CONFIG_ENV_ADDR                 0x60000
#define CONFIG_ENV_OFFSET               0x60000 /* env starts here */

In the above configuration CONFIG_ENV_SIZE == CONFIG_ENV_SECT_SIZE, that
is, the erase block size.

If there is just one bad block in the NAND mapped for the environment
does this mean that 'saveenv' will fail ?

If so, shouldn't CONFIG_ENV_SIZE be set to less than
CONFIG_ENV_SECT_SIZE (but be a multiple of the write sector size) to
allow for bad block skipping ?

I am tired and have a headache that wont go, please don't scold me too
harshly if I am being stupid....


More information about the U-Boot mailing list