Tri-phase boot process in electronic devices
First Claim
1. A computer-readable storage medium comprising instructions for updating firmware or software in a mobile handheld electronic device, the computer-readable storage medium comprising:
- an update address block of memory,an update address stored in the address block of memory identifying where a package of update information for use by an updating software is stored in the mobile handheld electronic device;
a return block of memory comprising a value to be returned when updating the electronic device has been completed;
an indicator block of memory comprising a plurality of status indicators;
wherein contents of one or more of the update address block of memory, the return block of memory, and the indicator block of memory are received by the mobile handheld electronic device before updating of the firmware or software; and
wherein if it is determined that applying the package of update information updates the updating software based on at least one of the plurality of status indicators, the mobile handheld electronic device then executes instructions to cause the mobile handheld electronic device to perform a method comprising;
before the updating software is modified, saving a copy of the updating software in a reserved flash bank within a particular flash memory section of non-volatile memory;
after saving the copy, processing the package of updating information that updates the updating software; and
after processing the package of update information, completing a tri-phase boot process using an update agent boot 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 copy of the updating software, both within the particular flash memory section, based on the validity check.
8 Assignments
0 Petitions
Accused Products
Abstract
An electronic device network including a plurality of electronic devices. The electronic devices may each have updating software adapted to update firmware/software resident in the electronic devices. The electronic devices may also employ additional software for updating the updating software in the electronic devices. The electronic devices may also have software adapted to determine whether a current version of the updating software is to be invoked or whether a previous backup version of the updating software is to be invoked. The determination may be made based upon status information resident in a update status indicator. The status information may indicate that an update upon the updating software is to be conducted, rather than a normal startup operation without performing any updates. The network may also include an update generator adapted to generate updates for use in updating the updating software in the electronic devices.
-
Citations
16 Claims
-
1. A computer-readable storage medium comprising instructions for updating firmware or software in a mobile handheld electronic device, the computer-readable storage medium comprising:
-
an update address block of memory, an update address stored in the address block of memory identifying where a package of update information for use by an updating software is stored in the mobile handheld electronic device; a return block of memory comprising a value to be returned when updating the electronic device has been completed; an indicator block of memory comprising a plurality of status indicators; wherein contents of one or more of the update address block of memory, the return block of memory, and the indicator block of memory are received by the mobile handheld electronic device before updating of the firmware or software; and wherein if it is determined that applying the package of update information updates the updating software based on at least one of the plurality of status indicators, the mobile handheld electronic device then executes instructions to cause the mobile handheld electronic device to perform a method comprising; before the updating software is modified, saving a copy of the updating software in a reserved flash bank within a particular flash memory section of non-volatile memory; after saving the copy, processing the package of updating information that updates the updating software; and after processing the package of update information, completing a tri-phase boot process using an update agent boot 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 copy of the updating software, both within the particular flash memory section, based on the validity check. - View Dependent Claims (2, 3, 4, 5, 6, 10, 11)
-
-
7. A method comprising:
-
booting a mobile handheld electronic device comprising updating software; receiving one or more of; an update address identifying where a package of update information is stored in the mobile handheld electronic device, a value to be returned when updating the mobile handheld electronic device has been completed, a plurality of status indicators, and the package of information for updating firmware or software in the mobile handheld electronic device, before updating of the firmware or software, wherein one of the plurality of status indicators indicates that the updating software is to be updated; reserving a portion within a particular flash memory section of non-volatile memory and backing up code and information of the updating software before updating, and storing a copy of the updating software in the reserved portion, if the one of the plurality of status indicators indicates that the updating software is to be updated; storing the package of information within an additional portion of the particular flash memory section of non-volatile memory; updating the firmware or software in the mobile handheld electronic device using the package of information, wherein updating the software or firmware in the mobile handheld electronic device comprises executing a plurality of executable instructions for converting a first version of the software or firmware to a second version of the software or firmware; and after processing the package of information, completing a tri-phase boot process using an update agent boot 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 updated updating software and the stored copy of the updating software, both within the particular flash memory section, based on the validity check. - View Dependent Claims (8, 9)
-
-
12. A computer-readable storage medium for updating software or firmware in a mobile handheld electronic device, the computer-readable storage medium comprising:
-
a device independent updating software component for updating software or firmware in the mobile handheld electronic device; an operating system software component; a firmware component corresponding to the mobile handheld electronic device;
one or more software interface components that facilitate interaction between electronic device specific software comprising one or both of the operating system software component and the firmware component and application specific software comprising the device independent updating software component;an update address block of memory, an update address stored in the update address block of memory identifying where an update package for use by the device independent updating software component is stored in the mobile handheld electronic device; a return block of memory comprising a value to be returned when updating the mobile handheld electronic device has been completed; an indicator block of memory comprising status information; wherein contents of one or more of the update address block of memory, the return block of memory, and the indicator block of memory are received by the mobile handheld electronic device before updating of the firmware or software; wherein the mobile handheld electronic device is adapted to manage and adjust one or more of status information, update variables, and/or update functions; and wherein if it is determined based on at least one of the one or more of status information that the update package has been received to update updating software, the mobile handheld electronic device then executes instructions to cause the mobile handheld electronic device to perform a method comprising; before the updating software is modified, saving a copy of the updating software in a reserved flash bank within a particular flash memory section of non-volatile memory; after saving the copy, processing the update package to update the updating software; and after processing the update package, completing a tri-phase boot process using an update agent boot 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 copy of the updating software, both within the particular flash memory section, based on the validity check. - View Dependent Claims (13, 14, 15, 16)
-
Specification