[PATCH 4/6] fw_env: unify calculation of "blockstart" in flash_write_buf()

Rafał Miłecki zajec5 at gmail.com
Sat Feb 21 11:00:09 CET 2026


From: Rafał Miłecki <rafal at milecki.pl>

In both code paths "blockstart" is calculated the same way. Unify it.

Signed-off-by: Rafał Miłecki <rafal at milecki.pl>
---
 tools/env/fw_env.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index c369bda1b85..8ca6a3e5478 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -1007,7 +1007,6 @@ static int flash_write_buf(int dev, int fd, void *buf, size_t count)
 	if (DEVTYPE(dev) == MTD_ABSENT) {
 		blocklen = count;
 		erase_len = blocklen;
-		blockstart = DEVOFFSET(dev);
 		block_seek = 0;
 		write_total = blocklen;
 	} else {
@@ -1018,8 +1017,6 @@ static int flash_write_buf(int dev, int fd, void *buf, size_t count)
 		/* Maximum area we may use */
 		erase_len = environment_end(dev) - erase_offset;
 
-		blockstart = erase_offset;
-
 		/* Offset inside a block */
 		block_seek = DEVOFFSET(dev) - erase_offset;
 
@@ -1085,6 +1082,7 @@ static int flash_write_buf(int dev, int fd, void *buf, size_t count)
 	erase.length = erasesize;
 
 	/* This only runs once on NOR flash and SPI-dataflash */
+	blockstart = DEVOFFSET(dev);
 	while (processed < write_total) {
 		rc = flash_bad_block(fd, DEVTYPE(dev), blockstart);
 		if (rc < 0)	/* block test failed */
-- 
2.51.0



More information about the U-Boot mailing list