diff mbox series

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

Message ID 20200109100257.91010-1-joerg.krause@embedded.rocks
State Superseded
Headers show
Series [1/2] package/imx-uuu: new host package | expand

Commit Message

Jörg Krause Jan. 9, 2020, 10:02 a.m. UTC
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@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

Comments

Gary Bisson Feb. 10, 2020, 4:10 p.m. UTC | #1
Hi Jorg,

I have some comments on this commit, mainly in the description so
nothing big.

On Thu, Jan 09, 2020 at 11:02:55AM +0100, Jörg Krause wrote:
> 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@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.

Actually this tool doesn't use the UTP at all. It only leverages the SDP
protocol (talking to either the BootROM or U-Boot/SPL) and the Fastboot
protocol from Android.

Let me know if you have any question.

Regards,
Gary
diff mbox series

Patch

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))