[U-Boot-Users] PATCH for drivers/cfi_flash.c

Tolunay Orkun listmember at orkun.us
Fri May 6 10:20:34 CEST 2005


This patch is prepared against current CVS:

* Patch by Tolunay Orkun, 06 May 2005:
   Fixes for drivers/cfi_flash.c:
   - Fix wrong timeout value usage in flash_status_check()
   - Fix incorrect if condition in flash_full_status_check()
   - Remove clearing flash status at the end of flash_write_cfibuffer()
     which set Intel 28F640J3 flash back to command mode on CSB472

~~~~

Verbose description of fixes:

Fix #1: flash_status_check() receives the timeout as a parameter. 
Existing code is using erase_blk_tout which is too conservative for
some operations but insufficient for others (like buffered writes)

Fix #2: flash_full_status_check() does not combine conditions properly 
in the if statement.

This fix was suggested by "Peter Pearse" <Peter.Pearse at arm.com> but a 
patch was never submitted as far as I can tell. Refer to:

http://sourceforge.net/mailarchive/message.php?msg_id=10546157

Fix #3: flash_write_cfibuffer() would leave the flash in command mode. I 
had mentioned this problem on the list a couple of times but never had 
time to investigate until now.

* Intel 28F640J3 flash on CSB472 board reverts to command mode if the 
removed line is present. Thus immediately after cp to flash operation, 
imls, boot etc would not work properly. md to flash displays 0x0080 
(repeated) which is the value of status register of the flash.

* When this line is present and executed the flash is already in Array 
Read mode (flash_full_status_check issues a reset command in the end). 
So clearing the status is unnecessary at best.

Best regards,
Tolunay Orkun

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cfi_flash_bufwrite_fix.patch
Url: http://lists.denx.de/pipermail/u-boot/attachments/20050506/0492edd7/attachment.txt 


More information about the U-Boot mailing list