Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 0/2] mfgtools: new package
@ 2016-10-26 16:08 Gary Bisson
  2016-10-26 16:08 ` [Buildroot] [PATCH v2 1/2] " Gary Bisson
  2016-10-26 16:08 ` [Buildroot] [PATCH v2 2/2] DEVELOPERS: add entry for mfgtools Gary Bisson
  0 siblings, 2 replies; 5+ messages in thread
From: Gary Bisson @ 2016-10-26 16:08 UTC (permalink / raw)
  To: buildroot

Hi,

Here is the v2 with the following modifications:
- Use host-cmake-package and build the CLI as a post build hook
- Fix licenses: now BSD-3c and CPOL
- Fix MFGTOOLS_CFLAGS and rename it HOST_MFGTOOLS_CFLAGS
- Use HOST_LDFLAGS instead of specifyin the rpath manually
- Fix install commands to have the full destination path
- Add readme.txt file
- Add a follow-up patch to add the package to DEVELOPERS

Thomas, I will send a cmake patch upstream later, hope that's ok.

Frank, I did try both the mfgtools files from NXP on a SabreSD and my own
sample file on a SabreLite, it worked on both. Hope you'll be able to try it.

Note that I've put some effort into the readme.txt not to forget the steps ;)

Regards,
Gary

Gary Bisson (2):
  mfgtools: new package
  DEVELOPERS: add entry for mfgtools

 DEVELOPERS                      |  1 +
 package/Config.in.host          |  1 +
 package/mfgtools/Config.in.host | 10 ++++++++
 package/mfgtools/mfgtools.hash  |  2 ++
 package/mfgtools/mfgtools.mk    | 34 +++++++++++++++++++++++++
 package/mfgtools/readme.txt     | 56 +++++++++++++++++++++++++++++++++++++++++
 6 files changed, 104 insertions(+)
 create mode 100644 package/mfgtools/Config.in.host
 create mode 100644 package/mfgtools/mfgtools.hash
 create mode 100644 package/mfgtools/mfgtools.mk
 create mode 100644 package/mfgtools/readme.txt

-- 
2.9.3

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v2 1/2] mfgtools: new package
  2016-10-26 16:08 [Buildroot] [PATCH v2 0/2] mfgtools: new package Gary Bisson
@ 2016-10-26 16:08 ` Gary Bisson
  2016-10-26 19:28   ` Thomas Petazzoni
  2016-10-26 16:08 ` [Buildroot] [PATCH v2 2/2] DEVELOPERS: add entry for mfgtools Gary Bisson
  1 sibling, 1 reply; 5+ messages in thread
From: Gary Bisson @ 2016-10-26 16:08 UTC (permalink / raw)
  To: buildroot

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.

The project is maintained on NXPMicro Github repository:
https://github.com/NXPmicro/mfgtools

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
Changelog v1 -> v2:
- Use host-cmake-package and build the CLI as a post build hook
- Fix licenses: now BSD-3c and CPOL
- Fix MFGTOOLS_CFLAGS and rename it HOST_MFGTOOLS_CFLAGS
- Use HOST_LDFLAGS instead of specifyin the rpath manually
- Fix install commands to have the full destination path
- Add readme.txt file
---
 package/Config.in.host          |  1 +
 package/mfgtools/Config.in.host | 10 ++++++++
 package/mfgtools/mfgtools.hash  |  2 ++
 package/mfgtools/mfgtools.mk    | 34 +++++++++++++++++++++++++
 package/mfgtools/readme.txt     | 56 +++++++++++++++++++++++++++++++++++++++++
 5 files changed, 103 insertions(+)
 create mode 100644 package/mfgtools/Config.in.host
 create mode 100644 package/mfgtools/mfgtools.hash
 create mode 100644 package/mfgtools/mfgtools.mk
 create mode 100644 package/mfgtools/readme.txt

diff --git a/package/Config.in.host b/package/Config.in.host
index 1140c70..e33cbb5 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -22,6 +22,7 @@ menu "Host utilities"
 	source "package/jq/Config.in.host"
 	source "package/jsmin/Config.in.host"
 	source "package/lpc3250loader/Config.in.host"
+	source "package/mfgtools/Config.in.host"
 	source "package/mke2img/Config.in.host"
 	source "package/mkpasswd/Config.in.host"
 	source "package/mtd/Config.in.host"
diff --git a/package/mfgtools/Config.in.host b/package/mfgtools/Config.in.host
new file mode 100644
index 0000000..8bba9e2
--- /dev/null
+++ b/package/mfgtools/Config.in.host
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_HOST_MFGTOOLS
+	bool "host mfgtools"
+	depends on BR2_arm
+	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.
+
+	  https://github.com/NXPmicro/mfgtools
diff --git a/package/mfgtools/mfgtools.hash b/package/mfgtools/mfgtools.hash
new file mode 100644
index 0000000..e73a7fa
--- /dev/null
+++ b/package/mfgtools/mfgtools.hash
@@ -0,0 +1,2 @@
+# locally computed
+sha256  6ce93a33c269282df305cf7e517d2d14fde78203537d8ea75b064966afe48464  mfgtools-b219fc219a35c365010897ed093c40750f8cdac6.tar.gz
diff --git a/package/mfgtools/mfgtools.mk b/package/mfgtools/mfgtools.mk
new file mode 100644
index 0000000..fcc28ab
--- /dev/null
+++ b/package/mfgtools/mfgtools.mk
@@ -0,0 +1,34 @@
+################################################################################
+#
+# mfgtools
+#
+################################################################################
+
+MFGTOOLS_VERSION = b219fc219a35c365010897ed093c40750f8cdac6
+MFGTOOLS_SITE = $(call github,NXPmicro,mfgtools,$(MFGTOOLS_VERSION))
+MFGTOOLS_SUBDIR = MfgToolLib
+MFGTOOLS_LICENSE = BSD-3c or CPOL
+MFGTOOLS_LICENSE_FILES = LICENSE
+HOST_MFGTOOLS_DEPENDENCIES = host-cmake host-libusb
+
+HOST_MFGTOOLS_CFLAGS = \
+	$(HOST_CFLAGS) $(HOST_LDFLAGS) -std=c++11 -lpthread \
+	-L$(@D)/MfgToolLib -lMfgToolLib -I$(@D)/MfgToolLib \
+	-lusb-1.0 -I$(HOST_DIR)/usr/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)/usr/lib/libMfgToolLib.so
+	$(INSTALL) -D -m 755 $(@D)/TestPrgm/mfgtoolcli \
+		$(HOST_DIR)/usr/bin/mfgtoolcli
+endef
+
+$(eval $(host-cmake-package))
diff --git a/package/mfgtools/readme.txt b/package/mfgtools/readme.txt
new file mode 100644
index 0000000..3f25f6e
--- /dev/null
+++ b/package/mfgtools/readme.txt
@@ -0,0 +1,56 @@
+MfgTools How To:
+
+Here is an example on how to use the MfgTools with Buildroot:
+1- Build your mfgtool image:
+   - Make sure to enable the following Buildroot options:
+BR2_PACKAGE_FREESCALE_IMX=y
+BR2_PACKAGE_IMX_UUC=y
+BR2_TARGET_ROOTFS_CPIO=y
+BR2_TARGET_ROOTFS_CPIO_GZIP=y
+BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
+   - Also modify your kernel configuration to have:
+CONFIG_USB_GADGET=y
+CONFIG_USB_MASS_STORAGE=y
+CONFIG_FSL_UTP=y
+CONFIG_MMC_BLOCK_MINORS=16
+
+2- Go into the output and create the necessary folders:
+$ cd output
+$ mkdir -p "Profiles/Linux/OS Firmware/firmware"
+
+3- Create your XML update script named ucl2.xml:
+   - You can find a sample XML here:
+$ wget https://storage.googleapis.com/boundarydevices.com/ucl2.xml \
+  -O Profiles/Linux/OS\ Firmware/ucl2.xml
+
+4- Copy the mfgtools U-Boot, Kernel and initramfs images created:
+$ 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:
+   - Depends on your ucl2.xml file, the sample doesn't flash anything.
+
+6- Execute the MfgTools client:
+$ ./host/usr/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.
+
+Also, if your U-Boot environment doesn't include mfgtools bootargs, make sure
+to set the following:
+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.9.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v2 2/2] DEVELOPERS: add entry for mfgtools
  2016-10-26 16:08 [Buildroot] [PATCH v2 0/2] mfgtools: new package Gary Bisson
  2016-10-26 16:08 ` [Buildroot] [PATCH v2 1/2] " Gary Bisson
