[U-Boot] maybe a bug for flash write, CFI_CMDSET_AMD_LEGACY

u-boot-2009.06\drivers\mtd\cfi_flash.c Line: 836~845 Function: flash_write_cfiword
case CFI_CMDSET_AMD_EXTENDED: case CFI_CMDSET_AMD_STANDARD: #ifdef CONFIG_FLASH_CFI_LEGACY case CFI_CMDSET_AMD_LEGACY: #endif sect = find_sector(info, dest); flash_unlock_seq (info, sect); flash_write_cmd (info, sect, info->addr_unlock1, AMD_CMD_WRITE); sect_found = 1; break;
It should be :
case CFI_CMDSET_AMD_EXTENDED: case CFI_CMDSET_AMD_STANDARD:
sect = find_sector(info, dest); flash_unlock_seq (info, sect); flash_write_cmd (info, sect, info->addr_unlock1, AMD_CMD_WRITE); sect_found = 1; break; #ifdef CONFIG_FLASH_CFI_LEGACY case CFI_CMDSET_AMD_LEGACY: flash_unlock_seq (info, 0); flash_write_cmd (info, 0, info->addr_unlock1, AMD_CMD_WRITE); sect_found = 1; break; #endif
to make it work for SST39LF040 which is only 4k per serctor.

On Wednesday 15 July 2009 03:25:12 cheng gao wrote:
u-boot-2009.06\drivers\mtd\cfi_flash.c Line: 836~845 Function: flash_write_cfiword
case CFI_CMDSET_AMD_EXTENDED: case CFI_CMDSET_AMD_STANDARD: #ifdef CONFIG_FLASH_CFI_LEGACY case CFI_CMDSET_AMD_LEGACY: #endif sect = find_sector(info, dest); flash_unlock_seq (info, sect); flash_write_cmd (info, sect, info->addr_unlock1, AMD_CMD_WRITE); sect_found = 1; break;
It should be :
case CFI_CMDSET_AMD_EXTENDED: case CFI_CMDSET_AMD_STANDARD: sect = find_sector(info, dest); flash_unlock_seq (info, sect); flash_write_cmd (info, sect, info->addr_unlock1, AMD_CMD_WRITE); sect_found = 1; break;
#ifdef CONFIG_FLASH_CFI_LEGACY case CFI_CMDSET_AMD_LEGACY: flash_unlock_seq (info, 0); flash_write_cmd (info, 0, info->addr_unlock1, AMD_CMD_WRITE); sect_found = 1; break; #endif
to make it work for SST39LF040 which is only 4k per serctor.
Take a look at the latest version of the file in mainline. It already has such a patch integrated:
http://git.denx.de/?p=u-boot/u-boot-cfi- flash.git;a=commitdiff;h=b4db4a7638ef90cf0aacf7b954d9bf3043dda780
Best regards, Stefan
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de =====================================================================
participants (2)
-
cheng gao
-
Stefan Roese