Patent ID: 7725889

Claim:
A system in an electronic device, that facilitates the updating of at least one of firmware and updating software in the electronic device, using updating information received via a communication network, the system comprising: a non-volatile memory comprising: firmware; loading software for loading the updating information via the communication network; updating software for applying the loaded updating information to the at least one of firmware and updating software; and initializing software for initializing the electronic device; a random access memory (RAM); security services for verifying the loaded updating information; wherein one of the initializing software and the updating software determines whether applying the updating information updates the updating software; wherein if it is determined that applying the updating information updates the updating software, the electronic device then updates the updating software using a first technique that: before the updating software is modified, saves a functional copy of the updating software in a working flash bank within a articular flash memory section of the non-volatile memory reserved for storing said functional copy; after saving said functional copy, processes a portion of the loaded updating information that updates the updating software; after updating the updating software, complete a tri-phase boot process using a boot checker in a boot checker bank also within the particular flash memory section, the tri-phase boot process involving a subsequent initialization, a validity check, and a branching functionality to branch between the updated updating software and the saved functional copy of the updating software, both within the particular flash memory section, based on the validity check; and wherein if it is determined that applying the updating information updates other than the updating software, the electronic device uses a second update technique that does not save a functional copy of the other than the updating software before processing updating information associated with the other than the updating software.