Software update method, apparatus and system
First Claim
1. A method of updating software in a plurality of remote devices each of which has insufficient non-volatile rewritable storage capacity to store both an updated and a previous version of the software and each of which is connected to a network, comprising the steps of:
- (i) placing the update onto an update server, the update comprising at least a core firmware update;
(ii) identifying the devices connected to the network to be updated;
(iii) transferring the update from the update server to the identified devices through the network, each identified device verifying the reception of the update, requesting retransmission of and receiving any previously incorrectly received portion of the update;
(iv) writing the core firmware portion of the received update into a non-volatile rewritable storage unit so as not to overwrite the previous version of the core firmware that is present in the storage unit;
(v) verifying the core firmware portion of the received update written into the storage unit;
(vi) identifying the verified updated core firmware as being the valid core firmware to be used by the device and identifying the previous version of the core firmware as being unusable; and
(vii) rebooting the device to load and execute the updated software.
5 Assignments
0 Petitions
Accused Products
Abstract
A system for remotely updating software on at least one electronic device connected to a network. The electronic devices have a non-volatile rewritable storage unit divided into at least two partitions, one of which will contain core firmware and the other of which will contain auxiliary software. When an update is received at the device, the updated core firmware is written to overwrite the partition in the rewritable storage unit that contained the auxiliary software. When this is completed and verified, the previous version of the core firmware stored in the storage unit is disabled from execution by the device. Next, the updated auxiliary software is written to overwrite the old version of the core firmware. When this write is complete, the device determines a suitable time for it to be rebooted to execute the updated software. In another embodiment, the present core firmware in the device is copied from the partition it is in to the other partition, overwriting the auxiliary software stored there. The new core firmware received to update the device is overwritten into the first partition, the old copied core firmware being present in case of an upgrade failure, and upon a successful update of the first partition, the auxiliary software is written to the second partition, overwriting the copied old core firmware. In this manner, the position of the core firmware and auxiliary software within the partitions is preserved during normal operation of the device.
-
Citations
28 Claims
-
1. A method of updating software in a plurality of remote devices each of which has insufficient non-volatile rewritable storage capacity to store both an updated and a previous version of the software and each of which is connected to a network, comprising the steps of:
-
(i) placing the update onto an update server, the update comprising at least a core firmware update;
(ii) identifying the devices connected to the network to be updated;
(iii) transferring the update from the update server to the identified devices through the network, each identified device verifying the reception of the update, requesting retransmission of and receiving any previously incorrectly received portion of the update;
(iv) writing the core firmware portion of the received update into a non-volatile rewritable storage unit so as not to overwrite the previous version of the core firmware that is present in the storage unit;
(v) verifying the core firmware portion of the received update written into the storage unit;
(vi) identifying the verified updated core firmware as being the valid core firmware to be used by the device and identifying the previous version of the core firmware as being unusable; and
(vii) rebooting the device to load and execute the updated software. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for remotely updating core firmware in at least one electronic device across a communications link, the system comprising
a memory sub-system within the at least one electronic device including: -
non-volatile rewritable memory in which the core firmware is stored and which is sufficiently large to store auxiliary software but not large enough to simultaneously store the core firmware, an updated version of the core firmware, and the auxiliary software, the core firmware including instructions for writing an updated version of the core firmware into the non-volatile rewritable memory so as not to overwrite the previous version of the core firmware, and then disabling the previous version of the core firmware such that on rebooting of the at least one electronic device the updated version of the core firmware will be loaded and executed; and
an update server, operable to transfer an update to the at least one electronic device across the communications link, the update comprising the updated version of the core firmware. - View Dependent Claims (7, 8, 12, 13, 14)
-
-
9. (Cancelled)
-
10. (Cancelled)
-
11. (Cancelled)
-
15. A memory sub-system for use in an electronic device, comprising:
-
non-volatile rewritable memory in which core firmware and auxiliary software are stored, the core firmware including instructions for writing an updated version of the core firmware into the non-volatile rewritable memory so as to overwrite at least a portion of the auxiliary software, but not to overwrite the previous version of the core firmware, verifying the updated version of the core firmware, and disabling the previous version of the core firmware such that on rebooting of the electronic device the updated version of the core firmware will be loaded and executed. - View Dependent Claims (17, 18)
-
-
16. (Cancelled)
-
19. (Cancelled)
-
20. (Cancelled)
-
21. (Cancelled)
-
22. A method of updating core firmware stored in non-volatile rewritable memory of an electronic device together with auxiliary software with an updated version of the core firmware, comprising the steps of:
-
(i) writing the updated version of the core firmware into the non-volatile rewritable memory so as to overwrite at least a portion of the auxiliary software, but not to overwrite the previous version of the core firmware; and
(ii) disabling the previous version of the core firmware such that on rebooting of the electronic device the updated version of the core firmware will be loaded and executed. - View Dependent Claims (24)
-
-
23. (Cancelled)
-
25. (Cancelled)
-
26. A system for remotely updating at least one electronic device across a communications link, where said system comprises:
-
an update server, operable to transfer an update to the at least one electronic device across the communications link, the update comprising core firmware and auxiliary software;
a volatile memory to temporarily store the transfer received from the update server;
a non-volatile re-writable storage unit within said at least one electronic device divided into at least first and second partitions, the first partition storing one of a version of core firmware and auxiliary software and the second of the partitions storing the other of a version of core firmware and auxiliary software; and
an update client executing on the device and operable;
(i) to overwrite the version of the auxiliary software stored in one of the first and second partitions with the received updated core firmware stored in the volatile memory and to verify the success of this write;
(ii) to configure the device to execute the core firmware stored in (i) upon the next reboot of the device;
(iii) to overwrite the version of the core firmware stored in the other of the first and second partition with the received updated auxiliary software store in the volatile memory and to verify the success of this write; and
(iv) to reboot the device to execute the updated core firmware and updated auxiliary software. - View Dependent Claims (27, 28)
-
Specification