[Buildroot] [PATCH 1/2] package/imx-uuu: new host package

Jörg Krause joerg.krause at embedded.rocks
Thu Jan 9 10:02:55 UTC 2020


NXP deprecated the old mfgtools code. It has been replaced by the
Universal Update Utility (uuu), also called mfgtools v3.0 although
the releases are named v1.x.yy, which is quite confusing.

This new tool actually resides in the same repository in the master
branch whereas the old one is now in a 'linux' branch.

The new tool uuu is a completely different tool than the old mfgtools.
This also means, that existing mfgtools scripts will not work with the
uuu tool.

Therefore, it has been decided to create a new package imx-uuu [1].

Note, that uuu uses git to define a version string `GIT_VERSION`.
It does so even when building from a source tarball (automatically
generated by github). The problem is, that git provides the version
information of Buildroot and mfgtools uses this version information to
do a runtime check to detect outdated command list scripts.

To fix this, we overwrite gen_ver.sh with something that simply prints a
define for `GIT_VERSION` with the uuu version string (preceeded by
"lib", as done in the original gen_ver.sh).

[1] http://patchwork.ozlabs.org/patch/1112411/

Signed-off-by: Jörg Krause <joerg.krause at embedded.rocks>
---
 DEVELOPERS                     |  1 +
 package/Config.in.host         |  1 +
 package/imx-uuu/Config.in.host | 12 ++++++++++++
 package/imx-uuu/imx-uuu.hash   |  3 +++
 package/imx-uuu/imx-uuu.mk     | 24 ++++++++++++++++++++++++
 5 files changed, 41 insertions(+)
 create mode 100644 package/imx-uuu/Config.in.host
 create mode 100644 package/imx-uuu/imx-uuu.hash
 create mode 100644 package/imx-uuu/imx-uuu.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 1f86c256a5..e1d63e17d2 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1306,6 +1306,7 @@ F:	package/augeas/
 F:	package/bluez-alsa/
 F:	package/caps/
 F:	package/freescale-imx/imx-alsa-plugins/
+F:	package/imx-uuu/
 F:	package/libopusenc/
 F:	package/libupnpp/
 F:	package/luv/
diff --git a/package/Config.in.host b/package/Config.in.host
index 62e860d7c3..de0cdbae49 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -33,6 +33,7 @@ menu "Host utilities"
 	source "package/imagemagick/Config.in.host"
 	source "package/imx-mkimage/Config.in.host"
 	source "package/imx-usb-loader/Config.in.host"
+	source "package/imx-uuu/Config.in.host"
 	source "package/jq/Config.in.host"
 	source "package/jsmin/Config.in.host"
 	source "package/libp11/Config.in.host"
diff --git a/package/imx-uuu/Config.in.host b/package/imx-uuu/Config.in.host
new file mode 100644
index 0000000000..6121d5435f
--- /dev/null
+++ b/package/imx-uuu/Config.in.host
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_HOST_IMX_UUU
+	bool "host imx-uuu"
+	depends on BR2_arm
+	help
+	  Freescale/NXP i.MX Chip image deploy tools (formerly
+	  mfgtools).
+
+	  It is designed to program firmware to i.MX boards during
+	  production. The communication is done over USB using the
+	  Freescale UTP protocol.
+
+	  https://github.com/NXPmicro/mfgtools
diff --git a/package/imx-uuu/imx-uuu.hash b/package/imx-uuu/imx-uuu.hash
new file mode 100644
index 0000000000..eaf951b91a
--- /dev/null
+++ b/package/imx-uuu/imx-uuu.hash
@@ -0,0 +1,3 @@
+# locally computed
+sha256  0377bb26e4eab20e32f2daaecaa9394048ab4443f5b517acde6c27e2dc5310d5  imx-uuu-1.3.102.tar.gz
+sha256  cc8d47f7b9260f6669ecd41c24554c552f17581d81ee8fc602c6d23edb8bf495  LICENSE
diff --git a/package/imx-uuu/imx-uuu.mk b/package/imx-uuu/imx-uuu.mk
new file mode 100644
index 0000000000..aef53bd6c3
--- /dev/null
+++ b/package/imx-uuu/imx-uuu.mk
@@ -0,0 +1,24 @@
+################################################################################
+#
+# imx-uuu
+#
+################################################################################
+
+IMX_UUU_VERSION = 1.3.102
+IMX_UUU_SITE = $(call github,NXPmicro,mfgtools,uuu_$(IMX_UUU_VERSION))
+IMX_UUU_LICENSE = BSD-3-Clause
+IMX_UUU_LICENSE_FILES = LICENSE
+HOST_IMX_UUU_DEPENDENCIES = host-libusb host-libzip host-zlib
+
+# Version string generation is broken in mfgtools as it relies on git, even
+# when building from a source tarball. The version string is used by mfgtools
+# do a runtime check to detect outdated command list scripts. We overwrite
+# gen_ver.sh with something that simply prints a define for GIT_VERSION with
+# the mfgtools version (preceeded by "lib", as done in the original gen_ver.sh).
+define HOST_IMX_UUU_OVERWRITE_GEN_VER_SH
+        echo '#!/bin/sh' > $(@D)/libuuu/gen_ver.sh
+        echo 'echo "#define GIT_VERSION \"lib$(IMX_UUU_VERSION)\"" > $$1' >> $(@D)/libuuu/gen_ver.sh
+endef
+HOST_IMX_UUU_POST_PATCH_HOOKS += HOST_IMX_UUU_OVERWRITE_GEN_VER_SH
+
+$(eval $(host-cmake-package))
-- 
2.24.1



More information about the buildroot mailing list