The mfgtool stops with "No Device Connected" with "Failure Rate: 0%". Running it on WIndows97 64-bit. Created the u-boot and kernel image as per"Manufacturing Tool V2 Linux or Android Firmware Development Guide V2.docx" and use the initramfs.cpio.gz.uboot that comes with mfgtool.
The mfgtool appears to load u-boot, kernel, rootfs, and dtb correctly. Then the log file says "Jump to Ramkernel successfully!" But the tool displays "No Device Connected" with "Failure Rate: 0%". The serial log shows "UTP: Waiting for device to appear". The logs are attached.
What is the error stopping mfgtool from flashing the eMMC?
Original Attachment has been moved to: MfgTool.log.zip
Original Attachment has been moved to: serial_log.txt.zip
Solved! Go to Solution.
Thanks for your answers. Found the problem - my board was in USB host mode and needed to be changed to USB device mode. Now it flashes the eMMC.
I've had a long and difficult struggle to get a working Mfgtool build from Yocto source (Fido) for custom imx6 hardware. Here are some tips:
10. CONFIG_USB_GADGET=y
Thanks for this, but my BIG PROBLEM is that I am using the DEMO files on the MCIMX6Q-SDB and they don't work. What I'm trying to find out is HAS ANYONE got them to work?
You would think the DEMO files with the MfgTool would be successful and have the correct settings.
Any information would be appreciated.
Thanks,
Janet
I just had the same problem and fixed it. So I think I would contribute my experience here.
I read the following thread and I took the OTG USB cable out from the OTG port and used a regular micro USB cable. Now the board is a USB device and enumerated by the host PC. Hope this helps.
Hi,
We have the same problem. We start with loading the U-Boot through the MfgTool and saw some response (as shown on picture) after "Jumping to OS". After this stage the MfgTool stops with "No Device Connected". As I understood you solved this issue in some way. Can you please describe more how to solve this problem? At the end we want to programming the eMMC.
So did anyone ever get an answer on how to go from Host to Device mode? I have an MCIMX6Q-SDB and I'm having the same problem.
Thanks in advance
Thanks for your answers. Found the problem - my board was in USB host mode and needed to be changed to USB device mode. Now it flashes the eMMC.
can you tell me how to change the USB from host to device mode i am facing the same issue
Hello - I also have the same problem. I have custom hardware and 1 of 3 boards enumerates with the correct VID and PID. The other (identical) boards do not. I don't know if I should suspect the mfgtool firmware or my boards. Is there a way to manually put the boards into USB Device mode? I have OTG_ID pin tied to 3.3V currently.
I have the same problem. When booting in serial download mode, my board never found an USB mass storage device with VID 0x6FF and PID 37FF, like it did it with SabreSD.
How do you do to switch to USB device when OS image is loaded?
Hi linearcorpengr,
can you tell me how to exchange USB host mode to USB device mode?
Regards,
Lin
Thanks for both your answers. Sorry for the typo, I'm really using Windows7 64-bit. The version of mfgtool I'm using is imx-3.10.17-1.0.0-ga-mfg-tools. Are these the correct versions?
I do not see a USB mass storage device with VID 0x06FF and PID 0x37FF on the PC after executing the "jump" command. This sounds like the problem. The Linux Kernel config file is attached.
Currently I'm using u-boot version imx_v2013.04_3.10.17_1.0.0_ga and did not make any specific changes to to setup the environment depending on boot source. Where did you get u-boot 2014.04?
Hello linearcorpengr,
Your kernel configuration is nearly the same as mine except using ttymxc4 as console.
Which i.MX6 board do you used? Could you please upload your u-boot & kernel image for me to test?
Thanks,
Peter
I had the exact same problem posted a few days ago here Problem getting Manufacturing Toolkit second stage working, due to the USB device Peter is mentioned did not appear. Not still 100% sure what the real problem was, but updating u-boot to 2014.04 seems to have cured my issue. also make 100% sure you have the kernel config set up as in the document, with mass storage gadget and UTP selected.
By the way, off topic, I saw in your u-boot log that you detect that if the boot source is USB you set up the environment for mfg toolkit; how do you do that?
After executing the "jump" command, the mfgtool is waiting for a USB mass storage device with VID 0x6FF and PID 37FF to be enumerated in order to continue. Do you see such USB device on your PC?
I am not sure if mfgtool can be run in Windows 97 64 bits. Please try another PC using Windows XP or Windows 7.
Have you ever tried the IMX_6_MFG_L3.10.17_1.0.0_TOOL at www.freescale.com? Does it still show the same error?
Hi Peter,
Could you give me any suggestions? I meet a similar problem.
Here is my mfgtool.log
DLL version: 2.3.4
Monday, July 17, 2017 16:50:42 Start new logging
ModuleID[2] LevelID[10]: CMyExceptionHandler thread is running
ModuleID[2] LevelID[1]: new MxHidDeviceClass
ModuleID[2] LevelID[10]: Device Manager thread is running
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_ARRIVAL_EVT(\\?\USB#VID_15A2&PID_0061#7&2486a4ed&0&3#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - end
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT(\\?\USB#VID_15A2&PID_0061#7&2486a4ed&0&3#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, _devices.size: 0
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 0
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_046d&pid_c52f&mi_00#8&40d7469&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 1
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_046d&pid_c52f&mi_01&col01#8&1fc9c959&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 2
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_046d&pid_c52f&mi_01&col02#8&1fc9c959&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 3
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_046d&pid_c52f&mi_01&col03#8&1fc9c959&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 4
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_047f&pid_c01f&mi_03&col01#9&2c77b98b&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 5
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_047f&pid_c01f&mi_03&col02#9&2c77b98b&0&0001#{4d1e55b2-f16f-11cf-88cb-001111000030}
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 6
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_047f&pid_c01f&mi_03&col03#9&2c77b98b&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 7
ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_15a2&pid_0061#8&2015c9c8&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
ModuleID[2] LevelID[10]: new MxHidDevice[007C9A38]
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_New, devInstPathToFind: USB\VID_15A2&PID_0061\7&2486A4ED&0&3, _deviceInstanceID: USB\VID_15A2&PID_0061\7&2486A4ED&0&3
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_New, Find the device, Port: 3
ModuleID[2] LevelID[10]: DeviceClass::AddUsbDevice() successful USB#VID_15A2&PID_0061#7&2486A4ED&0&3#{A5DCBF10-6530-11D2-901F-00C04FB951ED} add to current list, retrycount: 0
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT,[MxHidDeviceClass] vid_15a2&pid_0061, Hub:5-Port:3
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT, Notify
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume Arrive/Remove or Device Arrive/Remove
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, m_p_usb_port is not NULL, so only refresh
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume/Device Arrive
ModuleID[2] LevelID[1]: CmdOpreation[0]--set m_hDeviceArriveEvent.
ModuleID[2] LevelID[10]: CmdOpreation[0]--WaitforEvents device arrive1
ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 0
ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is D:\mfgtools\Profiles\Update\OS Firmware\u-boot.imx
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is D:\mfgtools\Profiles\Update\OS Firmware\uImage, address is 0x12000000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is D:\mfgtools\Profiles\Update\OS Firmware\xx_ramdisk.img, address is 0x12C00000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is D:\mfgtools\Profiles\Update\OS Firmware\imx6solo.dtb, address is 0x18000000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Jump[WndIndex:0]
ModuleID[2] LevelID[10]: *********MxHidDevice[007C9A38] Jump to Ramkernel successfully!**********
ModuleID[2] LevelID[10]: CmdOperation[0], current state command has been finished and the last command is successful, so SetEvent(hDevCanDeleteEvent)
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_REMOVAL_EVT(\\?\USB#VID_15A2&PID_0061#7&2486a4ed&0&3#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - end
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT(\\?\USB#VID_15A2&PID_0061#7&2486a4ed&0&3#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, _devices.size: 1
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, devInstPathToFind: USB\VID_15A2&PID_0061\7&2486A4ED&0&3, _deviceInstanceID: USB\VID_15A2&PID_0061\7&2486A4ED&0&3
ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, Find the device
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT,[MxHidDeviceClass] vid_15a2&pid_0061, Hub:5-Port:3
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT, Notify
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume Arrive/Remove or Device Arrive/Remove
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, m_p_usb_port is not NULL, so only refresh
ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume/Device Remove
ModuleID[2] LevelID[1]: CmdOpreation[0]--set m_hDeviceRemoveEvent.
ModuleID[2] LevelID[10]: CmdOpreation[0]--WaitforEvents device remove1
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent()-DEVICE_REMOVAL_EVT, hDevCanDeleteEvent has been set
ModuleID[2] LevelID[10]: delete MxHidDevice[007C9A38]
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_ARRIVAL_EVT(\\?\USB#VID_0525&PID_A4A5#7&2486a4ed&0&3#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - end
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT(\\?\USB#VID_0525&PID_A4A5#7&2486a4ed&0&3#{a5dcbf10-6530-11d2-901f-00c04fb951ed})