[U-Boot] [PATCH] Fix fw_env bug for multi-sector environments on NOR flash

Fei, Yiyang YiYang.Fei at barco.com
Fri Aug 26 18:02:11 CEST 2011


When storing u-boot environment variables on a NOR flash using multiple
sectors, the following error occurs when writing changes using
fw_setenv.

 

/etc # cat fw_env.config

/dev/mtd12  0x0000  0x20000  0x10000  2

 

/etc # fw_setenv test test

End of range reached, aborting

Error: can't write fw_env to flash

 

The reason for the error is that although both sectors are written in
one pass, the loop for the write is executed twice because the
"processed" variable is incremented by the incorrect amount.

 

Signed-off-by: Yiyang Fei <yiyang.fei at barco.com>

---

 tools/env/fw_env.c |    5 ++---

 1 files changed, 2 insertions(+), 3 deletions(-)

 

diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c index
ed6b53f..e6b2cae 100644

--- a/tools/env/fw_env.c

+++ b/tools/env/fw_env.c

@@ -880,9 +880,8 @@ static int flash_write_buf (int dev, int fd, void
*buf, size_t count,

 

            ioctl (fd, MEMLOCK, &erase);

 

-           processed  += blocklen;

-           block_seek = 0;

-           blockstart += blocklen;

+           processed  += erasesize;

+           blockstart += erasesize;

      }

 

      if (write_total > count)

--

1.7.2.5

 

Sorry for the disclaimer...it is out of my control.

 

Yiyang Fei

 



More information about the U-Boot mailing list