[U-Boot-Users] CFI flash driver problem

Tolunay Orkun listmember at orkun.us
Thu Mar 15 05:48:36 CET 2007


Jeff Mann wrote:

>> flash_write_cmd() function when calling it with "flash_write_cmd 
>> (info, sect, 0, AMD_CMD_ERASE_SECTOR);" at around line 490 in
>>     
> flash_erase().
>   
>>   
>>     
>
> UPDATE:
>
> I am proving this update in case someone searches the list archives to
> solve a similar problem. 
>
> The problem was the result of both NOR Flash and Cellular RAM driving
> the EBC_READY signal (also called CRAM_WT, and WAIT in the CRAM
> documents). Because of this configuration, after doing an operation on
> the Flash that requires a delay, such as erase or write, the Flash held
> EBC_READY low for a long time while erading or writing. So the processor
> never saw the CRAM release CRAM_WT when its data was ready. The
> processor never could retrieve the next instruction and intrepreted this
> as an "illegal instruction."
>
> The problem had nothing to do with bus transievers or accessing timing. 
>
> In "human time" the erase cycle completed before I made the next step in
> code. 
>
> -Jeffrey Mann
Jeff,

Thank you for the update. Did you make changes to your board design to 
solve this problem?

One solution would be to disconnect nor flash from EBC_READY and 
configure that CS for appropriate number of wait cycles. Another would 
be to disable bus timeout if possible.

Tolunay





More information about the U-Boot mailing list