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.

CC3120: SL_IS_RESTART_REQUIRED - causes and debug suggestions

Part Number: CC3120

My customer uses a CC3120 communicating to a NXP host processor and is getting the flag SL_IS_RESTART_REQUIRED set, after the SimpleLink device is returning -2005 SL_API_ABORTED. The unusual aspect is that only by power cycling both host and CC3120 the problem goes away. Previous experiments show that power cycling the CC3120 alone or resetting the main micro do not help fix the issue.

Do you have suggestions on how to attack this problem?

Thank you!

  • I've just started having the same problems.

    See my post: e2e.ti.com/.../2755378
  • Additional information:

    The _SL_DRV_STATUS_BIT_RESTART_REQUIRED bit is set in g_SlDeviceStatus, and cleared by SL_UNSET_RESTART_REQUIRED in _SlDrvDriverCBDeinit() in sl_stop(). However, sl_stop() does NOT get this far in the code if the SL_IS_DEVICE_STARTED is not set – it exits early. So, if we get into this state where !SL_IS_DEVICE_STARTED && SL_IS_RESTART_REQUIRED, that flag can never be unset – without a reset of the host, thus clearing that variable.

    This bug is present in SL_DRIVER_VERSION 2.0.1.26. It seems SL_DRIVER_VERSION 3.0.1.41 fixes the issue with more logic in the sl_stop function.

    Some questions we need answers to:
    1. Can you provide details as to what the proper sequence looks like?
    2. Would this error come about as a result of trying to communicate with the 3120 before it has been completely initialized?
    3. Would there be a problem with manually calling _SlDrvDriverCBDeinit() directly before sl_start() in order to clear that restart required flag? 

    Thank you!

  • Hi Lenio,

    I think I'm missing an important detail -
    1.) Can you please elaborate on how the SL_API_ABORTED error is being generated? What call to the API results in this error?
    2.) Can you also describe how you believe the device is getting into the state where it ends up with the restart required even though the bit checked by SL_IS_DEVICE_SET indicates that it was stopped?

    Looking at the previous code version, #2 doesn't quite make sense to me.

    You should not be able to send a command to the CC3120 before it is completely initialized (i.e. when sl_start() successfully returns). Please do not call _SlDrvDriverCBDeinit() in application code. This is only meant to be used as part of the core host driver. Using it outside of the driver could cause unexpected behavior.

    Best Regards,
    Ben M
  • Hi Lenio,

    I believe I see the issue now. I take it that the SL_API_ABORTED error is generated on an sl_Start() call, which would result in the reset required flag being set without setting the device started flag.

    To avoid the issue where a full system restart is required, you will need to update to the latest host driver.

    Best Regards,
    Ben M