cfi_flash driver - Add delay after reset command
PATCH 1/1 cfi_flash driver - Add delay after reset command
I ran into a problem where the reset was failing except when I enabled debugging support. After talking with Garret Swalling at Spansion I was told that the GL-N series of devices require a 500ns wait for the reset to complete. The below patch adds a 1us delay after all reset commands.
-Aaron Williams
--- drivers/mtd/cfi_flash.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)
drivers/mtd/cfi_flash.c +7 -0
@@ -586,6 +586,7 @@ static int flash_status_check (flash_info_t * info, flash_sect_t sector, prompt, info->start[sector], flash_read_long (info, sector, 0));flash_write_cmd (info, sector,0 , info->cmd_reset); +udelay (1 );return ERR_TIMOUT ; }udelay (1 );/* also triggers watchdog */
@@ -633,6 +634,7 @@ static int flash_full_status_check (flash_info_t * info, flash_sect_t sector,puts ("Vpp Low Error.\n" ); }flash_write_cmd (info, sector,0 , info->cmd_reset); +udelay (1 );break ;default :break ;
@@ -1496,6 +1498,7 @@ void flash_read_user_serial (flash_info_t * info, void *buffer, int offset,flash_write_cmd (info,0 ,0 ,FLASH_CMD_READ_ID );memcpy (dst, src + offset, len);flash_write_cmd (info,0 ,0 , info->cmd_reset); +udelay (1 );flash_unmap (info,0 ,FLASH_OFFSET_USER_PROTECTION , src); }
@@ -1511,6 +1514,7 @@ void flash_read_factory_serial (flash_info_t * info, void *buffer, int offset,flash_write_cmd (info,0 ,0 ,FLASH_CMD_READ_ID );memcpy (buffer, src + offset, len);flash_write_cmd (info,0 ,0 , info->cmd_reset); +udelay (1 );flash_unmap (info,0 ,FLASH_OFFSET_INTEL_PROTECTION , src); }
@@ -1542,6 +1546,7 @@ static void cfi_reverse_geometry(struct cfi_qry *qry)static void cmdset_intel_read_jedec_ids (flash_info_t *info) {flash_write_cmd (info,0 ,0 ,FLASH_CMD_RESET ); +udelay (1 );flash_write_cmd (info,0 ,0 ,FLASH_CMD_READ_ID );udelay (1000 );/* some flash are slow to respond */ info->manufacturer_id = flash_read_uchar (info,
@@ -1610,6 +1615,7 @@ static void cmdset_amd_read_jedec_ids(flash_info_t *info)break ; }flash_write_cmd (info,0 ,0 ,AMD_CMD_RESET ); +udelay (1 ); }static int cmdset_amd_init (flash_info_t *info,struct cfi_qry *qry)
@@ -1736,6 +1742,7 @@ void __flash_cmd_reset(flash_info_t *info)* that AMD flash roms ignore the Intel command. */ flash_write_cmd (info,0 ,0 ,AMD_CMD_RESET ); +udelay (1 );flash_write_cmd (info,0 ,0 ,FLASH_CMD_RESET ); }void flash_cmd_reset (flash_info_t *info)
Signature · 1 line
1.7.3.4
PATCH 1/1 cfi_flash driver - Add delay after reset command
Quoted 5 lines · On Tuesday 12 April 2011 09:59:04 Aaron Williams wrote:
I ran into a problem where the reset was failing except when I enabled debugging support. After talking with Garret Swalling at Spansion I was told that the GL-N series of devices require a 500ns wait for the reset to complete. The below patch adds a 1us delay after all reset commands.
Applied to u-boot-cfi-flash/master. Thanks.
Cheers,
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 at denx.de