Wolfgang, You're right. Can't ignore the chance that CFG_ENV_SIZE might be larger than CFG_ENV_SECT_SIZE, although both are defined in platform configuration file.
I will send out the patch again with condition check. [/snip] u32 sector = 1; ... if (CFG_ENV_SIZE > CFG_ENV_SECT_SIZE) { sector = CFG_ENV_SIZE / CFG_ENV_SECT_SIZE; if (CFG_ENV_SIZE % CFG_ENV_SECT_SIZE) sector++; } if (spi_flash_erase(env_flash, CFG_ENV_OFFSET, sector * CFG_ENV_SECT_SIZE)) ... if (spi_flash_write(env_flash, CFG_ENV_OFFSET, CFG_ENV_SIZE, env_ptr)) ... Regards, TsiChung -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Tuesday, August 12, 2008 3:05 PM To: Liew Tsi Chung Cc: U-Boot; Rigby John Subject: Re: [PATCH] Change CFG_ENV_SIZE to CFG_ENV_SECT_SIZE for SPI sector erase Dear Tsi-Chung Liew, In message <[EMAIL PROTECTED]> you wrote: > From: TsiChung Liew <[EMAIL PROTECTED]> > > The CFG_ENV_SIZE is not suitable used for SPI flash erase sector size. > > Signed-off-by: TsiChung Liew <[EMAIL PROTECTED]> > --- > common/env_sf.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/common/env_sf.c b/common/env_sf.c index d641a9a..0a0626e > 100644 > --- a/common/env_sf.c > +++ b/common/env_sf.c > @@ -69,7 +69,7 @@ int saveenv(void) > } > > puts("Erasing SPI flash..."); > - if (spi_flash_erase(env_flash, CFG_ENV_OFFSET, CFG_ENV_SIZE)) > + if (spi_flash_erase(env_flash, CFG_ENV_OFFSET, CFG_ENV_SECT_SIZE)) Is it always guaranteed that CFG_ENV_SIZE <= CFG_ENV_SECT_SIZE ? Otherwise several sectors might need to be erased... Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: [EMAIL PROTECTED] Due to lack of disk space, this fortune database has been discontinued. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot