Mobile handset with a fault tolerant update agent
First Claim
1. A method of updating an electronic device comprising a non-volatile memory having a plurality of banks containing a first code version, the method comprising:
- (a) selecting one of the plurality of banks;
(b) duplicating the selected bank to a working bank;
(c) copying the selected bank to a backup bank;
(d) converting the contents of the working bank from the first code version to a second code version;
(e) moving the converted working bank to the selected bank;
(f) verifying the successful completion of at least one of the duplicating, the copying, and the converting using at least one of a cyclic redundancy check, a message digest, a digital signature, and a checksum; and
(g) repeating (a) through (f) until each of the plurality of banks has been updated.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods for updating an electronic device having a non-volatile memory are disclosed. An embodiment of the present invention may permit the update of an electronic device from a first code version to a second code version using a fault-tolerant, bank-by-bank method. An update package comprising update instructions may be received via a public and/or wireless network, and the update instructions may be used to convert the first code version to the second code version. The bank order of the conversion may be specified in the update package, and may be non-sequential.
-
Citations
33 Claims
-
1. A method of updating an electronic device comprising a non-volatile memory having a plurality of banks containing a first code version, the method comprising:
-
(a) selecting one of the plurality of banks;
(b) duplicating the selected bank to a working bank;
(c) copying the selected bank to a backup bank;
(d) converting the contents of the working bank from the first code version to a second code version;
(e) moving the converted working bank to the selected bank;
(f) verifying the successful completion of at least one of the duplicating, the copying, and the converting using at least one of a cyclic redundancy check, a message digest, a digital signature, and a checksum; and
(g) repeating (a) through (f) until each of the plurality of banks has been updated. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of updating an electronic device from a first code version to a second code version, the electronic device comprising a non-volatile memory having a plurality of banks containing the first code version, the method comprising:
-
(a) receiving an update package comprising at least one update instruction;
(b) selecting one of the plurality of banks using at least one of at least a cyclic redundancy check, a message digest, a digital signature, a checksum, and a specified bank order;
(c) converting the selected bank from the first code version to the second code version using the at least one update instruction; and
(d) repeating (b) through (c) in a bank by bank manner until each of the plurality of banks has been updated. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method of updating an electronic device from a first code version to a second code version, the electronic device comprising a non-volatile memory having a plurality of banks containing the first code version, the method comprising:
-
(a) receiving an update package comprising at least one update instruction using a public network;
(b) selecting one of the plurality of banks;
(c) converting the selected bank from the first code version to the second code version using the at least one update instruction; and
(d) repeating (b) through (c) in a bank by bank manner until each of the plurality of banks has been updated. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
- 31. An update package for updating an electronic device, the electronic device comprising a memory having a plurality of banks, the update package comprising difference information and a collection of post-update signatures, each post-update signature corresponding to one of the plurality of banks to be updated.
Specification