
On Wednesday 04 April 2012 13:15:15 Mike Frysinger wrote:
On Wednesday 04 April 2012 12:00:42 Bishop, Mark wrote:
root:/> cat /etc/fw_env.config /dev/mtd0 0x60000 0x20000 0x20000 1
ioctl(3, MEMGETINFO, {type=MTD_NANDFLASH, flags=MTD_WRITEABLE, size=0x80000, erasesize=0x20000, writesize=0x800, oobsize=0x40, padding=0xffffffff}) = 0 ioctl(3, MEMGETBADBLOCK, [0x60000]) = 1 ioctl(3, MEMGETBADBLOCK, [0x80000]) = -1 EINVAL (Invalid argument)
to summarize further: the flash is 0x80000 bytes long, and he's using the last sector in flash to hold his env, and fw_printenv seems to have an off-by-one in the badblock check. there's no reason it should be checking 0x80000.
actually, reading it a bit more, it seems your NAND has that last block marked as bad. so the fw_printenv code is working correctly. it moved on to the next one.
it should have printed out: Too few good blocks within range but since it walked past the end of the flash, you got: Cannot read bad block mark: Invalid argument so the tool should be updated slightly
might want to figure out why that block is bad in your NAND. -mike