@ 2016-10-26 16:08 ` Gary Bisson
  2016-10-26 19:28   ` Thomas Petazzoni
  1 sibling, 1 reply; 5+ messages in thread
From: Gary Bisson @ 2016-10-26 16:08 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
---
 DEVELOPERS | 1 +
 1 file changed, 1 insertion(+)

diff --git a/DEVELOPERS b/DEVELOPERS
index ed89b09..bd791cc 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -531,6 +531,7 @@ F:	configs/nitrogen*
 F:	package/freescale-imx/
 F:	package/gstreamer1/gst1-imx/
 F:	package/libimxvpuapi/
+F:	package/mfgtools/
 F:	package/sshpass/
 
 N:	Geoff Levand <geoff@infradead.org>
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v2 1/2] mfgtools: new package
  2016-10-26 16:08 ` [Buildroot] [PATCH v2 1/2] " Gary Bisson
@ 2016-10-26 19:28   ` Thomas Petazzoni
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2016-10-26 19:28 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 26 Oct 2016 18:08:02 +0200, Gary Bisson wrote:
> 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.
> 
> The project is maintained on NXPMicro Github repository:
> https://github.com/NXPmicro/mfgtools
> 
> Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>

I've applied, with the following changes:

    [Thomas:
     - remove dependency on host-cmake, this is handled by the
       host-cmake-package infrastructure
     - add quotes around $(HOSTCXX)
     - add CPOL.htm to <pkg>_LICENSE_FILES.
     - tweaks to the readme.txt file.]

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v2 2/2] DEVELOPERS: add entry for mfgtools
  2016-10-26 16:08 ` [Buildroot] [PATCH v2 2/2] DEVELOPERS: add entry for mfgtools Gary Bisson
@ 2016-10-26 19:28   ` Thomas Petazzoni
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2016-10-26 19:28 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 26 Oct 2016 18:08:03 +0200, Gary Bisson wrote:
> Signed-off-by: Gary Bisson <gary.bisson@boundarydevices.com>
> ---
>  DEVELOPERS | 1 +
>  1 file changed, 1 insertion(+)

Applied to master, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-10-26 19:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-26 16:08 [Buildroot] [PATCH v2 0/2] mfgtools: new package Gary Bisson
2016-10-26 16:08 ` [Buildroot] [PATCH v2 1/2] " Gary Bisson
2016-10-26 19:28   ` Thomas Petazzoni
2016-10-26 16:08 ` [Buildroot] [PATCH v2 2/2] DEVELOPERS: add entry for mfgtools Gary Bisson
2016-10-26 19:28   ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox