Hi Stefan, On Mon, Oct 06, 2014 at 10:20:43AM +0200, Stefan Roese wrote: > On 06.10.2014 08:19, Baruch Siach wrote: > >On Thu, Sep 04, 2014 at 12:23:09PM +0300, Baruch Siach wrote: > >>Partially revert commit 0d01f66d235118 (CFI: cfi_flash write fix for AMD > >>legacy). > >> > >>flash_full_status_check() used to skip status register parsing when > >>flash_status_check() returns OK. This is wrong since flash_status_check() > >>must return OK for other status bits to be valid. > >> > >>Cc: Ed Swarthout <ed.swarth...@freescale.com> > >>Signed-off-by: Baruch Siach <bar...@tkos.co.il> > >>--- > >> drivers/mtd/cfi_flash.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >>diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c > >>index c4b5bc1de553..9b3175d87fbd 100644 > >>--- a/drivers/mtd/cfi_flash.c > >>+++ b/drivers/mtd/cfi_flash.c > >>@@ -593,7 +593,7 @@ static int flash_full_status_check (flash_info_t * > >>info, flash_sect_t sector, > >> case CFI_CMDSET_INTEL_PROG_REGIONS: > >> case CFI_CMDSET_INTEL_EXTENDED: > >> case CFI_CMDSET_INTEL_STANDARD: > >>- if ((retcode != ERR_OK) > >>+ if ((retcode == ERR_OK) > >> && !flash_isequal (info, sector, 0, FLASH_STATUS_DONE)) { > >> retcode = ERR_INVAL; > >> printf ("Flash %s error at address %lx\n", prompt, > > > >Ping? > > Sorry, I forgot about this one. > > I have to admit that I'm a bit hesitant here. Since your patch changes the > behavior thats present for about than 6 years. You're the first encountering > some problems here. And I'm not that actively using CFI NOR flash anymore as > well, so my knowledge is a bit "rusty" here as well. > > Could you please summarize again, what the real problem with this compare > is. What is the error exactly in your case (which flash chip is used and > which command was issued?)?
The Micron StrataFlash datasheet says this on Status Register bit 7 (Device status): 0 = Device is busy; SR[9,8,6:1] are invalid, SR[0] is valid 1 = Device is ready; SR[9:8], SR[6:1] are valid This is was the original code behaviour, since your commit 79b4cda076069d04122f. This commit log explicitly says: * Changes/fixes for drivers/cfi_flash.c: We *should* check if there are any error bits if the previous call returned ERR_OK (Otherwise we will have output an error message in flash_status_check() already.) The original code would only check for error bits if flash_status_check() returns ERR_TIMEOUT. Patch by Marcus Hall, 23 Aug 2005 Currently U-Boot is just silent about NOR flash write errors. baruch -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - bar...@tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il - _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot