
On 11/20/06, Tolunay Orkun listmember@orkun.us wrote:
Sam Song wrote:
non-buffered writes I believe the write timeout of 0 may be the problem. Typically these values are set to 0 if the feature is not supported but the datasheet gives program sequence as well. Please override the data read from CFI regarding write timeout with a non zero value (say 1ms timeout) and see what happens. Perhaps, they set the
With this hacking way as suggested, it simply worked fine! I tried programming a 1.4MB files several times. No probelm.
Glad to hear that the hack has worked.
--- drivers/cfi_flash.c 17 Nov 2006 09:02:43 -0000 1.2 +++ drivers/cfi_flash.c 20 Nov 2006 03:41:43 -0000 1.3 @@ -1107,7 +1107,12 @@ ulong flash_get_size (ulong +#ifndef CONFIG_S29GL064M info->write_tout = (tmp * (1 << flash_read_uchar (info, FLASH_OFFSET_WMAX_TOUT))) / 1000; +#else
- info->write_tout = 1; /* Suggested by Tolunay */
+#endif /* CONFIG_S29GL064M */
Instead of a chip specific solution we should try to find more generalized solution. At minimum, we could always use 1 if the value turns out to be 0 after calculation.
I think we had a long e-mail exchange about this problem in may of '05 some of which is here:
http://article.gmane.org/gmane.comp.boot-loaders.u-boot/17379
it looks like a fix never got committed (at least as of the last time I pulled from git which was admittedly a while ago).