The system does not halt RRS feed

  • Question

  • Hi all,

    iMX51 + WinEC700.

    Sometime the system is not able to switch off by the software command.

    The regular flow is the following:

    PID:00400002 TID:01DA0072 - in=40 ret=40
    PID:05A50016 TID:0521005A MBS: DoPowerOff
    PID:05A50016 TID:0521005A MBS: wait 3 seconds ...
    PID:00400002 TID:01DA0072 - in=40 ret=40
    PID:00400002 TID:01DA0072 - in=40 ret=40
    PID:05A50016 TID:04440036 MBS: Transition to suspend
    PID:05A50016 TID:04440036 MBS: POWER_STATE_SUSPEND [g_PS=2]
    PID:00400002 TID:00E00006 +BSPBlSetInt 0
    PID:00400002 TID:00E00006 BSPPmicPowerNotifySuspend
    PID:00400002 TID:00E00006 +BSPTouchPowerHandler(1)
    PID:00400002 TID:00E00006 -BSPTouchPowerHandler()
    PID:00400002 TID:00E00006 OEMPowerOff()
    PID:00400002 TID:00E00006 +BSPPowerOff [1]
    MBS is a service that switches the state to suspend + a flag to power off in the OAL.

    When the system is switched off right after the start, it doesn't halt completely and the last two debug rows are not shown on the debug and the system waits forever (some drivers are alive).

    But, if the wifi is off or not connected, the system is always able to switch off.

    Unfortunately we don't have the source of the wifi driver (VIA VT6656) so i don't know how to trace it: my guess is that the driver is still searching and connecting the wifi net and if i quickly switch off, maybe, the operations stuck the flow of powering off.

    Any idea?

    How can i trace it?


    Wednesday, July 23, 2014 4:17 PM

All replies

  • Without source you can't. Only VIA will be able to solve that issue for you.

    A workaround would be to delay load the WIFI driver, or unload the WIFI driver in your MBS driver before calling SetSystemPowerState.

    Good luck,

    Michel Verhagen, eMVP
    Check out my blog:

    Microsoft Embedded Partner
    Consultancy, training and development services.

    Wednesday, July 23, 2014 10:53 PM
  • Also please remove these debug prints from your source code and verify the system is going to suspend state. I faced these kind of issues with adding debug prints in OEMPowerOFF functions. 

    PID:00400002 TID:00E00006 +BSPTouchPowerHandler(1) PID:00400002 TID:00E00006 -BSPTouchPowerHandler() PID:00400002 TID:00E00006 OEMPowerOff() PID:00400002 TID:00E00006 +BSPPowerOff [1]

    Thursday, July 24, 2014 5:08 AM
  • I removed the debug prints and i'm waiting 10 secs before the powerOff.

    Now it works a little better but sometimes, again, the OEMPowerOff() is not called  :(


    Friday, July 25, 2014 7:51 AM
  • Now, on exit, i switch off the usb of the wifi and wait 5 secs.

    Seem to be enough to reboot correctly...

    Now i've got a similar problem on the startup: I chose to start with the wifi's usb off but now when I have the ethernet connected, if i run a QT app, it is not able to run.If I unplug the ethernet the app starts  :(((  uff..


    Wednesday, August 6, 2014 3:21 PM