[U-Boot] erase and saveenv stop working after using fw_setenv
Petri Lehtinen
petri.lehtinen at inoi.fi
Tue Sep 16 09:46:26 CEST 2008
Hi!
I'm using U-Boot 1.3.4 and Linux 2.6.26.5 on MPC8323E-RDB. After using
fw_printenv in Linux, erase and saveenv stop working in U-Boot. In
Linux, fw_* still work.
When using erase, this is the result:
=> protect off fe040000 fe05ffff
Un-Protected 1 sectors
=> erase fe040000 fe05ffff
Flash erase error at address fe040000
Block Erase Error.
Block locked.
done
Erased 1 sectors
=> md fe040000
fe040000: c7be9eae 626f6f74 636d643d 73657465 ....bootcmd=sete
fe040010: 6e762062 6f6f7461 72677320 726f6f74 nv bootargs root
...
So the sector doesn't get erased.
Errors are similar when using saveenv:
=> saveenv
Saving Environment to Flash...
Un-Protected 1 sectors
Erasing Flash...
Flash erase error at address fe040000
Block Erase Error.
Block locked.
done
Erased 1 sectors
I tracked the error message down to cfi_flash.c, where this function
call fails:
flash_isequal (info, sector, 0, FLASH_STATUS_DONE)
However, I have no clue on how CFI works, so my ability to debug it
further stops here. A possible reason I can think of is that the ioctl
calls in fw_setenv are somehow messing up the Flash status.
Any ideas?
--
Petri Lehtinen
Inoi Oy
Tel. : +358 40 758 0229
Email: petri.lehtinen at inoi.fi
More information about the U-Boot
mailing list