[U-Boot-Users] 16BIT SPANSION Flash writing problem with CFI Driver

Tolunay Orkun listmember at orkun.us
Tue Nov 21 00:39:01 CET 2006


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.

Or maybe we should examine the DQ7 toggle check to see if there is a
race condition. If there is a race condition there we should fix that
problem instead.

Best regards,
Tolunay





More information about the U-Boot mailing list