[Buildroot] [PATCH v3] mfgtools: bump revision to latest uuu version

Gary Bisson bisson.gary at gmail.com
Sat Jun 8 10:53:37 UTC 2019


NXP deprecated the old mfgtools code, also called mfgtools v2 although
the releases were named v0.xx.

It has been replaced by the Universal Update Utility (uuu), also called
mfgtools v3.0 although the releases are named v1.x.yy.

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

Since the old tool has issues building lately, let's switch to the new
one. Note that uuu seems to be cleaner, supports much more features
(i.MX8/8M/8QXP boot, fastboot etc..) and has a better documentation:
https://github.com/NXPmicro/mfgtools/wiki

[from Jorg's patch]
Note, that mfgtools 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 mfgtools version string (preceeded by
"lib", as done in the original gen_ver.sh).

Signed-off-by: Gary Bisson <bisson.gary at gmail.com>
Signed-off-by: Jörg Krause <joerg.krause at embedded.rocks>
---
Changelog v3:
- inclue Jörg's version fix into this patch
- use git rev instead of tag to have the fix to Thomas' build issue
  included:
https://github.com/NXPmicro/mfgtools/commit/646e4d70

Changelog v2:
- update Config.in help text to mention tool version
- update project URL (codeauroraforum doesn't apply to NXP repositories
  now that the Qualcomm merger isn't happening)
- add README.md to license files (like before)
---
 package/mfgtools/Config.in.host | 10 ++++----
 package/mfgtools/mfgtools.hash  |  6 ++---
 package/mfgtools/mfgtools.mk    | 38 ++++++++++------------------
 package/mfgtools/readme.txt     | 45 +++++----------------------------
 4 files changed, 29 insertions(+), 70 deletions(-)

diff --git a/package/mfgtools/Config.in.host b/package/mfgtools/Config.in.host
index 4bbdde38e2..dd4f037b6c 100644
--- a/package/mfgtools/Config.in.host
+++ b/package/mfgtools/Config.in.host
@@ -6,9 +6,9 @@ config BR2_PACKAGE_HOST_MFGTOOLS
 	depends on BR2_arm
 	depends on BR2_HOST_GCC_AT_LEAST_4_8 # needs C++11
 	help
-	  This package contains the Freescale manufacturing tool.
-	  It is designed to program firmware to i.MX boards during
-	  production. The communication is done over USB using the
-	  Freescale UTP protocol.
+	  This package contains the NXP Universal Update Utility
+	  (MFGTools v3) for i.MX boards.
+	  It allows to load a bootloader/kernel/ramdisk over USB SDP
+	  protocol as well as sending commands to flash a storage.
 
-	  https://github.com/codeauroraforum/mfgtools
+	  https://github.com/NXPmicro/mfgtools
diff --git a/package/mfgtools/mfgtools.hash b/package/mfgtools/mfgtools.hash
index 4932a80dba..6b3771d178 100644
--- a/package/mfgtools/mfgtools.hash
+++ b/package/mfgtools/mfgtools.hash
@@ -1,4 +1,4 @@
 # locally computed
-sha256  055d71227d18883d6e8bc9e854c076015f9a7749820a94272e19071bf0b25c89  mfgtools-v0.02.tar.gz
-sha256  2655559a6bb1179eae514f5c7166f4ede4f2453efa9cf4dc3c045cab5d57dede  LICENSE
-sha256  0963b6e5086bf454265b0f57821a02b681d1211e40ad74c310231cb4d94815c9  README.txt
+sha256  4ac9fcbcd0df430afaaa2d520da2a434cfa102a8f7cbf1db831e2c345f9a8642  mfgtools-9360b9c2c7342f1972894cdb14eb3adcc09a47e4.tar.gz
+sha256  cc8d47f7b9260f6669ecd41c24554c552f17581d81ee8fc602c6d23edb8bf495  LICENSE
+sha256  01a4b15843de543b01fb0600eba02248273182bcf11da60d2d7736440f0995b6  README.md
diff --git a/package/mfgtools/mfgtools.mk b/package/mfgtools/mfgtools.mk
index e4663a8af9..fbcca08749 100644
--- a/package/mfgtools/mfgtools.mk
+++ b/package/mfgtools/mfgtools.mk
@@ -4,31 +4,21 @@
 #
 ################################################################################
 
-MFGTOOLS_VERSION = v0.02
-MFGTOOLS_SITE = $(call github,codeauroraforum,mfgtools,$(MFGTOOLS_VERSION))
-MFGTOOLS_SUBDIR = MfgToolLib
-MFGTOOLS_LICENSE = BSD-3-Clause or CPOL
-MFGTOOLS_LICENSE_FILES = LICENSE README.txt
-HOST_MFGTOOLS_DEPENDENCIES = host-libusb
+MFGTOOLS_VERSION = 9360b9c2c7342f1972894cdb14eb3adcc09a47e4
+MFGTOOLS_SITE = $(call github,NXPmicro,mfgtools,$(MFGTOOLS_VERSION))
+MFGTOOLS_LICENSE = BSD-3-Clause
+MFGTOOLS_LICENSE_FILES = LICENSE README.md
+HOST_MFGTOOLS_DEPENDENCIES = host-libusb host-bzip2 host-libzip host-zlib
 
-HOST_MFGTOOLS_CFLAGS = \
-	$(HOST_CFLAGS) $(HOST_LDFLAGS) -std=c++11 -lpthread \
-	-L$(@D)/MfgToolLib -lMfgToolLib -I$(@D)/MfgToolLib \
-	-lusb-1.0 -I$(HOST_DIR)/include/libusb-1.0 \
-	-fpermissive -Wno-write-strings
-
-define HOST_MFGTOOLS_CLI_BUILD
-	$(HOST_CONFIGURE_OPTS) $(MAKE) CC="$(HOSTCXX)" \
-		CFLAGS="$(HOST_MFGTOOLS_CFLAGS)" -C $(@D)/TestPrgm
-endef
-
-HOST_MFGTOOLS_POST_BUILD_HOOKS += HOST_MFGTOOLS_CLI_BUILD
-
-define HOST_MFGTOOLS_INSTALL_CMDS
-	$(INSTALL) -D -m 755 $(@D)/MfgToolLib/libMfgToolLib.so \
-		$(HOST_DIR)/lib/libMfgToolLib.so
-	$(INSTALL) -D -m 755 $(@D)/TestPrgm/mfgtoolcli \
-		$(HOST_DIR)/bin/mfgtoolcli
+# 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_MFGTOOLS_OVERWRITE_GEN_VER_SH
+        echo '#!/bin/sh' > $(@D)/libuuu/gen_ver.sh
+        echo 'echo "#define GIT_VERSION \"lib$(MFGTOOLS_VERSION)\"" > $$1' >> $(@D)/libuuu/gen_ver.sh
 endef
+HOST_MFGTOOLS_POST_PATCH_HOOKS += HOST_MFGTOOLS_OVERWRITE_GEN_VER_SH
 
 $(eval $(host-cmake-package))
diff --git a/package/mfgtools/readme.txt b/package/mfgtools/readme.txt
index 320e6ec493..8a916d1cae 100644
--- a/package/mfgtools/readme.txt
+++ b/package/mfgtools/readme.txt
@@ -18,45 +18,16 @@ CONFIG_USB_MASS_STORAGE=y
 CONFIG_FSL_UTP=y
 CONFIG_MMC_BLOCK_MINORS=16
 
-2. Go into the output and create the necessary folders
+2. Run the MfgTools (now called uuu) client to boot the board from USB:
 
-$ cd output
-$ mkdir -p "Profiles/Linux/OS Firmware/firmware"
+$ ./output/host/bin/uuu output/images/u-boot.imx
 
-3. Create your XML update script named ucl2.xml
+At this point you can either flash your kernel and rootfs image directly from
+U-Boot or use commands in order to load your ramdisk and execute commands from
+Linux OS.
 
-You can find a sample XML at:
-
-$ wget https://storage.googleapis.com/boundarydevices.com/ucl2.xml \
-  -O Profiles/Linux/OS\ Firmware/ucl2.xml
-
-4. Copy the U-Boot, Kernel and initramfs images to the appropriate
-folder
-
-$ cp images/u-boot.imx images/zImage images/imx6q-sabrelite.dtb \
-  images/rootfs.cpio.uboot Profiles/Linux/OS\ Firmware/firmware/
-
-5. Copy the prebuilt binaries to be flashed
-
-Depending on your ucl2.xml file, the sample doesn't flash anything.
-
-6. Run the MfgTools client:
-
-$ ./host/bin/mfgtoolcli -l mmc -s uboot_defconfig=imx \
-  -s dtbname=imx6q-sabrelite.dtb -s initramfs=rootfs.cpio.uboot \
-  -s mmc=1 -p 1
-
-For more information about the tools options, please read the
-"Manufacturing Tool V2 Quick Start Guide.docx" documentation contained
-in every mfgtools package from NXP website[1].
-
-Note: All the above commands require your Linux host user to have
-permissions to access the USB devices. Please make sure to have udev
-rules that allow the user to communicate with the BootROM IDs
-(Freescale USB recovery) as well as the one used for the UTP Linux
-image (0x066F:0x37FF).  Using 'sudo' in front of the mfgtoolcli
-command would also grant you the necessary permission but it is *not*
-recommended.
+For more information about the tools options, please read this wiki:
+https://github.com/NXPmicro/mfgtools/wiki
 
 Also, if your U-Boot environment doesn't include mfgtools bootargs,
 make sure to set the following:
@@ -65,5 +36,3 @@ setenv bootargs "console=${console},${baudrate} g_mass_storage.stall=0 \
 	g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F \
 	g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=\"\" \
 	g_mass_storage.file=/fat"
-
-[1] http://www.nxp.com/products/software-and-tools/software-development-tools/i.mx-software-and-tools/i.mx-6-series-software-and-development-tool-resources:IMX6_SW
-- 
2.20.1




More information about the buildroot mailing list