summaryrefslogtreecommitdiff
path: root/package/boot/uboot-envtools/patches/0002-fw_env-fix-writing-environment-for-mtd-devices.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/boot/uboot-envtools/patches/0002-fw_env-fix-writing-environment-for-mtd-devices.patch')
-rw-r--r--package/boot/uboot-envtools/patches/0002-fw_env-fix-writing-environment-for-mtd-devices.patch114
1 files changed, 0 insertions, 114 deletions
diff --git a/package/boot/uboot-envtools/patches/0002-fw_env-fix-writing-environment-for-mtd-devices.patch b/package/boot/uboot-envtools/patches/0002-fw_env-fix-writing-environment-for-mtd-devices.patch
deleted file mode 100644
index ebfe0e4..0000000
--- a/package/boot/uboot-envtools/patches/0002-fw_env-fix-writing-environment-for-mtd-devices.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From: Oliver Metz <oliver@freetz.org>
-Subject: [PATCH v2 2/2] fw_env: fix writing environment for mtd devices
-
-Signed-off-by: Oliver Metz <oliver@freetz.org>
-Tested-by: Luka Perkov <luka@openwrt.org>
----
-
-v1 -> v2:
- * fix checkpatch.pl warnings
-
-http://lists.denx.de/pipermail/u-boot/2013-August/161695.html
-http://patchwork.ozlabs.org/patch/270994/
-
- tools/env/fw_env.c | 70 ++++++++++++++++++++++++++++++++----------------------
- 1 file changed, 42 insertions(+), 28 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,
-@@ -863,7 +876,8 @@ static int flash_write_buf (int dev, int
- return -1;
- }
-
-- ioctl (fd, MEMLOCK, &erase);
-+ if (mtd_type != MTD_ABSENT)
-+ ioctl(fd, MEMLOCK, &erase);
-
- processed += blocklen;
- block_seek = 0;