Re: [U-Boot] Suspected Spam: Do not open attachements![PATCH 4/6] tools/env: flash_write_buf: enforce offset to be start of environment

2016-10-08 Thread Tom Rini
On Mon, Aug 29, 2016 at 11:17:00PM +0200, Andreas Fenkart wrote:

> This allows to take advantage of the environment being block aligned.
> This is not a new constraint. Writes always start at the begin of the
> environment, since the header with CRC/length as there.
> Every environment modification requires updating the header
> 
> Signed-off-by: Andreas Fenkart 

Applied to u-boot/master, thanks!

-- 
Tom


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


[U-Boot] Suspected Spam: Do not open attachements![PATCH 4/6] tools/env: flash_write_buf: enforce offset to be start of environment

2016-08-29 Thread Andreas Fenkart
This allows to take advantage of the environment being block aligned.
This is not a new constraint. Writes always start at the begin of the
environment, since the header with CRC/length as there.
Every environment modification requires updating the header

Signed-off-by: Andreas Fenkart 
---
 tools/env/fw_env.c | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index 0f0eaa4..3dc0d53 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -765,12 +765,12 @@ static int flash_read_buf (int dev, int fd, void *buf, 
size_t count,
 }
 
 /*
- * Write count bytes at offset, but stay within ENVSECTORS (dev) sectors of
+ * Write count bytes from begin of environment, but stay within
+ * ENVSECTORS(dev) sectors of
  * DEVOFFSET (dev). Similar to the read case above, on NOR and dataflash we
  * erase and write the whole data at once.
  */
-static int flash_write_buf (int dev, int fd, void *buf, size_t count,
-   off_t offset)
+static int flash_write_buf(int dev, int fd, void *buf, size_t count)
 {
void *data;
struct erase_info_user erase;
@@ -796,20 +796,21 @@ 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 = offset;
+   blockstart = DEVOFFSET(dev);
block_seek = 0;
write_total = blocklen;
} else {
blocklen = DEVESIZE(dev);
 
-   erase_offset = (offset / blocklen) * blocklen;
+   erase_offset = DEVOFFSET(dev);
 
/* Maximum area we may use */
erase_len = environment_end(dev) - erase_offset;
 
blockstart = erase_offset;
+
/* Offset inside a block */
-   block_seek = offset - erase_offset;
+   block_seek = DEVOFFSET(dev) - erase_offset;
 
/*
 * Data size we actually write: from the start of the block
@@ -1007,7 +1008,7 @@ static int flash_write (int fd_current, int fd_target, 
int dev_target)
 #endif
 
rc = flash_write_buf(dev_target, fd_target, environment.image,
-CUR_ENVSIZE, DEVOFFSET(dev_target));
+CUR_ENVSIZE);
if (rc < 0)
return rc;
 
-- 
2.8.1

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