mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
Change CFG_ENV_SIZE to CFG_ENV_SECT_SIZE for SPI sector erase
The CFG_ENV_SIZE is not suitable used for SPI flash erase sector size if CFG_ENV_SIZE is less than CFG_ENV_SECT_SIZE. Add condition check if CFG_ENV_SIZE is larger than CFG_ENV_SECT_SIZE, calculate the right number of sectors for erasing. Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
This commit is contained in:
parent
4cb4e654ca
commit
07efc9e321
1 changed files with 9 additions and 1 deletions
|
@ -63,13 +63,21 @@ uchar env_get_char_spec(int index)
|
|||
|
||||
int saveenv(void)
|
||||
{
|
||||
u32 sector = 1;
|
||||
|
||||
if (!env_flash) {
|
||||
puts("Environment SPI flash not initialized\n");
|
||||
return 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++;
|
||||
}
|
||||
|
||||
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, sector * CFG_ENV_SECT_SIZE))
|
||||
return 1;
|
||||
|
||||
puts("Writing to SPI flash...");
|
||||
|
|
Loading…
Reference in a new issue