Apparatus and method for performing a fail-safe over-the-air software update in a mobile station
First Claim
1. A wireless communication device capable of downloading a software update file from a wireless network, said wireless communication device comprising:
- a non-volatile memory capable of being re-programmed by sectors, wherein said non-volatile memory stores;
1) a target file to be updated,
2) said downloaded software update file, and
3) a journal comprising a plurality of entries, each of said plurality of entries created upon a successful completion of each operation that updates a status information associated with a re-programmed sector of said non-volatile memory, wherein the status information comprises a first parameter configured to indicate a start of re-programming the re-programmed sector, second parameter configured to indicate that previous contents of the re-programmed sector were correctly stored in a save area, and a third parameter configured to indicate successful re-programming of the re-programmed sector;
a random access memory; and
a main processor capable of replacing target code in said target file with replacement code from said downloaded software update file, wherein said main processor creates a first block of replacement code in said random access memory and re-programs a first target sector of said non-volatile memory by storing said first block of replacement code into said first target sector, and wherein said main processor updates a first status information in a first entry in said journal associated with said first target sector, and wherein said main processor is further capable of storing first target code from said first target sector in the save-area of said non-volatile memory prior to storing said first block of replacement code into said first target sector, wherein the journal further comprises information sufficient for a recovery of an error during the replacing of the target code with replacement code through two independently erasable sectors and the save-area sector of non-volatile memory, wherein the journal is configured to be used also in a recovery of an error during the download of the software update file from the wireless network, and wherein upon the error occurring during the download of the software update file, the journal is used to resume the operation of the download of the software update file from the wireless network at the next sequential sector following the last successfully downloaded and saved sector.
1 Assignment
0 Petitions
Accused Products
Abstract
A wireless communication device capable of downloading a software update file from a wireless network. The wireless communication device comprises a non-volatile memory that is re-programmed by sectors. The non-volatile memory stores: i) a target file to be updated, ii) the downloaded software update file, and iii) a journal comprising a plurality of entries, each of the entries containing status information associated with a re-programmed sector of the non-volatile memory. The wireless communication device also comprises a random access memory and a main processor that replaces target code in the target file with replacement code from the downloaded software update file. The main processor creates a first block of replacement code in the random access memory and re-programs a first target sector of the non-volatile memory by storing the first block of replacement code into the first target sector. The main processor updates first status information in a first entry in the journal associated with the first target sector.
-
Citations
18 Claims
-
1. A wireless communication device capable of downloading a software update file from a wireless network, said wireless communication device comprising:
-
a non-volatile memory capable of being re-programmed by sectors, wherein said non-volatile memory stores;
1) a target file to be updated,
2) said downloaded software update file, and
3) a journal comprising a plurality of entries, each of said plurality of entries created upon a successful completion of each operation that updates a status information associated with a re-programmed sector of said non-volatile memory, wherein the status information comprises a first parameter configured to indicate a start of re-programming the re-programmed sector, second parameter configured to indicate that previous contents of the re-programmed sector were correctly stored in a save area, and a third parameter configured to indicate successful re-programming of the re-programmed sector;a random access memory; and a main processor capable of replacing target code in said target file with replacement code from said downloaded software update file, wherein said main processor creates a first block of replacement code in said random access memory and re-programs a first target sector of said non-volatile memory by storing said first block of replacement code into said first target sector, and wherein said main processor updates a first status information in a first entry in said journal associated with said first target sector, and wherein said main processor is further capable of storing first target code from said first target sector in the save-area of said non-volatile memory prior to storing said first block of replacement code into said first target sector, wherein the journal further comprises information sufficient for a recovery of an error during the replacing of the target code with replacement code through two independently erasable sectors and the save-area sector of non-volatile memory, wherein the journal is configured to be used also in a recovery of an error during the download of the software update file from the wireless network, and wherein upon the error occurring during the download of the software update file, the journal is used to resume the operation of the download of the software update file from the wireless network at the next sequential sector following the last successfully downloaded and saved sector. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of upgrading software in a wireless communication device capable of downloading a software update file from a wireless network, the wireless communication device comprising a non-volatile memory that is re-programmed by sectors and stores:
- 1) a target file to be updated,
2) the downloaded software update file, and
3) a journal comprising a plurality of entries, each of the plurality of entries created upon a successful completion of each operation that updates a status information associated with a re-programmed sector of the non-volatile memory, wherein the status information comprises a first parameter configured to indicate a start of re-programming the re-programmed sector, second parameter configured to indicate that previous contents of the re-programmed sector were correctly stored in a save area, and a third parameter configured to indicate successful re-programming of the re-programmed sector, the method of upgrading software comprising the steps of;creating a first block of replacement code in a random access memory of the wireless communication device using replacement code from the downloaded software update file; re-programming a first target sector of the non-volatile memory by storing the first block of replacement code into the first target sector; storing first target code from the first target sector in a save-area of the non-volatile memory prior to storing the first block of replacement code into the first target sector; and updating first status information in a first entry in the journal associated with the first target sector, wherein the journal further comprises information sufficient for a recovery of an error during the software upgrade through two independently erasable sectors and the save-area sector of non-volatile memory, wherein the journal is configured to be used also in a recovery of an error during the download of the software update file from the wireless network, and wherein upon the error occurring during the download of the software update file, the journal is used to resume the operation of the download of the software update file from the wireless network at the next sequential sector following the last successfully downloaded and saved sector. - View Dependent Claims (9, 10, 11, 12, 13, 14)
- 1) a target file to be updated,
-
15. A wireless communication device capable of receiving an incoming software update file transmitted by a wireless network, said wireless communication device comprising:
-
a non-volatile memory capable of being re-programmed by sectors, wherein said non-volatile memory stores;
1) a downloaded software update file, and
2) a journal comprising a plurality of entries, each of said plurality of entries created upon a successful completion of each operation that updates a status information associated with a re-programmed sector of said non-volatile memory, wherein the status information comprises a first parameter configured to indicate a start of re-programming the re-programmed sector, second parameter configured to indicate that previous contents of the re-programmed sector were correctly stored in a save area, and a third parameter configured to indicate successful re-programming of the re-programmed sector;a random access memory; and a main processor capable of storing replacement code from said incoming software update file in said downloaded software update file, wherein said main processor stores a first block of replacement code from said incoming software update file in said random access memory and re-programs a first target sector of said downloaded software update file in said non-volatile memory by storing said first block of replacement code into said first target sector, and wherein said main processor updates first status information in a first entry in said journal associated with said first target sector, and wherein said main processor is further capable of storing first target code from said first target sector in a save-area of said non-volatile memory prior to storing said first block of replacement code into said first target sector, wherein said journal further comprises information sufficient for a recovery of an error during the replacing of the target code with replacement code through two independently erasable sectors and the save-area sector of non-volatile memory, wherein the journal is configured to be used also in a recovery of an error during the download of the software update file from the wireless network, and wherein upon the error occurring during the download of the software update file, the journal is used to resume the operation of the download of the software update file from the wireless network at the next sequential sector following the last successfully downloaded and saved sector. - View Dependent Claims (16)
-
-
17. A method of downloading software in a wireless communication device capable of receiving an incoming software update file transmitted by a wireless network, the wireless communication device comprising a non-volatile memory that is re-programmed by sectors and stores:
- 1) a downloaded software update file, and
2) a journal comprising a plurality of entries, each of the plurality of entries created upon a successful completion of each operation that updates a status information associated with a re-programmed sector of the non-volatile memory, wherein the status information comprises a first parameter configured to indicate a start of re-programming the re-programmed sector, second parameter configured to indicate that previous contents of the re-programmed sector were correctly stored in a save area, and a third parameter configured to indicate successful re-programming of the re-programmed sector, the method of upgrading software comprising the steps of;storing a first block of replacement code from the incoming software update file in the random access memory; re-programming a first target sector of the downloaded software update file in the non-volatile memory by storing the first block of replacement code into the first target sector; storing first target code from the first target sector in a save-area of the non-volatile memory prior to storing the first block of replacement code into the first target sector; and updating first status information in a first entry in the journal associated with the first target sector, wherein the first status information comprises a second parameter indicating that the first target code from the first target sector was successfully stored in the save-area of the non-volatile memory, wherein the journal further comprises information sufficient for the recovery of an error during the software download through two independently erasable sectors and the save-area sector of non-volatile memory, wherein the journal is configured to be used also in a recovery of an error during the replacing of target code with the downloaded software , and wherein upon the error occurring during the download of the software update file, the journal is used to resume the operation of the download of the software update file from the wireless network at the next sequential sector following the last successfully downloaded and saved sector. - View Dependent Claims (18)
- 1) a downloaded software update file, and
Specification