mfgtool stops with "No Device Connected" with "Failure Rate: 0%"

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

mfgtool stops with "No Device Connected" with "Failure Rate: 0%"

Jump to solution
11,858 Views
linearcorpengr
Contributor II

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? 

 

 

12999_12999.pngmfgtool.png

Original Attachment has been moved to: MfgTool.log.zip

Original Attachment has been moved to: serial_log.txt.zip

Labels (4)
1 Solution
5,004 Views
linearcorpengr
Contributor II

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.

View solution in original post

0 Kudos
16 Replies
5,007 Views
simonr99
Contributor II

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:

  1. Install and use USB View (USBView - Windows 10 hardware dev) to see how the imx6 is appearing on the PC's USB bus. With this tool you'll see the imx6 appear as vid=15A2, pid=0054 during the first stage (when transferring U-Boot, Kernel and File system), and then you'll see this disappear and reappear as vid=066F, pid=37FF during the second stage (when the mfgtool kernel is booted).
  2. If the imx6 doesn't appear on USB during the second stage, and the message 'UTP: Waiting for device to appear' is shown on the debug UART, check the following:
    1. Check USB ID line is not pulled low either by hardware or pin mux in device tree file.
    2. Check the mfgtool kernel config. The i.MX 6 Linux® Reference Manual Document Number: IMX6LXRM
      Rev. L3.14.28_1.0.0-ga, 03/2015 has a useful section on the USB driver options, which helped me get it working, e.g.:
      1. CONFIG_USB-Build Support for Host-side USB
      2. CONFIG_USB_EHCI_HCD EHCI HCD (USB 2.0) support Default y
      3. CONFIG_USB_CHIPIDEA- ChipIdea Highspeed Dual Role Controller Default y
      4. CONFIG_USB_CHIPIDEA_UDC - ChipIdea device controller Default y
      5. CONFIG_USB_CHIPIDEA_HOST - ChipIdea host controller Default y
      6. CONFIG_USB_GADGET - USB Gadget Support Default y
      7. CONFIG_USB_MXS_PHY - Freescale MXS USB PHY support Default y
      Ensure the special USB UTP stuff is enabled:8. CONFIG_USB_MASS_STORAGE=y
      9. CONFIG_FSL_UTP=y

               10. CONFIG_USB_GADGET=y

5,007 Views
jpe1313
Contributor II

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

0 Kudos
5,007 Views
yuikooshino
Contributor I

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.

https://community.nxp.com/thread/313436

0 Kudos
5,007 Views
yakovshaulov
Contributor II

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. 

0 Kudos
5,007 Views
jpe1313
Contributor II

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

0 Kudos
5,007 Views
jansirani
Contributor III

I too have the same problem.

When booting in serial download mode, my board never found an USB mass storage device with VID 0x15A2 and PID 0063 for iMX6SL board.

How do you do to switch to USB device when OS image is loaded?

for refernce i attached Mfgtool logs.

0 Kudos
5,005 Views
linearcorpengr
Contributor II

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.

0 Kudos
5,007 Views
chandraevolute
Contributor V

@linearcorpengr

can you tell me how to change the USB from host to device mode i am facing the same issue

0 Kudos
5,007 Views
stevenguzior
Contributor I

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.

0 Kudos
5,007 Views
florian_germain
Contributor II

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?

0 Kudos
5,007 Views
linshuanyi
Contributor II

Hi linearcorpengr,

can you tell me how to exchange USB host mode to USB device mode?

Regards,

Lin

0 Kudos
5,007 Views
linearcorpengr
Contributor II

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?

0 Kudos
5,008 Views
PeterChan
NXP Employee
NXP Employee

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

0 Kudos
5,008 Views
ThomasG1z
Contributor III

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?

5,008 Views
PeterChan
NXP Employee
NXP Employee

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?

5,008 Views
xixiguohan
Contributor II

Hi Peter,

Could you give me any suggestions? I meet a similar problem. mfgtool.PNG

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})

0 Kudos