[U-Boot] [PATCH] Change CFG_ENV_SIZE to CFG_ENV_SECT_SIZE for SPI sector erase

From: TsiChung Liew Tsi-Chung.Liew@freescale.com
The CFG_ENV_SIZE is not suitable used for SPI flash erase sector size.
Signed-off-by: TsiChung Liew Tsi-Chung.Liew@freescale.com --- 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)) return 1;
puts("Writing to SPI flash...");

Dear Tsi-Chung Liew,
In message 1218547123-18663-1-git-send-email-Tsi-Chung.Liew@freescale.com you wrote:
From: TsiChung Liew Tsi-Chung.Liew@freescale.com
The CFG_ENV_SIZE is not suitable used for SPI flash erase sector size.
Signed-off-by: TsiChung Liew Tsi-Chung.Liew@freescale.com
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

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: wd@denx.de [mailto:wd@denx.de] 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 1218547123-18663-1-git-send-email-Tsi-Chung.Liew@freescale.com you wrote:
From: TsiChung Liew Tsi-Chung.Liew@freescale.com
The CFG_ENV_SIZE is not suitable used for SPI flash erase sector size.
Signed-off-by: TsiChung Liew Tsi-Chung.Liew@freescale.com
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
participants (3)
-
Liew Tsi Chung
-
Tsi-Chung Liew
-
Wolfgang Denk