Another possible work-around is to use sb_loader.exe which is a simple standalone download program. The downside is that sb_loader doesn't implement the UTP protocol that mfgtool uses to push commands and data across the link. I was looking at replacing the usb mass storage gadget and UTP daemon with the ethernet over USB g_ether gadget and using ssh/scp over that link. This would require a new kernel build and new ramdisk image. You might also modify the disk image of the ramdisk and pre-load some scripts on it to do things. In any case I haven't got that part going yet.
sb_loader.exe is on the freescale forum in this thread:
sb_loader.exe not supported for imx6 solo
(The version linked at the end does work on the Solo)
My ucl2.xml for loading the kernel looks like so:
<CMD state="BootStrap" type="boot" body="BootStrap" file ="u-boot-ct200.imx" >Loading U-boot</CMD>
<CMD state="BootStrap" type="load" file="uImage" address="0x12000000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Kernel.</CMD>
<CMD state="BootStrap" type="load" file="initramfs.cpio.gz.uboot" address="0x12C00000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Initramfs.</CMD>
<CMD state="BootStrap" type="load" file="imx6dl-ct200-ldo.dtb" address="0x18000000" loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Device Tree.</CMD>
<CMD state="BootStrap" type="jump" >Jumping to OS image.</CMD>
To replicate this with sb_loader I do the following:
on a linux machine:
run "mkimage -l u-boot-ct200.imx | grep Entry" to get the entry address of the u-boot. For me it was 0x17800000. This is used as the parameter for the sb_loader -exec option below
on windows:
REM load u-boot image with register setup script
sb_loader.exe -nojump -f u-boot-ct200.imx
REM load linux kernel image
sb_loader.exe -trans 0x12000000 -f uImage
REM load initial RAM filesystem
sb_loader.exe -trans 0x12C00000 -f initramfs.cpio.gz.uboot
REM load device tree
sb_loader.exe -trans 0x18000000 -f imx6dl-ct200-ldo.dtb
REM start u-boot
sb_loader.exe -exec 0x17800000
after the -exec command the u-boot ran and booted linux up until it was waiting for a command to come across the link for the Freescale UTP protocol.