[U-Boot] [PATCH] env: sf: fix environment in SPI NOR

commit 9a9d66f5eff0 ("env: add spi_flash_read_env function")
breaks Environment functionality, as it reads only until 2 \0 are found, but fills the buffer with 0x0 instead 0xff which leads in an incorrect crc sum.
Fix: init the read buffer with 0xff instead 0x00
Signed-off-by: Heiko Schocher hs@denx.de ---
env/sf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/env/sf.c b/env/sf.c index b3dec82c35..31dd003575 100644 --- a/env/sf.c +++ b/env/sf.c @@ -98,7 +98,7 @@ static int spi_flash_read_env(struct spi_flash *flash, u32 offset, size_t len, u32 addr = 0; u32 page_size = flash->page_size;
- memset(buf, 0x0, len); + memset(buf, 0xff, len); for (int i = 0; i < len / page_size; ++i) { int ret = spi_flash_read(flash, offset, page_size, &((char *)buf)[addr]);

On Fri, Jan 18, 2019 at 10:45:56AM +0100, Heiko Schocher wrote:
commit 9a9d66f5eff0 ("env: add spi_flash_read_env function")
breaks Environment functionality, as it reads only until 2 \0 are found, but fills the buffer with 0x0 instead 0xff which leads in an incorrect crc sum.
Fix: init the read buffer with 0xff instead 0x00
Signed-off-by: Heiko Schocher hs@denx.de
Applied to u-boot/master, thanks!

Hello Tom,
Am 19.01.2019 um 03:54 schrieb Tom Rini:
On Fri, Jan 18, 2019 at 10:45:56AM +0100, Heiko Schocher wrote:
commit 9a9d66f5eff0 ("env: add spi_flash_read_env function")
breaks Environment functionality, as it reads only until 2 \0 are found, but fills the buffer with 0x0 instead 0xff which leads in an incorrect crc sum.
Fix: init the read buffer with 0xff instead 0x00
Signed-off-by: Heiko Schocher hs@denx.de
Applied to u-boot/master, thanks!
I am sorry, this patch was nonsense. After erasing the flash, and saving a default Environment, the CONFIG_ENV_SIZE bytes are filled with 0x00. So the memset with 0x00 should be OK. I have no idea what gone wrong on my board :-(
I am not sure what gone wrong here, so, please can you revert this patch?
bye, Heiko

On Mon, Jan 21, 2019 at 10:53:12AM +0100, Heiko Schocher wrote:
Hello Tom,
Am 19.01.2019 um 03:54 schrieb Tom Rini:
On Fri, Jan 18, 2019 at 10:45:56AM +0100, Heiko Schocher wrote:
commit 9a9d66f5eff0 ("env: add spi_flash_read_env function")
breaks Environment functionality, as it reads only until 2 \0 are found, but fills the buffer with 0x0 instead 0xff which leads in an incorrect crc sum.
Fix: init the read buffer with 0xff instead 0x00
Signed-off-by: Heiko Schocher hs@denx.de
Applied to u-boot/master, thanks!
I am sorry, this patch was nonsense. After erasing the flash, and saving a default Environment, the CONFIG_ENV_SIZE bytes are filled with 0x00. So the memset with 0x00 should be OK. I have no idea what gone wrong on my board :-(
I am not sure what gone wrong here, so, please can you revert this patch?
OK, thanks!
bye, Heiko -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: hs@denx.de
participants (2)
-
Heiko Schocher
-
Tom Rini