MfgTools Howto
==============

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

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
