This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Sporadic freeze during boot of WinCE image in OMAP_EHCIHCD.DLL (USB Host 2)

Other Parts Discussed in Thread: OMAP3530

BSP: TI WINCE_SDK 01.01.00
Platform: EVM_3530

Even if there is no device to the USB Host 2 attached, i still see some sporadic freezes when loading the OMAP_EHCIHCD.DLL module.
I am unable to break the system, it just does not respond anymore.

My Debug Output looks like this in case of a failure:

133971 PID:400002 TID:bf0002 DEVICE!RegReadActivationValues RegQueryValueEx(Drivers\BuiltIn\USBEHCI\BusPrefix) returned 2
133976 PID:400002 TID:bf0002 OSAXST1: >>> Loading Module 'omap_ehcihcd.dll' (0x8D16D000) at address 0xC0D10000-0xC0D59000 in Process 'NK.EXE' (0x813CEAA0)
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\xxx_3530\xxx_3530\RELDIR\xxx_3530_ARMV4I_DEBUG\OMAP_EHCIHCD.DLL'
134536 PID:1820002 TID:c60002 [NOTIFY] HandleSystemEvent 7 /ADD WSS1:

In case of success it looks like this:

133137 PID:400002 TID:bf0002 DEVICE!RegReadActivationValues RegQueryValueEx(Drivers\BuiltIn\USBEHCI\BusPrefix) returned 2
133144 PID:400002 TID:bf0002 OSAXST1: >>> Loading Module 'omap_ehcihcd.dll' (0x8D175EA0) at address 0xC0D10000-0xC0D59000 in Process 'NK.EXE' (0x813CEAA0)
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\xxx_3530\xxx_3530\RELDIR\xxx_3530_ARMV4I_DEBUG\OMAP_EHCIHCD.DLL'
133720 PID:1820002 TID:c60002 [NOTIFY] HandleSystemEvent 7 /ADD WSS1:
134958 PID:400002 TID:bf0002 HCD driver DLL attach
134958 PID:400002 TID:bf0002 EHCD!HCD_Init
134993 PID:400002 TID:bf0002 Allocating DMA buffer from system RAM
134999 PID:400002 TID:bf0002 CPhysMem   Total Alloc Region PhysAddr = 0xA518B000, VirtAddr = 0xD2810000, size = 131072
135000 PID:400002 TID:bf0002 CPhysMem Special Alloc Region PhysAddr = 0xA518B000, VirtAddr = 0xD2810000, size = 4096
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\xxx_3530\xxx_3530\RELDIR\xxx_3530_ARMV4I_DEBUG\USBD.DLL'
135000 PID:400002 TID:bf0002 CPhysMem HighPri Alloc Region PhysAddr = 0xA518C000, VirtAddr = 0xD2811000, size = 32768
135002 PID:400002 TID:bf0002 CPhysMem  Normal Alloc Region PhysAddr = 0xA5194000, VirtAddr = 0xD2819000, size = 94208
135003 PID:400002 TID:bf0002 +CHW::CHW base=0xd2800800, intr=0x17
135003 PID:400002 TID:bf0002 +CEhcd::Initialize. Entry
135003 PID:400002 TID:bf0002 +CDeviceGlobal::Initialize
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\xxx_3530\xxx_3530\RELDIR\xxx_3530_ARMV4I_DEBUG\PROXYDRIVER.DLL'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\xxx_3530\xxx_3530\RELDIR\xxx_3530_ARMV4I_DEBUG\I2CPROXY.DLL'
PB Debugger Loaded symbols for 'C:\WINCE600\OSDESIGNS\xxx_3530\xxx_3530\RELDIR\xxx_3530_ARMV4I_DEBUG\GWES.DLL'
135008 PID:400002 TID:bf0002 OSAXST1: >>> Loading Module 'usbd.dll' (0x8D1AB324) at address 0xC0A70000-0xC0A84000 in Process 'NK.EXE' (0x813CEAA0)
135907 PID:400002 TID:bf0002 USBD: DLL attach
135907 PID:400002 TID:bf0002 +USBD:HcdAttach, hcd: 0xD275B9E0
135907 PID:400002 TID:bf0002 -CDevice::Initialize, success!
135907 PID:400002 TID:bf0002 +CHW::Initialize
135964 PID:400002 TID:bf0002 -CHW::Initialize, success!
135964 PID:400002 TID:bf0002 +CHW::EnterOperationalState
135965 PID:400002 TID:bf0002 -CHW::EnterOperationalState
135965 PID:400002 TID:bf0002 -CEhcd::Initialize. Success!!

How could i investigate this problem?

  • Hi

    Are you seeing this on TI EVM? if yes, can you try the prebuilt NK.bin that is provided on the TI download page? Also, which processor is this - 35xx or 37xx? Can you tell us the rev of the processor card that you are using?

    Can you disable EHCI driver from the catalog and check if you see similar freeze on boot-up?

    -Madhvi

  • Hi Madhvi

    Processor Board: OMAP35xx Rev C
    Main Board: OMAP Mistral EVM Rev G

    The prebuilt NK.bin never failed to start on my EVM3530.
    I changed before some catalog items. After another "clean sysgen" and a cold reset, the problem seemed to disappear.

    I have now an idea where the problem could come from:
    I attached a USB 1.0 device before to the target, and did only a warm reset between the debug sessions. I remember that i read in a previous release note, that those devices are not supported by the USB Host of the EVM3530.

    http://processors.wiki.ti.com/index.php/WinCE-BSP_ARM-A8_User_Guide#USB_Host_Driver
    "The Mentor USB 2.0 OTG controller used in host mode does not support peripherals that do not comply with the USB 2.0 High Speed specification. In order to have such peripherals working on this OTG controller, one requires plugging it through a HUB that will perform the speed adaptation"

    However, this is not listed in the BSP Limitations related to Hardware: http://processors.wiki.ti.com/index.php/WinCE_BSP_ARM-A8_Known_Limitations

  • hi,MGun.

    I came across the same problem as you,when booting the WinCE 6.0 on OMAP3530, some times It  freezed in OMAP_EHCIHCD.DLL.

    I have no idea how to deal with this problem yet. Have you solved this issue? Do you have some suggestion?

    Regards,

    Qing

  • Hi Qing

    I haven't investigated the root cause for this, since it only happens when debugging. It usually works the second time after a reset.
    The problem happens somewhere in the code below, i guess the USB Host generates an interrupt and this kills the KITL Debugger?

    If you reach the second breakpoint after the GPIO operations (InitializeEHCI), the WinCE startup continues and the device can be used.
    However, in most of the cases you see the first breakpoint, but the second breakpoint is never hit. In this case, you have to reset the device and start the debugger once again.


    File: C:\WINCE600\PLATFORM\COMMON\src\soc\COMMON_TI_V1\COMMON_TI\USB\ehcipdd\system.c

    As mentioned before, i guess this is related to Interrupts, since the GPIOSetMode only changes the state of a GPIO Pin.
    Would be nice if someone of the TI Developers could look at this problem (or try to reproduce it). Remember: This only happened to me when debugging the WinCE with the KITL (ethernet).

  • Hi, MGun,thanks for your reply.

    Your situation is same as mine, if I enable KITL, OMAP_EHCI.dll sometimes will freeze, it's very random,

    I haven't find out why this happened, but if I set the "Sleep(10)"  to "Sleep(100)", the problem seemed to disappear.