uboot-envtools: update to 2018.03
authorLuis Araneda <luaraneda@gmail.com>
Fri, 6 Apr 2018 14:23:34 +0000 (11:23 -0300)
committerHauke Mehrtens <hauke@hauke-m.de>
Wed, 18 Apr 2018 21:59:32 +0000 (23:59 +0200)
Several changes has been made:

+ AES support has been removed by
  upstream commit c6831c7 (2017-11-14)
  [remove patch "200-fw_env_no_aes.patch"]

+ Support for UBI volumes has beed added by
  upstream commit 34255b9 (2017-11-15)
  [remove patch "300-support-env-in-ubivol-chardev.patch"]

+ A command line argument has beed added ("-c") to manually indicate
  the location of the environment configuration file

Also, patch "400-u-boot-2015.10-stdint.patch" is no longer
necessary, and the config option to enable UBI support has
been removed.

Size comparisons:

fw_printenv size:
Target    Before         After
ar71xx    15,189 bytes   18,133 bytes (+2,944 bytes)
ipq40xx   20,873 bytes   20,987 bytes (+114 bytes)
mvebu     20,881 bytes   20,991 bytes (+110 bytes)
ramips    15,128 bytes   18,072 bytes (+2,944 bytes)

OPKG package size:
Target    Before         After
ar71xx    11,309 bytes   12,875 bytes (+1,566 bytes)
ipq40xx   11,772 bytes   13,299 bytes (+1,527 bytes)
mvebu     11,609 bytes   13,114 bytes (+1,505 bytes)
ramips    10,975 bytes   12,503 bytes (+1,528 bytes)

Compile tested: ipq40xx (musl, glibc, gcc5-musl), ar71xx, mvebu, ramips
Run tested: ipq40xx (ASUS RT-AC58U)

Signed-off-by: Luis Araneda <luaraneda@gmail.com>
package/boot/uboot-envtools/Config.in [deleted file]
package/boot/uboot-envtools/Makefile
package/boot/uboot-envtools/patches/001-compile.patch
package/boot/uboot-envtools/patches/200-fw_env_no_aes.patch [deleted file]
package/boot/uboot-envtools/patches/300-support-env-in-ubivol-chardev.patch [deleted file]
package/boot/uboot-envtools/patches/400-u-boot-2015.10-stdint.patch [deleted file]

diff --git a/package/boot/uboot-envtools/Config.in b/package/boot/uboot-envtools/Config.in
deleted file mode 100644 (file)
index 8f0078f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-config UBOOT_ENVTOOLS_UBI
-       bool "Support environment in UBI volume"
-       depends on PACKAGE_uboot-envtools
-       default TARGET_oxnas
-       help
-               Add support for reading and writing U-Boot environment
-               stored in UBI volume(s).
-
-               Increases binary size by about 8 kB
index 442cf3fd834972e907b284b6a2e14fdde7695d6e..c8eafbe664f3e1eca6dcc0fdd7b0d54ec7c92828 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uboot-envtools
 PKG_DISTNAME:=u-boot
