At If preparation of the installation is successful, processing may proceed to step 904, where the install module may install the executable code (e.g., first μP code 630) into the processor (e.g., system processor 210). If the processor is the system processor, the code may be installed in the processor's NVM. If the processor is an 802.11 processor, the code may be installed in the processor RAM. If installation is successful, the install module may validate the installation at step 908. Validation can be performed using number of suitable approaches, including, for example, a SHA check. If installation is validated, then the install module proceeds to idle step 906, and awaits further instructions.
If a failure occurs at step 904 or step 908, the install module may prepare a restoring operation at step 910. Preparation of the restoring operation can include locating another version of the code (e.g., the last known good version) sought to be updated. If the restoration preparation is successful, the installer may restore the other code version at step 912. If restoration of the code is successful, the installer may validate the restoration at step 914. If the restoration is valid, the installer may proceed to idle at step 906.
If failure occurs at any of steps 910, 912, or 914, the install module may proceed to a stuck state, at step 916. When in the stuck state, the installer may attempt to prepare restoring from another local copy contained with the hazard system's NVM. If successful, the installer will proceed through steps 912 and 914. If the restore is still unsuccessful, the system may need to be connected to a computer to receive the appropriate software update.