diff options
author | Luka Perkov <luka@openwrt.org> | 2013-08-29 23:06:29 +0000 |
---|---|---|
committer | Luka Perkov <luka@openwrt.org> | 2013-08-29 23:06:29 +0000 |
commit | cdd6361649ea85092d4bd2acd6405203d0d9a0ae (patch) | |
tree | 324794ec332bf6d16867a17cd0db9b8de1873580 /package/boot/uboot-envtools/patches/115-writing-environment-for-mtd-devices.patch | |
parent | 7fc90889d5481ce0ca26e6119551a5bf99e19886 (diff) | |
download | upstream-cdd6361649ea85092d4bd2acd6405203d0d9a0ae.tar.gz upstream-cdd6361649ea85092d4bd2acd6405203d0d9a0ae.tar.bz2 upstream-cdd6361649ea85092d4bd2acd6405203d0d9a0ae.zip |
uboot-envtools: update to v2013.07
SVN-Revision: 37857
Diffstat (limited to 'package/boot/uboot-envtools/patches/115-writing-environment-for-mtd-devices.patch')
-rw-r--r-- | package/boot/uboot-envtools/patches/115-writing-environment-for-mtd-devices.patch | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/package/boot/uboot-envtools/patches/115-writing-environment-for-mtd-devices.patch b/package/boot/uboot-envtools/patches/115-writing-environment-for-mtd-devices.patch deleted file mode 100644 index 96d0fd9892..0000000000 --- a/package/boot/uboot-envtools/patches/115-writing-environment-for-mtd-devices.patch +++ /dev/null @@ -1,106 +0,0 @@ -tools/fw_env: fix writing environment for mtd devices - -Signed-off-by: Oliver Metz <oliver@freetz.org> ---- - tools/env/fw_env.c | 71 ++++++++++++++++++++++++++++++++---------------------- - 1 file changed, 42 insertions(+), 29 deletions(-) - ---- a/tools/env/fw_env.c -+++ b/tools/env/fw_env.c -@@ -743,27 +743,39 @@ static int flash_write_buf (int dev, int - 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 -@@ -834,17 +846,18 @@ static int flash_write_buf (int dev, int - 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, -@@ -862,8 +875,8 @@ static int flash_write_buf (int dev, int - DEVNAME (dev), strerror (errno)); - return -1; - } -- -- ioctl (fd, MEMLOCK, &erase); -+ if (mtd_type != MTD_ABSENT) -+ ioctl (fd, MEMLOCK, &erase); - - processed += blocklen; - block_seek = 0; |