Patent ID: 8869134

Claim:
A system for updating firmware on electronic devices, comprising: an electronic device, comprising: a processor; non-volatile NOR storage coupled with said processor for storing over time different ones of a plurality of current images of firmware, each image comprising programmed instructions for said processor, and for storing a baseline image of firmware in a compressed format, wherein the current images of firmware and the baseline image of firmware are each stored as multiple data blocks; random access memory for storing a flag indicating whether a newer version of firmware is available; an update utility coupled with said processor for instructing said processor to set the flag each time that a newer version of firmware is available, to update the firmware stored in said storage, upon reboot of the electronic device, when the flag indicates that a newer version of firmware is available, and to unset the flag after the firmware is updated; and a connector coupled with said processor for connecting the electronic device to a jacket, thereby enabling communication between the electronic device and the jacket; and a jacket, comprising: a storage for storing over time different ones of a plurality of firmware difference images, each image for updating the firmware in said electronic device to a newer version; and a port for connecting said electronic device connector thereto, wherein said update utility updates the firmware stored in said electronic device storage by instructing said electronic device processor to sequentially, for each data block of the baseline image, (i) decompress the compressed data block of the compressed baseline image of the firmware, (ii) read the corresponding data block of the firmware difference image currently in said jacket storage, (iii) apply the corresponding data block of the firmware difference image to the decompressed data block to generate the corresponding data block of a newer version image of the firmware, and (iv) replace the data block of the current image of the firmware in said electronic device storage with the thus generated data block, in response to connecting said electronic device connector to said jacket port, and wherein the different ones of the firmware difference images are applied to the same baseline image of the firmware.