[U-Boot] fw_env bug for multi-sector environments on NOR flash
Hi, I am storing u-boot environment variables on a NOR flash using two sectors. I encountered an error when writing changes using fw_setenv. /etc # cat fw_env.config # Configuration file for fw_(printenv/saveenv) utility. # Up to two entries are valid, in this case the redundand # environment sector is assumed present. # MTD device name Device offset Env. size Flash sector size Number of sectors /dev/mtd12 0x 0x2 0x1 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. The following change is needed to fix this issue for NOR multi-sector environments. 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) Are there any objections to committing this change? Yiyang Fei ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] fw_env bug for multi-sector environments on NOR flash
Dear Fei, Yiyang, In message c2a5d1386c6db94198f2a5c8368eae6c14659...@dulmex02.barco.com you wrote: # MTD device name Device offset Env. size Flash sector size Number of sectors /dev/mtd12 0x 0x2 0x1 2 Stupid question: why do you define an environment size of 128 kB? I bet you use less than 10% of this, right? Are you aware that this has a lof of disadvantages, lile significantly slowing down your boot process? 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. The following change is needed to fix this issue for NOR multi-sector environments. ... Are there any objections to committing this change? Your Signed-off-by: line is missing... 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: w...@denx.de Hiring experienced unix people is like a built-in filter against idiots. Hiring experienced NT people provides no such guarantee. -- Miguel Cruz in WgL96.349$cc.122...@typhoon2.ba-dsg.net ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] fw_env bug for multi-sector environments on NOR flash
Dear Mr. Denk, Stupid question: why do you define an environment size of 128 kB? I bet you use less than 10% of this, right? Correct Are you aware that this has a lof of disadvantages, lile significantly slowing down your boot process? I am now, but the first product is already released and cannot be changed easily. Your Signed-off-by: line is missing... I resubmitted updated message. Best regards, Yiyang Fei ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot