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

2008-08-12 Thread Liew Tsi Chung
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


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

2008-08-12 Thread Tsi-Chung Liew
From: TsiChung Liew [EMAIL PROTECTED]

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 [EMAIL PROTECTED]
---
 common/env_sf.c |   10 +-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/common/env_sf.c b/common/env_sf.c
index d641a9a..9077d78 100644
--- a/common/env_sf.c
+++ b/common/env_sf.c
@@ -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...);
-- 
1.5.6.4

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


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

2008-08-12 Thread Tsi-Chung Liew
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))
return 1;
 
puts(Writing to SPI flash...);
-- 
1.5.6.4

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot