On Wed, 2014-02-12 at 21:04 +0000, Gray Remlin wrote: > 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....
Reducing CONFIG_ENV_SIZE would speed up I/O and CRC calculation, but it would not help with bad block skipping, because the granularity of skipping is the 128k block, not the 4k page. What you want is CONFIG_ENV_RANGE. -Scott _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot