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.

MCU-PLUS-SDK-AM243X: Bootloader_socLoadSysFw() hungs up, when SysFW already loaded

Part Number: MCU-PLUS-SDK-AM243X

Hello,

we noticed when debugging with our Bootloader, that if this one is already in the flash and gets loaded by the startup of the device, we cannot again load our Bootloader via CCS and debug this one, since it will hang at Bootloader_socLoadSysFw().

That's not the best behaviour, since it can also lead to some other problems later on. I would suggest the function gives an return-code whether the SysFw is already loaded or not and it does not just hang there. Is there currently some kind of workaround to find out if the SysFw is already loaded? I also noticed that "hung up"-behaviour in some init-functions (like System_init() ) sometimes.

Best regards

Felix

  • Hi Felix,

    As you may know that the bootloading involved two or more cores for AM243x (DMSC, R5F cores and/or M4F core). The DMSC is the resource manager for the system resources and the SysFW is also running on the DMSC. It is not easy to identify where the bootloading procedure in progress, so the best thing to do is the system reset or power on reset to restart the bootloading procedure. At least it is suggested way for the current MCU+ SDK. 

    Best regards,

    Ming 

  • The SysFW does not need to know which core is booting but we need to know if the SysFW is already running. Yes we can trigger a reset then but this sometimes leads to a never-ending reboot-cycle. This won't help.

    Isn't there a possibility to just call a function which just checks whether the SysFW is already running on the DMSC or not? But  in any case the Bootloader_socLoadSysFw() should just not hang if there is already a SysFw. This could brick our devices in the worst case scenario and this is a big problem.

    best regards

    Felix

  • Hi Felix,

    There is certain sequence has to be followed in bootloading. I am not sure what the R5F can do when it find out the DMSC is already running. The best thing to do at this point is the whole system, therefore start the bootloading from scratch.

    Best regards,

    Ming 

  • Hey ming, yes that was our idea as well, but still: how can we find out whether the SysFW is already running or not? the mentioned function just hangs up and never returns, that in fact means our device is not useable anymore, which means we can't even start a reset. this just shall not happen.

  • Hi Felix,

    I will double check with the SYSFW team on this request. I believe we do not have such API to do this right now.

    Best regards,

    Ming

  • Hi Felix,

    I have filed a bug for this issue: 

    MCUSDK-4377

    Best regards,

    Ming

  • thank you Ming!