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

Tolunay Orkun
2005-05-06T08:20:34Z

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@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