-PKG_VERSION:=2015.10
+PKG_VERSION:=2018.03
 PKG_RELEASE:=1
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/u-boot-$(PKG_VERSION)
@@ -17,7 +17,7 @@ PKG_SOURCE:=$(PKG_DISTNAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=\
        http://mirror2.openwrt.org/sources \
        ftp://ftp.denx.de/pub/u-boot
-PKG_HASH:=bdc68d5f9455ad933b059c735d983f2c8b6b552dafb062e5ff1444f623021955
+PKG_HASH:=7e7477534409d5368eb1371ffde6820f0f79780a1a1f676161c48442cb303dfd
 
 PKG_BUILD_DEPENDS:=fstools
 
@@ -42,13 +42,10 @@ define Package/uboot-envtools/description
  This package includes tools to read and modify U-Boot bootloader environment.
 endef
 
-define Package/uboot-envtools/config
-       source "$(SOURCE)/Config.in"
-endef
-
 define Build/Configure
-       touch $(PKG_BUILD_DIR)/include/config.mk
        touch $(PKG_BUILD_DIR)/include/config.h
+       mkdir -p $(PKG_BUILD_DIR)/include/config
+       touch $(PKG_BUILD_DIR)/include/config/auto.conf
        mkdir -p $(PKG_BUILD_DIR)/include/generated
        touch $(PKG_BUILD_DIR)/include/generated/autoconf.h
 endef
@@ -59,10 +56,9 @@ define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
                CROSS_COMPILE="$(TARGET_CROSS)" \
                TARGET_CFLAGS="$(TARGET_CFLAGS)" \
-               UBI="$(CONFIG_UBOOT_ENVTOOLS_UBI)" \
-               dot-config=0 \
                HOSTLDFLAGS= \
-               env
+               no-dot-config-targets=envtools \
+               envtools
 endef
 
 define Package/uboot-envtools/conffiles
index 17059797650fd7ff080098699db8cfc5b3dd4d57..f7ec9130d6f49ac9895f10e593530a241b2c316d 100644 (file)
@@ -2,7 +2,7 @@
 +++ b/tools/env/Makefile
 @@ -10,6 +10,10 @@
  # with "CC" here for the maximum code reuse of scripts/Makefile.host.
- HOSTCC = $(CC)
override HOSTCC = $(CC)
  
 +ifneq ($(TARGET_CFLAGS),)
 +HOSTCFLAGS = $(TARGET_CFLAGS)
diff --git a/package/boot/uboot-envtools/patches/200-fw_env_no_aes.patch b/package/boot/uboot-envtools/patches/200-fw_env_no_aes.patch
deleted file mode 100644 (file)
index 9c8681f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/tools/env/fw_env.c
-+++ b/tools/env/fw_env.c
-@@ -246,7 +246,7 @@ int fw_printenv (int argc, char *argv[])
-       int i, n_flag;
-       int rc = 0;
--      if (argc >= 2 && strcmp(argv[1], "-a") == 0) {
-+      if (0 && argc >= 2 && strcmp(argv[1], "-a") == 0) {
-               if (argc < 3) {
-                       fprintf(stderr,
-                               "## Error: '-a' option requires AES key\n");
-@@ -325,7 +325,7 @@ int fw_printenv (int argc, char *argv[])
- int fw_env_close(void)
- {
-       int ret;
--      if (aes_flag) {
-+      if (0 && aes_flag) {
-               ret = env_aes_cbc_crypt(environment.data, 1);
-               if (ret) {
-                       fprintf(stderr,
-@@ -1223,7 +1223,7 @@ int fw_env_open(void)
-       crc0 = crc32 (0, (uint8_t *) environment.data, ENV_SIZE);
--      if (aes_flag) {
-+      if (0 && aes_flag) {
-               ret = env_aes_cbc_crypt(environment.data, 0);
-               if (ret)
-                       return ret;
-@@ -1280,7 +1280,7 @@ int fw_env_open(void)
-               crc1 = crc32 (0, (uint8_t *) redundant->data, ENV_SIZE);
--              if (aes_flag) {
-+              if (0 && aes_flag) {
-                       ret = env_aes_cbc_crypt(redundant->data, 0);
-                       if (ret)
-                               return ret;
diff --git a/package/boot/uboot-envtools/patches/300-support-env-in-ubivol-chardev.patch b/package/boot/uboot-envtools/patches/300-support-env-in-ubivol-chardev.patch
deleted file mode 100644 (file)
index 75d3804..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From 6e2630a0fc872d0db34157972f6dc3941f6d66dd Mon Sep 17 00:00:00 2001
-From: Daniel Golle <daniel@makrotopia.org>
-Date: Mon, 19 May 2014 21:38:01 +0200
-Subject: [PATCH] tools/env: add support for env in ubi volume chardev
-
-Signed-off-by: Daniel Golle <daniel@makrotopia.org>
----
- tools/env/Makefile |  5 ++++
- tools/env/fw_env.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++-------
- 2 files changed, 71 insertions(+), 10 deletions(-)
-
---- a/tools/env/Makefile
-+++ b/tools/env/Makefile
-@@ -24,6 +24,13 @@ ifeq ($(MTD_VERSION),old)
- HOST_EXTRACFLAGS += -DMTD_OLD
- endif
-+ifeq ($(UBI),y)
-+HOST_EXTRACFLAGS += -DUBI
-+HOST_LOADLIBES = "-Wl,--gc-sections,-lubi-utils"
-+else
-+HOST_LOADLIBES = "-Wl,--gc-sections"
-+endif
-+
- always := fw_printenv
- hostprogs-y := fw_printenv
---- a/tools/env/fw_env.c
-+++ b/tools/env/fw_env.c
-@@ -31,6 +31,9 @@
- # include <mtd/mtd-user.h>
- #endif
-+#ifdef UBI
-+# include <libubi.h>
-+#endif
- #include "fw_env.h"
- #include <aes.h>
-@@ -811,6 +814,11 @@ static int flash_write_buf (int dev, int
-       off_t top_of_range;     /* end of the last block we may use */
-       loff_t blockstart;      /* running start of the current block -
-                                  MEMGETBADBLOCK needs 64 bits */
-+#ifdef UBI
-+      libubi_t *libubi = NULL;/* pointer to libubi struct */
-+#else
-+      void *libubi = NULL;
-+#endif
-       int rc;
-       /*
-@@ -916,7 +924,30 @@ static int flash_write_buf (int dev, int
-                       continue;
-               }
--              if (mtd_type != MTD_ABSENT) {
-+#ifdef UBI
-+              if (mtd_type == MTD_UBIVOLUME) {
-+                      struct ubi_vol_info volinfo;
-+                      libubi = libubi_open();
-+                      if (libubi)
-+                              rc = ubi_get_vol_info(libubi,
-+                                      DEVNAME(dev_current), &volinfo);
-+                      if (libubi && !rc) {
-+                              erasesize = volinfo.leb_size;
-+                              int leb = blockstart / erasesize;
-+                              if (volinfo.type != UBI_STATIC_VOLUME)
-+                                      rc = ubi_leb_change_start(libubi, fd,
-+                                              leb, erasesize);
-+                              else
-+                                      rc = ubi_update_start(libubi, fd,
-+                                              erasesize);
-+                      }
-+                      if (libubi && rc) {
-+                              libubi_close(libubi);
-+                              libubi = NULL;
-+                      }
-+              }
-+#endif
-+              if (!libubi && mtd_type != MTD_ABSENT) {
-                       erase.start = blockstart;
-                       ioctl(fd, MEMUNLOCK, &erase);
-                       /* These do not need an explicit erase cycle */
-@@ -933,7 +964,8 @@ static int flash_write_buf (int dev, int
-                       fprintf (stderr,
-                                "Seek error on %s: %s\n",
-                                DEVNAME (dev), strerror (errno));
--                      return -1;
-+                      processed = -1;
-+                      goto out;
-               }
- #ifdef DEBUG
-@@ -943,10 +975,11 @@ static int flash_write_buf (int dev, int
-               if (write (fd, data + processed, erasesize) != erasesize) {
-                       fprintf (stderr, "Write error on %s: %s\n",
-                                DEVNAME (dev), strerror (errno));
--                      return -1;
-+                      processed = -1;
-+                      goto out;
-               }
--              if (mtd_type != MTD_ABSENT)
-+              if (!libubi && mtd_type != MTD_ABSENT)
-                       ioctl(fd, MEMLOCK, &erase);
-               processed  += erasesize;
-@@ -957,6 +990,11 @@ static int flash_write_buf (int dev, int
-       if (write_total > count)
-               free (data);
-+out:
-+#ifdef UBI
-+      if (libubi)
-+              libubi_close(libubi);
-+#endif
-       return processed;
- }
-@@ -1068,12 +1106,8 @@ static int flash_read (int fd)
-       if (S_ISCHR(st.st_mode)) {
-               rc = ioctl(fd, MEMGETINFO, &mtdinfo);
--              if (rc < 0) {
--                      fprintf(stderr, "Cannot get MTD information for %s\n",
--                              DEVNAME(dev_current));
--                      return -1;
--              }
--              if (mtdinfo.type != MTD_NORFLASH &&
-+              if (!rc &&
-+                  mtdinfo.type != MTD_NORFLASH &&
-                   mtdinfo.type != MTD_NANDFLASH &&
-                   mtdinfo.type != MTD_DATAFLASH &&
-                   mtdinfo.type != MTD_UBIVOLUME) {
-@@ -1081,6 +1115,28 @@ static int flash_read (int fd)
-                                mtdinfo.type, DEVNAME(dev_current));
-                       return -1;
-               }
-+#ifdef UBI
-+              if (rc) {
-+                      libubi_t *libubi;
-+                      struct ubi_vol_info volinfo;
-+                      libubi = libubi_open();
-+                      if (!libubi)
-+                              return -ENOMEM;
-+
-+                      rc = ubi_get_vol_info(libubi, DEVNAME(dev_current),
-+                                              &volinfo);
-+                      if (rc) {
-+                              libubi_close(libubi);
-+                              return -ENODEV;
-+                      }
-+                      memset(&mtdinfo, 0, sizeof(mtdinfo));
-+                      mtdinfo.type = MTD_UBIVOLUME;
-+                      mtdinfo.size = volinfo.data_bytes;
-+                      mtdinfo.erasesize = volinfo.leb_size;
-+                      mtdinfo.writesize = volinfo.leb_size;
-+                      libubi_close(libubi);
-+              }
-+#endif
-       } else {
-               memset(&mtdinfo, 0, sizeof(mtdinfo));
-               mtdinfo.type = MTD_ABSENT;
diff --git a/package/boot/uboot-envtools/patches/400-u-boot-2015.10-stdint.patch b/package/boot/uboot-envtools/patches/400-u-boot-2015.10-stdint.patch
deleted file mode 100644 (file)
index 395674f..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naur u-boot-2015.10.orig/tools/env/fw_env.c u-boot-2015.10/tools/env/fw_env.c
---- u-boot-2015.10.orig/tools/env/fw_env.c     2016-06-24 12:42:31.152391850 +0200
-+++ u-boot-2015.10/tools/env/fw_env.c  2016-06-24 12:42:59.080391754 +0200
-@@ -21,7 +21,8 @@
- #include <sys/types.h>
- #include <sys/ioctl.h>
- #include <sys/stat.h>
--#include <unistd.h>
-+#include <unistd.h>
-+#include <stdint.h>
- #ifdef MTD_OLD
- # include <stdint.h>