aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-envtools/patches/115-writing-environment-for-mtd-devices.patch
diff options
context:
space:
mode:
authorLuka Perkov <luka@openwrt.org>2013-08-29 23:06:29 +0000
committerLuka Perkov <luka@openwrt.org>2013-08-29 23:06:29 +0000
commitcdd6361649ea85092d4bd2acd6405203d0d9a0ae (patch)
tree324794ec332bf6d16867a17cd0db9b8de1873580 /package/boot/uboot-envtools/patches/115-writing-environment-for-mtd-devices.patch
parent7fc90889d5481ce0ca26e6119551a5bf99e19886 (diff)
downloadupstream-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.patch106
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;