One of our demo units that uses the mangOH Red stopped working in the field. On inspecting the log, we found that the Legato framework didn’t start because of a ‘boot loop’.
Jan 6 00:00:34 swi-mdm9x28 user.info Legato: INFO | _UNKNOWN_[644]/framework T=main | LE_FILENAME GetStatus() 1034 | Status of system 'current' is 'good'. Jan 6 00:00:34 swi-mdm9x28 user.info Legato: INFO | _UNKNOWN_[644]/framework T=main | LE_FILENAME FindNewestSystemIndex() 1287 | System 'current' is OK. Jan 6 00:00:34 swi-mdm9x28 user.info Legato: INFO | _UNKNOWN_[644]/framework T=main | LE_FILENAME CheckAndInstallCurrentSystem() 1791 | The previous 'current' system has index 16. Jan 6 00:00:34 swi-mdm9x28 user.info Legato: INFO | _UNKNOWN_[644]/framework T=main | LE_FILENAME GetStatus() 1034 | Status of system 'current' is 'good'. Jan 6 00:00:34 swi-mdm9x28 user.emerg Legato: *EMR* | _UNKNOWN_[644]/framework T=main | LE_FILENAME CheckAndInstallCurrentSystem() 1813 | Golden system entered boot loop -- not starting Legato
I don’t believe the cause for this boot loop was software related, but rather due to draining of the battery. When the battery is running very low the unit switches on and off until the battery is completely dead, which is obviously not ideal and will not happen in production. Now, I understand why it exists but for demo purposes where we don’t have proper power/battery management in place can this feature be disabled? I have devmode running on my units but that doesn’t seem to prevent it.
I’ve tripped over something similar to this when the WP goes into brownout due to power supply issues. In my case I was running off a bench supply and switching an aux load (strip of LED lights) that put the PSU into current limit - which dropped the supply voltage to the WP. After this cycled quickly a couple of times while I was wondering just what was happening the WP boot firmware hit some internal limit and stopped booting - which made it look like I had bricked the WP.
Apparently this is by design on the WP devices - they end up in a bootloader mode if there are too many brown-out/power cycle events in a short time. I did find it in the doco after I started looking…
Called UVLO:
Note: If the device experiences six consecutive UVLO events less than 45 seconds apart
(approximately) and a host-initiated power down or reset has not occurred, the device enters a
mode in which only the DM port enumerates on the USB. 41111420 WP77 PTS R2 Section 3.2.1 Under-Voltage Lockout (UVLO)
Luckliy, the WP ends up in a mode where you can flip the boot switch and then reflash the firmware which makes it sane again.
Sorry I don’t have WP7603 to test with Legato 18.04.
But from code check if devMode is installed and running, it should able to prevent this “no start Legato” due to boot loop.
Would you please check is devMode running when face this?
Or have you marked system good (update -g) after install devMode app? (if not it may rollback and remove the app)
For instance, if for some reason devMode app not working as it supposed to be, we may do it manually (or in Legato app / boot script) to clear the count file after system boot up, i.e.