US20090037904A1 - Firmware Installation - Google Patents
Firmware Installation Download PDFInfo
- Publication number
- US20090037904A1 US20090037904A1 US11/831,559 US83155907A US2009037904A1 US 20090037904 A1 US20090037904 A1 US 20090037904A1 US 83155907 A US83155907 A US 83155907A US 2009037904 A1 US2009037904 A1 US 2009037904A1
- Authority
- US
- United States
- Prior art keywords
- firmware
- early boot
- storage area
- boot installer
- install
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000009434 installation Methods 0.000 title description 4
- 238000000034 method Methods 0.000 claims abstract description 104
- 230000008569 process Effects 0.000 claims abstract description 82
- 238000005192 partition Methods 0.000 claims description 2
- 230000000977 initiatory effect Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004224 protection Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Definitions
- FIG. 3 illustrates a representation of potential usage of an Early Boot Installer process, according to an embodiment of the invention.
- a live copy of firmware 107 is the current firmware that a subsystem within the device 100 is running. Each subsystem within the device 100 possesses a live copy of firmware 107 .
- the device 100 includes a version database 106 .
- the version database 106 is a database within the device 100 which may store information about the device 101 or other components attached to the device 100 .
- the utilization of a non-operational storage area 101 adds protection to the device 100 if there is an interruption, such as a power outage, during the download of a firmware bundle 105 or during the installation of a firmware package.
- each live copy of firmware 107 and the version database 106 may remain untouched while the non-operational storage area 101 downloads a firmware bundle 105 .
- the download will write to the non-operational storage area 101 only.
Abstract
Description
- As devices have become more complex, the number of devices composed of multiple subsystems has increased. Subsystems within such devices often incorporate firmware to operate correctly and efficiently. In addition, subsystems within such devices sometimes incorporate periodic firmware installation updates in order to add functionality and to remove bugs.
- Various features and advantages of the invention will be apparent from the detailed description which follows, taken in conjunction with the accompanying drawings, which together illustrate, by way of example, features of the invention and wherein:
-
FIG. 1 is a diagram of a, device within which the downloading and installing of a firmware package can be performed, according to an embodiment of the invention. -
FIG. 2 illustrates a representation of potential usage of an Early Boot Installer manger, according to an embodiment of the invention. -
FIG. 3 illustrates a representation of potential usage of an Early Boot Installer process, according to an embodiment of the invention. -
FIG. 4 illustrates a representation of potential usage of a version database, according to an embodiment of the invention. -
FIG. 5 is a flow diagram illustrating a method for downloading and installing a firmware package to one or more subsystem of a device in parallel, according to an embodiment of the invention. - Reference will now be made to exemplary embodiments illustrated in the drawings, and specific language will be used herein to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended Alterations and further modifications of the inventive features illustrated herein, and additional applications of the principles of the invention as illustrated herein, which would occur to one of ordinary skill within the relevant art and having possession of this disclosure, are to be considered within the scope of the invention
-
FIG. 1 illustrates adevice 100 in which embodiments of the present disclosure may be implemented. Thedevice 100 includes a downloadedfirmware bundle 105, anon-operational storage area 101, an EarlyBoot Installer manager 102, an input/output path 104, acontrol panel 103, aversion database 106, and a live copy offirmware 107 for each subsystem within thedevice 100, such aslive copy n 108. As can be appreciated by those of ordinary skill within the art, thedevice 100 may include other additional subsystems or components, in addition to and/or in lieu of those depicted inFIG. 1 . -
FIG. 1 illustrates a downloadedfirmware bundle 105 stored in thenon-operational storage area 101. In one embodiment, the downloadedfirmware bundle 105 may have been downloaded to thenon-operational storage 101 area utilizing an input/output path 104 in thedevice 100. In addition, thedevice 100 possesses a live copy offirmware 107 for each corresponding subsystem on the device 100 (e., live copy n 108) and aversion database 106 to keep track of the version of each live copy offirmware 107 on thedevice 100. As can be appreciated by those of ordinary skill within the art, thedevice 100 may include other subsystems and components, in addition to and/or in lieu of those depicted inFIG. 1 . - The
control panel 103 provides a means for a user to communicate with thedevice 100. Thecontrol panel 103 is a component or device that may be either internally or externally attached to thedevice 100 and may serve as a communication tool for thedevice 100 and the user. In one embodiment, thecontrol panel 103 may be used as a user interface to initiate a download. In another embodiment, thecontrol panel 103 may be utilized by thedevice 100 to provide status reports to the user. As can be appreciated by those of ordinary skill within the art, thecontrol panel 103 may be utilized for other purposes, in addition to and/or in lieu of those depicted in the embodiment. - As noted above, the downloaded
firmware bundle 105 may be downloaded through any input/output path 104 and may be stored in the noonsoperational storage area 101. In one embodiment, the downloadedfirmware bundle 105 stored in thenon-operational storage area 101 may include one or more firmware packages. Afirmware bundle 105 acts as a transportation container for one or more firmware packages during the download of the firmware packages to thenon-operational storage area 101. Each firmware package from the firmware bundle may further contain multiple file types. As can be appreciated by those of ordinary skill within the art, thefirmware bundle 105 may include other file types or packages, in addition to and/or in lieu of those depicted in this embodiment - The
firmware bundle 105 download may be initiated manually by the user or automatically by thedevice 100. Thenon-operational storage area 101 may utilize any input/output path 104 for the downloading of afirmware bundle 105. An input/output path 104 serves as a means for delivering data from one point to another. The input/output path 104 may include paths such as a universal serial bus, a serial port, an intelligent drive electronics channel, or a network path. As can be appreciated by those of ordinary skill within the art, the non-operational storage are may utilize other input/output paths 104, in addition to and/or in lieu of those depicted inFIG. 1 - The
non-operational storage area 101, illustrated inFIG. 1 , is an area of physical memory which may be utilized to download and store various forms of data through an input/output path 104. Thenon-operational storage area 101 may store a downloadedfirmware bundle 105 and an EarlyBoot Installer manager 102. The EarlyBoot Installer manager 102 may be an executable file that may spawn and receive status updates from one or more Early Boot installer processes. As can be appreciated by those of ordinary skill within the art, thenon-operational storage area 101 may download and store other forms of data, in addition to those depicted inFIG. 1 . - The
non-operational storage area 101 may reside in a separate partition, of a present storage device, than each live copy of firmware on thedevice 100, on the same storage device, or on a separate storage device. In addition, thenon-operational storage area 101 may be either physically attached to thedevice 100 or virtually networked to thedevice 100. Thenon-operational storage area 101 may be a hard drive, a compact disc, a flash disk, a network drive or any other form of computer readable medium. As can be appreciated by those of ordinary skill within the art, other forms of volatile and non-volatile media may be used as anon-operational storage area 101, in addition to and/or in lieu of those depicted inFIG. 1 . - The
non-operational storage area 101 may be written to, whether thenon-operational storage area 101 is empty or if it is already populated with content. In one embodiment, if afirmware bundle 105 download is initiated to thenon-operational storage area 101 and thenon-operational storage area 101 is empty, thefirmware bundle 105 will be downloaded and stored on thenon-operational storage area 105. In another embodiment, if anew firmware bundle 105 download is initiated and there is already one or more firmware bundles stored on thenon-operational storage area 101, the existing firmware bundle on the nonoperational storage area 101 may either be fully overwritten each time a new firmware bundle is downloaded to the on-operational storage area 101, or the existingfirmware bundle 105 may be retained along with the new firmware bundle download or the non-operationalstorage area 101. As can be appreciated by those of ordinary skill within the art, other methods of storing and overwriting data may be utilized when downloading afirmware bundle 105 to thenon-operational storage area 101, in addition to and/or in lieu of those depicted in these embodiments. - A live copy of firmware 107 (e.g., live copy n 108) is the current firmware that a subsystem within the
device 100 is running. Each subsystem within thedevice 100 possesses a live copy offirmware 107. In addition, thedevice 100 includes aversion database 106. Theversion database 106 is a database within thedevice 100 which may store information about thedevice 101 or other components attached to thedevice 100. - The utilization of a
non-operational storage area 101 adds protection to thedevice 100 if there is an interruption, such as a power outage, during the download of afirmware bundle 105 or during the installation of a firmware package. As illustrated inFIG. 1 , in one embodiment, each live copy offirmware 107 and theversion database 106 may remain untouched while thenon-operational storage area 101 downloads afirmware bundle 105. In one embodiment, if the user of thedevice 100 initiates afirmware bundle 105 download through an input/output path 104, the download will write to thenon-operational storage area 101 only. As a result, the danger that a live copy offirmware 107, such aslive copy n 108, in thedevice 100 may get corrupted or partially overwritten is greatly reduced since each live copy offirmware 107 on thedevice 100 remains untouched until the firmware package has been fully downloaded to thenon-operational storage area 101. - In addition, the concept of housing all executable file, in this case an Early
Boot Installer manager 102, in thenon-operational storage area 101 or outside thenon-operational storage area 101 within a computer readable medium, allows thedevice 100 to be resilient against interruptions when the firmware packages from thenon-operational storage area 101 are being installed over the live copies offirmware 107 on the corresponding subsystems within the device too. In another embodiment, even if there is an interruption during an install and the corresponding live copy offirmware 107 on the subsystem is corrupted or incomplete, thedevice 100 may still launch the EarlyBoot Installer manager 102 and reinstall again. As can be appreciate by those of ordinary skill within the art, thenon-operational storage area 101 may offer other protections or performance advantages for thedevice 100, in addition to and/or in lieu of those depicted inFIG. 1 . - After the firmware package has been downloaded to the non-operational storage area,
tie device 100 may be rebooted and the Early Boot Installer manager may be launched.FIG. 2 illustrates a representation of a potential usage of the Early Boot Installer manager, according to an embodiment of the invention. In the example,firmware package n 200 from the downloadedfirmware bundle 105 in thenon-operational storage area 101 may contain Early BootInstaller process n 201. The EarlyBoot Installer manager 102 will spawn and monitor Early BootInstaller process n 201 and other Early Boot Installer processes fromfirmware package n 200 and other firmware packages from thefirmware bundle 105. - In one embodiment,
firmware package n 200 within thefirmware bundle 105 may containvarious file types 202. A firmware package is a container for one or more data files that may be utilized by thedevice 100 or a subsystem within thedevice 100. Thevarious file types 202 may include image files, executable files, package files, or an Early Boot Installer process. As can be appreciated by those of ordinary skill within the art, each firmware package may include other file types, in addition to and/or in lieu of those depicted in the previous embodiment The Early Boot Installer processes are spawned and managed by the EarlyBoot installer manager 102. - The Early
Boot Installer manager 102 may be a configurable executable file which may be utilized to monitor an{l control data or processes. The EarlyBoot Installer manager 102 may be stored within thenon-operational storage area 101 or within a computer readable medium outside thenon-operational storage area 101, and may be launched after thedevice 100 has been rebooted. In one embodiment, the EarlyBoot Installer manager 102 may be launched after an operating system and one or more basic drivers is loaded. In addition, the EarlyBoot Installer manager 102 may be launched before a software component that may utilize one or more of the basic drivers are loaded. As can be appreciated by those of ordinary skill within the art, the EarlyBoot Installer manager 102 may launch at different times, in addition to and/or in lieu of those depicted in the previous embodiment. - After the Early
Boot Installer manager 102 is launched, it may prohibit a normal boot process from continuing so that it may spawn one or more Early Boot Installer process and allow them to install to one or more subsystems within thedevice 100. In one embodiment, the EarlyBoot Installer manager 102 may send a halt command to thedevice 100. The halt command may prohibit the launching of any software component which may utilize one or more of the basic drivers that may already be loaded. As can be appreciated by those of ordinary skill within the art, the EarlyBoot Installer manager 102 may prohibit or allow other boot processes and other components from launching and loading in different fashions, in addition to and/or in lieu of those depicted in this embodiment. - In one embodiment, the software component is halted so that Early Boot
Installer process n 201 can have full access to live copy n 108, which is being run by a corresponding subsystem within thedevice 100. By giving Early BootInstaller process n 201 or any other Early Boot Installer process access to a corresponding live copy of firmware in thedevice 100, thedevice 100 does not have to be continually rebooted to install to each subsystem of thedevice 100. As can be appreciate by those of ordinary skill within the art, components or processes may be halted for additional reasons, in addition to and/or in lieu of those depicted in this embodiment. - Each Early Boot Installer process is a configurable process that may be utilized by the
device 100 to accomplish various tasks. The EarlyBoot Installer manager 102 spawns an Early Boot Installer process from each firmware package in the downloaded firmware package in parallel. In one embodiment, the EarlyBoot Installer manager 102 may relay an instruction to havefirmware package n 200 launch Early Boot Installer process n 201l, which resides infirmware package n 200. As can be appreciated by those of ordinary skill within the art, the Early Boot Installer manager may spawn other processes from the firmware package in the downloadedfirmware bundle 105, in addition to and/or in lieu of those depicted in this embodiment, - The Early
Boot Installer manager 102 may then keep track of each Early Boot Installer process and monitor the status of each Early Boot Installer process. The EarlyBoot Installer manager 102 monitors the status of each Early Boot Installer process by each Early Boot Installer process periodically sending status updates to the EarlyBoot Installer manager 102. In one embodiment, the information from the status updates may include whether Early BootInstaller process n 201 is still running, at what stage the Early BootInstaller process n 201 is currently at, and when Early Boot Installer process n. 201 completes. In addition, the EarlyBoot Installer manager 102 may then send the information it receives from each Early Boot Installer process to thecontrol panel 103, for user feedback. In one embodiment the EarlyBoot Installer manager 102 may send progress information concerning Early BootInstaller process n 201 to thecontrol panel 103. As can be appreciated by those of ordinary skill within the art, the status provided may include other information or be sent to other devices or components, in addition to and/or in lieu of those depicted in the previous embodiment. - After each Early Boot Installer process has terminated, the Early Boot Installer manager 402 will allows a normal boot process to continue. In one embodiment, the
device 100 may then continue to boot with each subsystem within thedevice 100 running with current firmware without any additional reboots. As can be appreciated by those of ordinary skill within the art, the EarlyBoot Installer manager 102 may prohibit or allow other boot processes from continuing and control the spawning of other processes, in addition to and/or in lieu of those depicted in these embodiment. -
FIG. 3 illustrates a representation of potential usage of an Early Boot Installer process, according to an embodiment of the invention. The example includes Early BootInstaller process n 201, an EarlyBoot Installer manager 102, a correspondingfirmware package n 200, aversion database 106, and a corresponding live copy n 108 of firmware on thedevice 100. - As noted above, each Early Boot Installer process is spawned by the Early
Boot Installer massager 102 from a firmware package within the downloaded firmware package in parallel. In one embodiment, each Early Boot Installer process that is spawned by the EarlyBoot Installer manager 102 will communicate with aversion database 106 to determine in parallel whether an install to a corresponding subsystem within thedevice 100 is desired. If it is determined that an install is desired, the corresponding Early Boot Installer process will install over a corresponding subsystem's live copy of firmware ill parallel with other Early Boot Installer processes that may be installing over other corresponding live copies of firmware. - Each Early Boot Installer processes will determine in parallel whether an install to a corresponding subsystem within the
device 100 is desired. In one embodiment, Early BootInstaller process n 201 may read a value from an override flag, which is stored within the device i 00, in parallel with other Early Boot Installer processes that may be reading a value from other corresponding override flags to determine in parallel whether an install to a corresponding subsystem within thedevice 100 is desired An, override flag value is a data value that can be recognized by thedevice 100 and may be utilized as an instruction to force all install or not to force an install. The override flag value may instruct corresponding early boot installer process n 201 whether or not to force an install on a corresponding subsystem of thedevice 100. Each override flag may be stored anywhere on thedevice 100. In the same embodiment, the override flag value may be expressed with a 1 to instruct corresponding Early BootInstaller process n 201 to force an install, or a 0 to instruct corresponding Early BootInstaller process n 201 not to force an install. If the value of the override flag is read to force an install, then an install to the corresponding subsystem will be desired and will always occur. As can be appreciated by one of ordinary skill within the art, the override value may be represented in different ways and may be utilized by other processes, components, or devices, in addition to and/or in lieu of those depicted in this embodiment. - In another embodiment, if the value of the override flag is not read to force an install, corresponding Early Boot
Installer process n 201 may communicate with theversion database 106 and correspondingfirmware package n 200 on thenon-operational storage area 101 in parallel with other Early Boot Installer processes that may be communicating, with theversion database 106 and other corresponding firmware packages on anon-operational storage area 101 to determine in parallel whether an install to a corresponding subsystem within thedevice 100 is desired. If theversion database 106 has not yet been populated then a force install will always occur. Otherwise, Early BootInstaller process n 201 may check in parallel with other Early Boot Installer processes the corresponding; live copy version, stored on a version list in theversion database 106. If the version of correspondingfirmware package n 200 is a more recent version than the corresponding live copy n 108 version, then Early BootInstaller process n 201 will determine that an install to livecopy n 108 on the device, 100 is desired. As can be appreciated by those of ordinary skill within the art, determining whether a firmware install is desired may comprise of other methods, in addition to and/or in lieu of those depicted in these embodiments. - Each Early Boot Installer process which determines that an install is desired may then install in parallel from a corresponding firmware package over the live copy of firmware on the corresponding subsystem when desired. As noted above, each firmware package resides in a firmware bundle and may contain
various file types 202. In one embodiment, Early BootInstaller process n 201 may utilize thevarious file types 202 in correspondingfirmware package n 200 to install over corresponding live copy n 108 in thedevice 100. As can be appreciated by those of ordinary skill within the art, each Early Boot Installer process may install to other components or devices and may utilize other methods to install in parallel, in addition to and/or in lieu of those depicted in this embodiment. - Each corresponding Early Boot Installer process will terminate when it completes an installation over a corresponding live copy of firmware on the corresponding subsystem. As noted above, once each Early Boot installer process completes, the Early
Boot Installer manager 102 will allow the normal boot process to continue. -
FIG. 4 illustrates a representation of a usage of aversion database 106, according to an embodiment of the invention. Aversion database 106 is a storage facility for various forms of data and information. In one embodiment, theversion database 106 includes a list of resiliency flags and a list of firmware versions for each corresponding subsystem on thedevice 100. As can be appreciated by those of ordinary skill within the art, theversion database 106 may include other lists or other information, in addition to and/or in lieu of those depicted inFIG. 4 . - Each subsystem within the
device 100 may have a corresponding resiliency flag which may be stored in a list, in theversion database 106. A resiliency flag carries a value which reveals whether the most recent install to thedevice 100 was completed. A corresponding Early Boot Installer process may read the value of a corresponding resiliency flag and make a decision whether to re-install the corresponding firmware package, from the non-operational storage area, to the corresponding subsystem within thedevice 100. In one embodiment,resiliency flag 401 value may be expressed with a 1 to indicate that the most recent install was completed and a 0 to indicate that the most recent install was not completed. In the same embodiment Early BootInstaller process n 201 may readresiliency flag 401 value to be a 0 and determine that corresponding firmware package, 200 from thenon-operational storage area 101 should be reinstalled. As can be appreciated by those of ordinary skill within the art, the resiliency flag value may be represented by other numbers or values, in addition to and/or in lieu of those depicted in this embodiment, - In addition, the
version database 106 may also store version information for each subsystem and each remote device that is attached to the device I 00. The version information stored in the version list is the last known version of live copy the corresponding subsystem within thedevice 100 is running. In one embodiment, theversion database 106 initially communicates with corresponding subsystem within thedevice 100 and obtains live copy n 108 version that the corresponding subsystem within thedevice 100 is running. Theversion database 106 then creates a version list of each version of live copy firmware being run within thedevice 100. As can be appreciated by those of ordinary skill within the art, the version information stored may include other versions, in addition to and/or in lieu of those depicted in this embodiment. - As noted above, each Early Boot Installer process may compare the version of the corresponding firmware package with the version of the corresponding live copy listed in the version database 1096 when determining whether an install to the corresponding live copy firmware currently running on the corresponding subsystem in the
device 100 is desired. - In one embodiment,
version database 106 will be updated by Early BootInstaller process n 201. In updating theversion database 106, the value of correspondingresiliency flag 401 will be configured so that it reflects that the most recent install was successful and corresponding version oflive copy n 400 on the version list will be edited so that it reflects the current version of firmware live copy n 108 is running. Each Early Boot Installer process that completed an install will take similar actions in the updating ofversion database 106. As can be appreciated by those of ordinary skill within the art updatingversion database 106 may include other methods or configurations, in addition to and/or in lieu of those depicted in this embodiment. -
FIG. 5 is a flow chart illustrating a method for downloading a firmware bundle and installing a firmware package to one or more subsystems of a device in parallel, according to an embodiment of the invention. The method may be performed by the device in one embodiment. - The
first step 500 in the method embodiment shown inFIG. 5 is to initiate a firmware bundle download to a non-operational storage area. As has been noted, the firmware bundle may be downloaded through any input/output path. - The
second step 501 in the method embodiment shown inFIG. 5 is to reboot the device to deploy the downloaded firmware package from the non-operational storage area to a subsystem of the device. As noted above the device may be rebooted after the firmware bundle has finished downloading to the non-operational storage area. In addition, the firmware bundle may include one or more firmware packages. - The
third step 502 in the method embodiment shown in FIG; 5 is to launch an Early Boot installer manager to spawn and monitor the status of one or more Early Boot Installer processes. As noted above the Early Boot Installer manager may launch after an operating system and one or more basic driver has been loaded, but before a software component that may utilize one or more of the basic drivers is loaded. - The
fourth step 503 in the method embodiment shown inFIG. 5 is to determine in parallel whether a firmware install to one or more subsystem of the device is desired. As noted above, a corresponding Early Boot: Installer process may read the value of corresponding resiliency flag and make a decision as whether to reinstall the corresponding firmware package from the non-operational storage area if the previous install did not complete. Further, as noted above, each Early Boot Installer may read an override flag to determine whether to force an install. If the override flag value reflects to force an install, then it will always be determined that an install is desired. If the override flag value does not reflect a force install, then each Early Boot Installer process may compare the corresponding version of the firmware package with the corresponding subsystem version listed in a version database to determine whether or not a firmware install is desired, - The
fifth step 504 in the method embodiment shown inFIG. 5 is to install in parallel to one or more subsystems of the device when desired. As noted above, each corresponding Early Boot Installer process may determine from an override flag, resiliency flag, or aversion database 106 whether a firmware install is desired. If the corresponding Early Boot Installer process determines that a firmware install is desired, the corresponding Early Boot Installer may utilizevarious file types 202 from the corresponding firmware package, stored on thenon-operational storage area 101, and overwrite the live copy of firmware the corresponding subsystem within thedevice 101 is running
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/831,559 US8122447B2 (en) | 2007-07-31 | 2007-07-31 | Firmware installation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/831,559 US8122447B2 (en) | 2007-07-31 | 2007-07-31 | Firmware installation |
Publications (2)
Publication Number | Publication Date |
---|---|
US20090037904A1 true US20090037904A1 (en) | 2009-02-05 |
US8122447B2 US8122447B2 (en) | 2012-02-21 |
Family
ID=40339361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/831,559 Active 2030-10-19 US8122447B2 (en) | 2007-07-31 | 2007-07-31 | Firmware installation |
Country Status (1)
Country | Link |
---|---|
US (1) | US8122447B2 (en) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080136640A1 (en) * | 2006-12-07 | 2008-06-12 | Arnaud Lund | Method and system for controlling distant equipment |
US20100241838A1 (en) * | 2009-03-20 | 2010-09-23 | Jason Cohen | Method and system for firmware updates |
US20110047537A1 (en) * | 2009-08-21 | 2011-02-24 | Yu Jean X | Updating client node of computing system |
WO2011068502A1 (en) * | 2009-12-01 | 2011-06-09 | Hewlett-Packard Development Company, L.P. | Firmware management |
US20110145804A1 (en) * | 2009-06-04 | 2011-06-16 | Koji Oka | Imaging system |
US20120198434A1 (en) * | 2011-01-31 | 2012-08-02 | Digi International Inc. | Virtual bundling of remote device firmware upgrade |
CN102831000A (en) * | 2012-09-11 | 2012-12-19 | 华为技术有限公司 | System upgrading method and system |
CN103294566A (en) * | 2012-01-06 | 2013-09-11 | 株式会社理光 | Information processing apparatus, information processing method, and information processing program |
US20130268924A1 (en) * | 2012-04-09 | 2013-10-10 | Canon Kabushiki Kaisha | Information processing apparatus, program update method for information processing apparatus, and storage medium |
US20140067879A1 (en) * | 2012-08-29 | 2014-03-06 | Pantech Co., Ltd. | Application management for a terminal |
US8769525B2 (en) | 2011-01-31 | 2014-07-01 | Digi International Inc. | Remote firmware upgrade device mapping |
US8850173B2 (en) | 2009-04-29 | 2014-09-30 | Hewlett-Packard Development Company, L.P. | BIOS image manager |
US20140372739A1 (en) * | 2013-06-12 | 2014-12-18 | International Business Machines Corporation | Implementing concurrent adapter firmware update for an sriov adapter in a virtualized system |
CN104657160A (en) * | 2013-11-21 | 2015-05-27 | 联创汽车电子有限公司 | Multichip application burning method of vehicle-mounted controller |
US20150277888A1 (en) * | 2012-06-25 | 2015-10-01 | Cloudvolumes, Inc. | Systems and methods to create a clean install of an application |
WO2016209478A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Firmware block dispatch based on fusing |
CN106951290A (en) * | 2017-03-27 | 2017-07-14 | 深圳市金立通信设备有限公司 | A kind of application management method and terminal |
US10169178B2 (en) | 2013-06-12 | 2019-01-01 | International Business Machines Corporation | Implementing shared adapter configuration updates concurrent with maintenance actions in a virtualized system |
US10740084B2 (en) * | 2018-08-16 | 2020-08-11 | Intel Corporation | Soc-assisted resilient boot |
US10956143B2 (en) * | 2017-12-06 | 2021-03-23 | Hewlett Packard Enterprise Development Lp | Server updates |
US20230229417A1 (en) * | 2022-01-19 | 2023-07-20 | Calamp Corp. | Technologies for over-the-air updates for telematics systems |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8234486B2 (en) * | 2007-09-14 | 2012-07-31 | International Business Machines Corporation | Managing reboot operations |
WO2009091370A1 (en) * | 2008-01-17 | 2009-07-23 | Hewlett-Packard Development Company, L.P. | Device software customization |
US8869138B2 (en) * | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
US8972973B2 (en) * | 2012-06-27 | 2015-03-03 | Microsoft Technology Licensing, Llc | Firmware update discovery and distribution |
JP6101073B2 (en) * | 2012-12-27 | 2017-03-22 | 日本電産サンキョー株式会社 | Peripheral device, peripheral device control method, firmware download system, and program |
US8868796B1 (en) | 2013-04-18 | 2014-10-21 | Otter Products, Llc | Device and method for updating firmware of a peripheral device |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289511B1 (en) * | 1998-09-29 | 2001-09-11 | Telephonaktiebolaget Lm Ericsson | Method and system for distributing software in a telecommunications network |
US6301710B1 (en) * | 1999-01-06 | 2001-10-09 | Sony Corporation | System and method for creating a substitute registry when automatically installing an update program |
US20030177485A1 (en) * | 1998-03-25 | 2003-09-18 | Ray Soon Waldin | Multi-tiered incremental software updating |
US20030212856A1 (en) * | 2002-05-08 | 2003-11-13 | Nichols Charles E. | Method and apparatus for upgrading disk drive firmware in a RAID storage system |
US6681392B1 (en) * | 1999-12-15 | 2004-01-20 | Lexmark International, Inc. | Method and apparatus for remote peripheral software installation |
US20040194081A1 (en) * | 2002-03-23 | 2004-09-30 | Iyad Qumei | Update system for facilitating firmware/software update in a mobile handset |
US20040226008A1 (en) * | 2002-11-22 | 2004-11-11 | Sid Jacobi | Update system for facilitating software update and data conversion in an electronic device |
US20040243991A1 (en) * | 2003-01-13 | 2004-12-02 | Gustafson James P. | Mobile handset capable of updating its update agent |
US20050102665A1 (en) * | 2003-11-10 | 2005-05-12 | International Business Machines (Ibm) Corporation | Automatic parallel non-dependent component deployment |
US6971095B2 (en) * | 2000-05-17 | 2005-11-29 | Fujitsu Limited | Automatic firmware version upgrade system |
US20060020937A1 (en) * | 2004-07-21 | 2006-01-26 | Softricity, Inc. | System and method for extraction and creation of application meta-information within a software application repository |
US7013461B2 (en) * | 2001-01-05 | 2006-03-14 | International Business Machines Corporation | Systems and methods for service and role-based software distribution |
US20060095708A1 (en) * | 2004-11-04 | 2006-05-04 | International Business Machines Corporation | Apparatus and method for parallel installation of logical partitions |
US20060130039A1 (en) * | 2004-11-22 | 2006-06-15 | Fujitsu Limited | Update control program, update control method, and update control device |
US7082549B2 (en) * | 2000-11-17 | 2006-07-25 | Bitfone Corporation | Method for fault tolerant updating of an electronic device |
US7146609B2 (en) * | 2002-05-17 | 2006-12-05 | Sun Microsystems, Inc. | Method, system and article of manufacture for a firmware image |
US7155462B1 (en) * | 2002-02-01 | 2006-12-26 | Microsoft Corporation | Method and apparatus enabling migration of clients to a specific version of a server-hosted application, where multiple software versions of the server-hosted application are installed on a network |
US7158248B2 (en) * | 2002-02-07 | 2007-01-02 | Hewlett-Packard Development Company, L.P. | Control of software via bundling |
US20070028226A1 (en) * | 2000-11-17 | 2007-02-01 | Shao-Chun Chen | Pattern detection preprocessor in an electronic device update generation system |
US20080028385A1 (en) * | 2006-07-26 | 2008-01-31 | Dell Products L.P. | Apparatus and Methods for Updating Firmware |
-
2007
- 2007-07-31 US US11/831,559 patent/US8122447B2/en active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030177485A1 (en) * | 1998-03-25 | 2003-09-18 | Ray Soon Waldin | Multi-tiered incremental software updating |
US6289511B1 (en) * | 1998-09-29 | 2001-09-11 | Telephonaktiebolaget Lm Ericsson | Method and system for distributing software in a telecommunications network |
US6301710B1 (en) * | 1999-01-06 | 2001-10-09 | Sony Corporation | System and method for creating a substitute registry when automatically installing an update program |
US6681392B1 (en) * | 1999-12-15 | 2004-01-20 | Lexmark International, Inc. | Method and apparatus for remote peripheral software installation |
US6971095B2 (en) * | 2000-05-17 | 2005-11-29 | Fujitsu Limited | Automatic firmware version upgrade system |
US7082549B2 (en) * | 2000-11-17 | 2006-07-25 | Bitfone Corporation | Method for fault tolerant updating of an electronic device |
US20070028226A1 (en) * | 2000-11-17 | 2007-02-01 | Shao-Chun Chen | Pattern detection preprocessor in an electronic device update generation system |
US7013461B2 (en) * | 2001-01-05 | 2006-03-14 | International Business Machines Corporation | Systems and methods for service and role-based software distribution |
US7155462B1 (en) * | 2002-02-01 | 2006-12-26 | Microsoft Corporation | Method and apparatus enabling migration of clients to a specific version of a server-hosted application, where multiple software versions of the server-hosted application are installed on a network |
US7158248B2 (en) * | 2002-02-07 | 2007-01-02 | Hewlett-Packard Development Company, L.P. | Control of software via bundling |
US20040194081A1 (en) * | 2002-03-23 | 2004-09-30 | Iyad Qumei | Update system for facilitating firmware/software update in a mobile handset |
US20030212856A1 (en) * | 2002-05-08 | 2003-11-13 | Nichols Charles E. | Method and apparatus for upgrading disk drive firmware in a RAID storage system |
US7146609B2 (en) * | 2002-05-17 | 2006-12-05 | Sun Microsystems, Inc. | Method, system and article of manufacture for a firmware image |
US20040226008A1 (en) * | 2002-11-22 | 2004-11-11 | Sid Jacobi | Update system for facilitating software update and data conversion in an electronic device |
US20040243991A1 (en) * | 2003-01-13 | 2004-12-02 | Gustafson James P. | Mobile handset capable of updating its update agent |
US20050102665A1 (en) * | 2003-11-10 | 2005-05-12 | International Business Machines (Ibm) Corporation | Automatic parallel non-dependent component deployment |
US20060020937A1 (en) * | 2004-07-21 | 2006-01-26 | Softricity, Inc. | System and method for extraction and creation of application meta-information within a software application repository |
US20060095708A1 (en) * | 2004-11-04 | 2006-05-04 | International Business Machines Corporation | Apparatus and method for parallel installation of logical partitions |
US20060130039A1 (en) * | 2004-11-22 | 2006-06-15 | Fujitsu Limited | Update control program, update control method, and update control device |
US20080028385A1 (en) * | 2006-07-26 | 2008-01-31 | Dell Products L.P. | Apparatus and Methods for Updating Firmware |
Non-Patent Citations (2)
Title |
---|
Jann et al, Dynamic Reconfiguration: Basic Building Blocks for Autonomic Computing on IBM pSeries Servers, 2003, IBM Systems Journal pages 29-37, Retrieved on [2011-12-29] Retrieved from the Internet: URL * |
Mitchell et al, IBM Power5 Processor-based servers: A Highly Available Design for Business-Critical Applictions, 2005, pages 1-44, Retrieved on [2011-12-29] Retrieved from the Internet: URL * |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8115596B2 (en) * | 2006-12-07 | 2012-02-14 | Intermational Business Machines Corporation | Method and system for controlling distant equipment |
US20080136640A1 (en) * | 2006-12-07 | 2008-06-12 | Arnaud Lund | Method and system for controlling distant equipment |
US20100241838A1 (en) * | 2009-03-20 | 2010-09-23 | Jason Cohen | Method and system for firmware updates |
US8850173B2 (en) | 2009-04-29 | 2014-09-30 | Hewlett-Packard Development Company, L.P. | BIOS image manager |
US20110145804A1 (en) * | 2009-06-04 | 2011-06-16 | Koji Oka | Imaging system |
US8745609B2 (en) * | 2009-06-04 | 2014-06-03 | Ricoh Company, Ltd. | Imaging system |
US20110047537A1 (en) * | 2009-08-21 | 2011-02-24 | Yu Jean X | Updating client node of computing system |
WO2011020855A3 (en) * | 2009-08-21 | 2011-07-14 | International Business Machines Corporation | Updating a client node of a computing system |
US8464243B2 (en) | 2009-08-21 | 2013-06-11 | International Business Machines Corporation | Updating client node of computing system |
US8601463B2 (en) * | 2009-12-01 | 2013-12-03 | Hewlett-Packard Development Company, L.P. | Firmware management |
WO2011068502A1 (en) * | 2009-12-01 | 2011-06-09 | Hewlett-Packard Development Company, L.P. | Firmware management |
US20120278795A1 (en) * | 2009-12-01 | 2012-11-01 | Paul Bouchier | Firmware management |
US8769525B2 (en) | 2011-01-31 | 2014-07-01 | Digi International Inc. | Remote firmware upgrade device mapping |
US20120198434A1 (en) * | 2011-01-31 | 2012-08-02 | Digi International Inc. | Virtual bundling of remote device firmware upgrade |
EP2613255A3 (en) * | 2012-01-06 | 2014-12-10 | Ricoh Company, Ltd. | Method to update firmware |
CN103294566A (en) * | 2012-01-06 | 2013-09-11 | 株式会社理光 | Information processing apparatus, information processing method, and information processing program |
US9317281B2 (en) * | 2012-04-09 | 2016-04-19 | Canon Kabushiki Kaisha | Information processing apparatus, program update method for information processing apparatus, and storage medium |
US20130268924A1 (en) * | 2012-04-09 | 2013-10-10 | Canon Kabushiki Kaisha | Information processing apparatus, program update method for information processing apparatus, and storage medium |
US20150277888A1 (en) * | 2012-06-25 | 2015-10-01 | Cloudvolumes, Inc. | Systems and methods to create a clean install of an application |
US20140067879A1 (en) * | 2012-08-29 | 2014-03-06 | Pantech Co., Ltd. | Application management for a terminal |
CN102831000A (en) * | 2012-09-11 | 2012-12-19 | 华为技术有限公司 | System upgrading method and system |
US10169178B2 (en) | 2013-06-12 | 2019-01-01 | International Business Machines Corporation | Implementing shared adapter configuration updates concurrent with maintenance actions in a virtualized system |
US20150370642A1 (en) * | 2013-06-12 | 2015-12-24 | International Business Machines Corporation | Implementing concurrent adapter firmware update for an sriov adapter in a virtualized system |
US9720775B2 (en) * | 2013-06-12 | 2017-08-01 | International Business Machines Corporation | Implementing concurrent adapter firmware update for an SRIOV adapter in a virtualized system |
US9778989B2 (en) * | 2013-06-12 | 2017-10-03 | International Business Machines Corporation | Implementing concurrent adapter firmware update for an SRIOV adapter in a virtualized system |
US20140372739A1 (en) * | 2013-06-12 | 2014-12-18 | International Business Machines Corporation | Implementing concurrent adapter firmware update for an sriov adapter in a virtualized system |
CN104657160A (en) * | 2013-11-21 | 2015-05-27 | 联创汽车电子有限公司 | Multichip application burning method of vehicle-mounted controller |
WO2016209478A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Firmware block dispatch based on fusing |
US9836307B2 (en) | 2015-06-24 | 2017-12-05 | Intel Corporation | Firmware block dispatch based on fusing |
CN106951290A (en) * | 2017-03-27 | 2017-07-14 | 深圳市金立通信设备有限公司 | A kind of application management method and terminal |
US10956143B2 (en) * | 2017-12-06 | 2021-03-23 | Hewlett Packard Enterprise Development Lp | Server updates |
US10740084B2 (en) * | 2018-08-16 | 2020-08-11 | Intel Corporation | Soc-assisted resilient boot |
US20230229417A1 (en) * | 2022-01-19 | 2023-07-20 | Calamp Corp. | Technologies for over-the-air updates for telematics systems |
WO2023141502A1 (en) * | 2022-01-19 | 2023-07-27 | Calamp Corp. | Technologies for over-the-air updates for telematics systems |
Also Published As
Publication number | Publication date |
---|---|
US8122447B2 (en) | 2012-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8122447B2 (en) | Firmware installation | |
US5812857A (en) | Field configurable embedded computer system | |
US6928579B2 (en) | Crash recovery system | |
US7185191B2 (en) | Updatable firmware having boot and/or communication redundancy | |
US7730295B1 (en) | Updating firmware of a peripheral device | |
CN101425018B (en) | Embedded firmware upgrading method and device based on sectional form | |
US8136108B2 (en) | Updating firmware with multiple processors | |
WO2022007656A1 (en) | Bootloader software updating method and apparatus, embedded controller, and storage medium | |
WO2003025742A3 (en) | Software update method, apparatus and system | |
CN101815988A (en) | Firmware image update and management | |
US20040044997A1 (en) | Method and apparatus for downloading executable code in a non-disruptive manner | |
US7669046B2 (en) | Data processing apparatus and firmware update method | |
CN102089753A (en) | System and method for safely updating thin client operating system over a network | |
JP2008504628A (en) | Safe flushing | |
US6523103B2 (en) | Disablement of a write filter stored on a write-protected partition | |
CN111433747B (en) | Virtual memory for loading operating systems | |
CN117407020A (en) | OTA upgrade refreshing method and device, electronic equipment and storage medium | |
CN102298531B (en) | Method for upgrading flash memory file system in embedded system | |
US20030187818A1 (en) | Method and apparatus for embedding configuration data | |
JP6099106B2 (en) | Method, computer system, and memory device for providing at least one data carrier | |
KR100487717B1 (en) | System and method for loading operating system for embedded system | |
EP1302851A2 (en) | Improvements relating to reprogramming an electronic apparatus | |
KR101113342B1 (en) | Boot-loader version managing method for mobile communication terminal | |
WO2001050261A2 (en) | Updating non volatile memory in a data processing system | |
JP2023070929A (en) | Electronic control system, data structure of software package, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COHEN, EUGENE;HOFFMAN, BRIAN;LEE, CHRIS;REEL/FRAME:019807/0219;SIGNING DATES FROM 20070730 TO 20070802 Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COHEN, EUGENE;HOFFMAN, BRIAN;LEE, CHRIS;SIGNING DATES FROM 20070730 TO 20070802;REEL/FRAME:019807/0219 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COHEN, EUGENE;HOFFMANN, BRIAN;LEE, CHRIS;REEL/FRAME:020816/0869;SIGNING DATES FROM 20071119 TO 20080416 Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COHEN, EUGENE;HOFFMANN, BRIAN;LEE, CHRIS;SIGNING DATES FROM 20071119 TO 20080416;REEL/FRAME:020816/0869 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |