* [U-Boot] [PATCH v2 1/2] fw_env: add redundant env support for MTD_ABSENT
@ 2013-08-29 22:56 Luka Perkov
2013-08-29 22:56 ` [U-Boot] [PATCH v2 2/2] fw_env: fix writing environment for mtd devices Luka Perkov
2013-09-06 21:25 ` [U-Boot] [U-Boot, v2, 1/2] fw_env: add redundant env support for MTD_ABSENT Tom Rini
0 siblings, 2 replies; 3+ messages in thread
From: Luka Perkov @ 2013-08-29 22:56 UTC (permalink / raw)
To: u-boot
From: Oliver Metz <oliver@freetz.org>
Signed-off-by: Oliver Metz <oliver@freetz.org>
Tested-by: Luka Perkov <luka@openwrt.org>
---
v1 -> v2:
* correct spelling of redundant
tools/env/fw_env.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index 44607b1..65be5f3 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -1136,6 +1136,9 @@ int fw_env_open(void)
} else if (DEVTYPE(dev_current) == MTD_UBIVOLUME &&
DEVTYPE(!dev_current) == MTD_UBIVOLUME) {
environment.flag_scheme = FLAG_INCREMENTAL;
+ } else if (DEVTYPE(dev_current) == MTD_ABSENT &&
+ DEVTYPE(!dev_current) == MTD_ABSENT) {
+ environment.flag_scheme = FLAG_INCREMENTAL;
} else {
fprintf (stderr, "Incompatible flash types!\n");
return -1;
--
1.8.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [U-Boot] [PATCH v2 2/2] fw_env: fix writing environment for mtd devices
2013-08-29 22:56 [U-Boot] [PATCH v2 1/2] fw_env: add redundant env support for MTD_ABSENT Luka Perkov
@ 2013-08-29 22:56 ` Luka Perkov
2013-09-06 21:25 ` [U-Boot] [U-Boot, v2, 1/2] fw_env: add redundant env support for MTD_ABSENT Tom Rini
1 sibling, 0 replies; 3+ messages in thread
From: Luka Perkov @ 2013-08-29 22:56 UTC (permalink / raw)
To: u-boot
From: Oliver Metz <oliver@freetz.org>
Signed-off-by: Oliver Metz <oliver@freetz.org>
Tested-by: Luka Perkov <luka@openwrt.org>
---
v1 -> v2:
* fix checkpatch.pl warnings
tools/env/fw_env.c | 70 ++++++++++++++++++++++++++++++++----------------------
1 file changed, 42 insertions(+), 28 deletions(-)
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index 65be5f3..577ce2d 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -727,27 +727,39 @@ static int flash_write_buf (int dev, int fd, void *buf, size_t count,
MEMGETBADBLOCK needs 64 bits */
int rc;
- blocklen = DEVESIZE (dev);
+ /*
+ * For mtd devices only offset and size of the environment do matter
+ */
+ if (mtd_type == MTD_ABSENT) {
+ blocklen = count;
+ top_of_range = offset + count;
+ erase_len = blocklen;
+ blockstart = offset;
+ block_seek = 0;
+ write_total = blocklen;
+ } else {
+ blocklen = DEVESIZE(dev);
- top_of_range = ((DEVOFFSET(dev) / blocklen) +
- ENVSECTORS (dev)) * blocklen;
+ top_of_range = ((DEVOFFSET(dev) / blocklen) +
+ ENVSECTORS(dev)) * blocklen;
- erase_offset = (offset / blocklen) * blocklen;
+ erase_offset = (offset / blocklen) * blocklen;
- /* Maximum area we may use */
- erase_len = top_of_range - erase_offset;
+ /* Maximum area we may use */
+ erase_len = top_of_range - erase_offset;
- blockstart = erase_offset;
- /* Offset inside a block */
- block_seek = offset - erase_offset;
+ blockstart = erase_offset;
+ /* Offset inside a block */
+ block_seek = offset - erase_offset;
- /*
- * Data size we actually have to write: from the start of the block
- * to the start of the data, then count bytes of data, and to the
- * end of the block
- */
- write_total = ((block_seek + count + blocklen - 1) /
- blocklen) * blocklen;
+ /*
+ * Data size we actually write: from the start of the block
+ * to the start of the data, then count bytes of data, and
+ * to the end of the block
+ */
+ write_total = ((block_seek + count + blocklen - 1) /
+ blocklen) * blocklen;
+ }
/*
* Support data anywhere within erase sectors: read out the complete
@@ -818,17 +830,18 @@ static int flash_write_buf (int dev, int fd, void *buf, size_t count,
continue;
}
- erase.start = blockstart;
- ioctl (fd, MEMUNLOCK, &erase);
- /* These do not need an explicit erase cycle */
- if (mtd_type != MTD_ABSENT &&
- mtd_type != MTD_DATAFLASH)
- if (ioctl (fd, MEMERASE, &erase) != 0) {
- fprintf (stderr, "MTD erase error on %s: %s\n",
- DEVNAME (dev),
- strerror (errno));
- return -1;
- }
+ if (mtd_type != MTD_ABSENT) {
+ erase.start = blockstart;
+ ioctl(fd, MEMUNLOCK, &erase);
+ /* These do not need an explicit erase cycle */
+ if (mtd_type != MTD_DATAFLASH)
+ if (ioctl(fd, MEMERASE, &erase) != 0) {
+ fprintf(stderr,
+ "MTD erase error on %s: %s\n",
+ DEVNAME(dev), strerror(errno));
+ return -1;
+ }
+ }
if (lseek (fd, blockstart, SEEK_SET) == -1) {
fprintf (stderr,
@@ -847,7 +860,8 @@ static int flash_write_buf (int dev, int fd, void *buf, size_t count,
return -1;
}
- ioctl (fd, MEMLOCK, &erase);
+ if (mtd_type != MTD_ABSENT)
+ ioctl(fd, MEMLOCK, &erase);
processed += blocklen;
block_seek = 0;
--
1.8.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [U-Boot] [U-Boot, v2, 1/2] fw_env: add redundant env support for MTD_ABSENT
2013-08-29 22:56 [U-Boot] [PATCH v2 1/2] fw_env: add redundant env support for MTD_ABSENT Luka Perkov
2013-08-29 22:56 ` [U-Boot] [PATCH v2 2/2] fw_env: fix writing environment for mtd devices Luka Perkov
@ 2013-09-06 21:25 ` Tom Rini
1 sibling, 0 replies; 3+ messages in thread
From: Tom Rini @ 2013-09-06 21:25 UTC (permalink / raw)
To: u-boot
On Fri, Aug 30, 2013 at 12:56:01AM +0200, Luka Perkov wrote:
> From: Oliver Metz <oliver@freetz.org>
>
> Signed-off-by: Oliver Metz <oliver@freetz.org>
> Tested-by: Luka Perkov <luka@openwrt.org>
Applied to u-boot/master along with 2/2, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130906/866de4f9/attachment.pgp>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-09-06 21:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-29 22:56 [U-Boot] [PATCH v2 1/2] fw_env: add redundant env support for MTD_ABSENT Luka Perkov
2013-08-29 22:56 ` [U-Boot] [PATCH v2 2/2] fw_env: fix writing environment for mtd devices Luka Perkov
2013-09-06 21:25 ` [U-Boot] [U-Boot, v2, 1/2] fw_env: add redundant env support for MTD_ABSENT Tom Rini
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.