US20010011347A1 - Method and apparatus for upgrading firmware boot and main codes in a programmable memory - Google Patents
Method and apparatus for upgrading firmware boot and main codes in a programmable memory Download PDFInfo
- Publication number
- US20010011347A1 US20010011347A1 US09/102,183 US10218398A US2001011347A1 US 20010011347 A1 US20010011347 A1 US 20010011347A1 US 10218398 A US10218398 A US 10218398A US 2001011347 A1 US2001011347 A1 US 2001011347A1
- Authority
- US
- United States
- Prior art keywords
- boot code
- processor
- new
- active
- inactive
- 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
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
- G06F9/4406—Loading of operating system
-
- 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
- This invention relates to the upgrading of either or both of the firmware boot and main codes in a programmable memory.
- Programmable memory and microprocessors are used in many devices.
- One such device is a remote handheld terminal that is used by technicians in the process industries for process control system configuration, monitoring, tuning and diagnostics.
- the handheld terminal has firmware therein stored in the programmable memory.
- the firmware includes the boot code and the main code.
- the main code is used for the regular operation of the handheld terminal.
- the firmware in the remote handheld terminal may include an enhancement of the functionality of the terminal.
- the firmware upgrading technique must allow for a flexible size and location remapping of the boot and main firmware codes without any need for hardware changes.
- One technique that is now used to upgrade the firmware of a remote handheld terminal is to open the terminal and insert programmable memory with the new firmware therein in place of the programmable memory in the terminal.
- this technique involves both cost and delay in upgrading the terminal to the new firmware as programmable memory must first be programmed with the new firmware and then delivered to the sites where the terminals are used.
- this technique usually requires an instrument technician or other person with knowledge of electronic circuitry to open and replace the programmable memory, and may result in damage to the handheld terminal during the replacement process.
- U.S. Pat. Nos. 5,432,927 and 5,568,641 describe other techniques that may be used to upgrade the boot firmware in a remote handheld terminal. Both of these techniques rely on hardware assisted mapping of the boot code addresses. Therefore, neither of these techniques would allow the size and location of the boot codes in the processor address map of the handheld terminal to be changed without a hardware change. As is described above, such a change is not desirable as it requires that the terminal be opened.
- a system for providing new boot code for a processor has a writable non-volatile memory.
- the memory has one region that has active boot code therein; and another region that has inactive boot code therein.
- the system also has a source of the new boot code; and a processor and associated electronics that is under the control of the active boot code for replacing the inactive boot code with the new boot code from the source.
- a system for providing new boot code for a processor has a writable non-volatile memory.
- the memory has one region that has active boot code therein; and another region that has inactive boot code therein.
- the system also has a source of the new boot code connected to the processor.
- the processor operating under control of the active boot code replaces the inactive boot code with the new boot code from the source.
- a method of providing new boot code for a processor has a step of providing a writable non-volatile memory having one region having active boot code for the processor therein and another region having inactive boot code for the processor therein.
- the method also has the steps of connecting a source of new boot code to the processor; transmitting the new boot code from the source to the processor; and writing under control of the active boot code the new boot code to the another region to thereby replace the inactive boot code.
- a method of providing new boot code for the processor has the step of providing in the device a writable non-volatile memory having one region having active boot code for the processor therein and another region having inactive boot code for the processor therein.
- the method also has the steps of connecting a source of new boot code to the processor; transmitting the new boot code from the source to the processor; and writing under control of the active boot code the new boot code to the another region to thereby replace the inactive boot code.
- a system for providing new boot code for a processor in a device has a writable non-volatile memory in the device.
- the memory has one region that has active boot code therein; and another region that has inactive boot code therein.
- the system also has a means for connecting a source of the new boot code to the device; and a means including the processor and under control of the active boot code for replacing the inactive boot code with the new boot code from the source.
- FIG. 1 shows a handheld terminal.
- FIG. 2 shows a simplified layout for the programmable memory in the handheld terminal.
- FIG. 3 is a block diagram showing the connection of the handheld terminal to a source of new boot code and/or main firmware.
- FIGS. 4A and 4B show a flowchart for the boot code and main firmware upgrade procedures.
- Terminal 10 includes a keypad 12 which includes keys that turn the terminal on and off as well as various keys that allow the technician to configure, monitor and troubleshoot process control field devices.
- Terminal 10 further includes a display 14 and a cord 16 .
- the cord 16 has clip leads (not shown) which are used to clip onto the signal wires of the field devices.
- Handheld terminal 10 further includes an RS232 port 18 which may be for example be located in the bottom of terminal 10 as is shown in FIG. 1.
- Port 18 allows the handheld terminal 10 to be connected by a suitable cable to the serial port of a personal computer (PC) 32 [see FIG. 3] so that the boot and/or main firmware in the terminal can be upgraded.
- PC personal computer
- a programmable memory 20 Internal to the terminal 10 is a programmable memory 20 a simplified layout for which is shown in FIG. 2, and a microprocessor and associated electronics 30 (see FIG. 3).
- Memory 20 may for example be a Flash electrically erasable programmable read-only memory.
- the memory 20 is partitioned into functional software units where the boot code and main firmware reside. Specifically, in memory 20 there are first and second boot code units 22 , 24 , main firmware unit 26 , and process vector table 28 . As will be described in more detail below, the first boot code and second boot code are not simultaneously active. When the first boot code is active the second boot code is inactive and vice versa.
- Each of the boot code units 22 , 24 include a copy of the vector table 22 a , 24 a at the top of each of units 22 , 24 .
- each unit includes a version label 22 b , 24 b and directly below the version label each unit includes the boot code 22 c , 24 c .
- the main firmware unit includes at its top a checksum and version label 26 a .
- the main firmware table includes a vector jump table 26 b .
- the main firmware 26 c is directly below the vector jump table.
- the upgrading of the boot code will first be described below followed by a description of the upgrading of the main firmware.
- the RS232 port 18 of terminal 10 is, as is shown in the block diagram of FIG. 3, connected to the serial port of the PC 32 by cable 34 .
- PC 32 includes the application software that communicates with the terminal 10 during the upgrade.
- boot code 1 or boot code 2 When terminal 10 is operating either boot code 1 or boot code 2 , but not both, is active.
- the microprocessor 30 operates under control of the then active boot code to perform the upgrade of the boot code and/or main firmware.
- the boot code upgrade the inactive boot code is replaced with upgraded, that is, new boot code from PC 32 .
- the new boot code becomes the active boot code.
- the main firmware upgrade the main firmware then in terminal 10 is replaced with new main firmware from the PC 32 .
- the files for the upgraded boot code firmware and the upgraded main firmware are made available to a registered user of the handheld terminal 10 on an Internet web site.
- the registered user can log on to the web site and download the upgrade file(s) from the web site onto PC 32 .
- the boot code and main firmware addresses are encrypted in the associated upgrade file so that PC 32 can control the addresses in memory 20 into which the upgraded boot code and/or main firmware are written.
- the files for the upgraded firmware that are posted on the web site may be encrypted for purposes of security and also contain the version number and checksum information.
- the new, that is, upgraded, boot code replaces the boot code in the inactive boot code block of terminal 10 .
- boot code block 22 is active during the boot code upgrade then the new boot code will be written into boot code block 24 .
- the new boot code will become the active boot code of the handheld terminal 10 .
- the PC application software sends a command to the terminal 10 to read the processor vector table 28 to thereby determine which one of the boot code blocks 22 , 24 is currently active in the terminal. For purposes of explanation it will be presumed hereinafter that boot code 22 c is active in terminal 10 .
- the PC then requests the handheld active boot code 22 c to start tracking a checksum on the data, that is the new boot code, being written into the inactive block 24 .
- the new code is then sent to the inactive boot code block 24 .
- the new boot code can be written to a start address that is different than the start address of the inactive boot code. This flexibility allows boot code block 24 to be moved to accommodate an increase in the size of the new boot code now being written to block 24 or an increase in the size of boot code block 22 that is planned to appear in the next upgrade. It should be appreciated that the new boot code should not overwrite any part of the active boot code.
- the relocation of block 24 is taken into account when vector table copy 24 a is written into the processor vector table 28 at the end of the upgrade procedure.
- boot code 22 c Upon verification by the now active boot code 22 c that the overwrite of processor vector table 28 has occurred, the boot code 22 c resets the terminal 10 . Upon terminal 10 reset, the upgraded boot code 24 c becomes the active boot code of the terminal.
- boot code 2 of block 24 that is the new boot code
- boot code 1 of block 22 is inactive as that is the old, that is, not upgraded, boot code.
- the new boot code of boot code 1 of block 22 will become the active boot code for the terminal 10 and the old boot code of boot code 2 of block 24 will become the inactive boot code. Therefore, each successful upgrade of the boot code causes the previously inactive boot code block to become active and the previously active boot code block to become inactive.
- the PC application program sends commands to the terminal 10 to prepare the terminal for the upgrade. These commands request the active boot code to start checking a checksum on the data, that is, the new, that is, upgraded main firmware being written into the memory 20 .
- the PC transmits the new main firmware to terminal 10 .
- the new main firmware can be written to a start address which is different than the start address of the present main firmware. This flexibility allows the main firmware block 26 to be moved to accommodate an increase in size of the main firmware now being written or a planned increase in the size of the next upgrade of the main firmware or the boot code.
- the interrupt vectors in the main firmware are double indexed through a fixed table.
- the processor vector table 28 will point to a location in the main firmware vector jump table 26 b which in turn points to a location in the main firmware 26 c . There ore, even if the main firmware vector jump table 26 b i changed by the main firmware upgrade the double indexing avoids the need to upgrade the processor vector table 28 at the end of the main firmware upgrade.
- FIGS. 4A and 4B show flowchart for the boot code and main firmware upgrade procedures described above.
- the boot code and main firmware addresses are encrypted in the associated upgrade file so that the PC can control the addresses in memory 20 into which the upgraded boot code and/or main firmware are written. Therefore, the size and starting address of the boot code blocks 22 , 24 and the main firmware block 26 in memory 20 are not fixed and can be changed through the upgrade procedure.
- the only limitations on increasing the size of blocks 22 , 24 and 26 are the size of memory 20 and the size of an adjacent block during the upgrade of blocks 22 , 24 and 26 .
- an increase in the size of main firmware block 26 through the upgrade procedure described above is limited by adjacent block 24 . It should be appreciated that a series of upgrades can result in the increase of the size of block 26 by moving and/or shrinking blocks 22 and 26 .
- a boot code or main firmware upgrade procedure may fail prior to completion for any one of a number of reasons including a power failure or a break in the cable connection port 18 to the PC. Even if the procedure were to fail prior to completion, the terminal 10 is still operable. If the main firmware upgrade fails prior to completion the operator can start terminal 10 again using the boot code firmware contained in memory 20 and reinitiate the main firmware upgrade. During a boot code firmware upgrade the boot code being upgraded is in the inactive boot code block. Therefore a failure in the upgrade prior to completion is not a problem as the terminal can still operate using the active boot code.
Abstract
Description
- This invention relates to the upgrading of either or both of the firmware boot and main codes in a programmable memory.
- Programmable memory and microprocessors are used in many devices. One such device is a remote handheld terminal that is used by technicians in the process industries for process control system configuration, monitoring, tuning and diagnostics. The handheld terminal has firmware therein stored in the programmable memory.
- The firmware includes the boot code and the main code. The main code is used for the regular operation of the handheld terminal.
- Sometimes it is necessary to upgrade the firmware in the remote handheld terminal. A need for upgrading the boot code might arise when the functionality of that code is enhanced. The main firmware will be upgraded whenever the normal functionality of the handheld terminal has to be enhanced or modified. Therefore, the upgrade of firmware in the remote handheld terminal may include an enhancement of the functionality of the terminal. In that instance, the firmware upgrading technique must allow for a flexible size and location remapping of the boot and main firmware codes without any need for hardware changes.
- One technique that is now used to upgrade the firmware of a remote handheld terminal is to open the terminal and insert programmable memory with the new firmware therein in place of the programmable memory in the terminal. As can be appreciated, this technique involves both cost and delay in upgrading the terminal to the new firmware as programmable memory must first be programmed with the new firmware and then delivered to the sites where the terminals are used. As can further be appreciated, this technique usually requires an instrument technician or other person with knowledge of electronic circuitry to open and replace the programmable memory, and may result in damage to the handheld terminal during the replacement process.
- U.S. Pat. Nos. 5,432,927 and 5,568,641 describe other techniques that may be used to upgrade the boot firmware in a remote handheld terminal. Both of these techniques rely on hardware assisted mapping of the boot code addresses. Therefore, neither of these techniques would allow the size and location of the boot codes in the processor address map of the handheld terminal to be changed without a hardware change. As is described above, such a change is not desirable as it requires that the terminal be opened.
- A system for providing new boot code for a processor. The system has a writable non-volatile memory. The memory has one region that has active boot code therein; and another region that has inactive boot code therein. The system also has a source of the new boot code; and a processor and associated electronics that is under the control of the active boot code for replacing the inactive boot code with the new boot code from the source.
- A system for providing new boot code for a processor. The system has a writable non-volatile memory. The memory has one region that has active boot code therein; and another region that has inactive boot code therein. The system also has a source of the new boot code connected to the processor. The processor operating under control of the active boot code replaces the inactive boot code with the new boot code from the source.
- A method of providing new boot code for a processor. The method has a step of providing a writable non-volatile memory having one region having active boot code for the processor therein and another region having inactive boot code for the processor therein. The method also has the steps of connecting a source of new boot code to the processor; transmitting the new boot code from the source to the processor; and writing under control of the active boot code the new boot code to the another region to thereby replace the inactive boot code.
- In a device that has a processor a method of providing new boot code for the processor. The method has the step of providing in the device a writable non-volatile memory having one region having active boot code for the processor therein and another region having inactive boot code for the processor therein. The method also has the steps of connecting a source of new boot code to the processor; transmitting the new boot code from the source to the processor; and writing under control of the active boot code the new boot code to the another region to thereby replace the inactive boot code.
- A system for providing new boot code for a processor in a device. The system has a writable non-volatile memory in the device. The memory has one region that has active boot code therein; and another region that has inactive boot code therein. The system also has a means for connecting a source of the new boot code to the device; and a means including the processor and under control of the active boot code for replacing the inactive boot code with the new boot code from the source.
- FIG. 1 shows a handheld terminal.
- FIG. 2 shows a simplified layout for the programmable memory in the handheld terminal.
- FIG. 3 is a block diagram showing the connection of the handheld terminal to a source of new boot code and/or main firmware.
- FIGS. 4A and 4B show a flowchart for the boot code and main firmware upgrade procedures.
- Referring now to FIG. 1, there is shown an example of a remote
handheld terminal 10 used in the process control industries. Terminal 10 includes akeypad 12 which includes keys that turn the terminal on and off as well as various keys that allow the technician to configure, monitor and troubleshoot process control field devices.Terminal 10 further includes adisplay 14 and acord 16. Thecord 16 has clip leads (not shown) which are used to clip onto the signal wires of the field devices. -
Handheld terminal 10 further includes anRS232 port 18 which may be for example be located in the bottom ofterminal 10 as is shown in FIG. 1.Port 18 allows thehandheld terminal 10 to be connected by a suitable cable to the serial port of a personal computer (PC) 32 [see FIG. 3] so that the boot and/or main firmware in the terminal can be upgraded. - Internal to the
terminal 10 is a programmable memory 20 a simplified layout for which is shown in FIG. 2, and a microprocessor and associated electronics 30 (see FIG. 3).Memory 20 may for example be a Flash electrically erasable programmable read-only memory. As is shown in FIG. 2, thememory 20 is partitioned into functional software units where the boot code and main firmware reside. Specifically, inmemory 20 there are first and secondboot code units main firmware unit 26, and process vector table 28. As will be described in more detail below, the first boot code and second boot code are not simultaneously active. When the first boot code is active the second boot code is inactive and vice versa. - Each of the
boot code units units version label boot code version label 26 a. Directly below the checksum and version label, the main firmware table includes a vector jump table 26 b. Themain firmware 26 c is directly below the vector jump table. - The upgrading of the boot code will first be described below followed by a description of the upgrading of the main firmware. When the boot code and/or main firmware in
terminal 10 is to be upgraded, theRS232 port 18 ofterminal 10 is, as is shown in the block diagram of FIG. 3, connected to the serial port of thePC 32 bycable 34.PC 32 includes the application software that communicates with the terminal 10 during the upgrade. - When terminal10 is operating either boot code 1 or
boot code 2, but not both, is active. Themicroprocessor 30 operates under control of the then active boot code to perform the upgrade of the boot code and/or main firmware. In the boot code upgrade, the inactive boot code is replaced with upgraded, that is, new boot code fromPC 32. When terminal 10 and thusmicroprocessor 30 is reset, the new boot code becomes the active boot code. In the main firmware upgrade, the main firmware then interminal 10 is replaced with new main firmware from thePC 32. - In both upgrades the files for the upgraded boot code firmware and the upgraded main firmware are made available to a registered user of the
handheld terminal 10 on an Internet web site. The registered user can log on to the web site and download the upgrade file(s) from the web site ontoPC 32. The boot code and main firmware addresses are encrypted in the associated upgrade file so thatPC 32 can control the addresses inmemory 20 into which the upgraded boot code and/or main firmware are written. The files for the upgraded firmware that are posted on the web site may be encrypted for purposes of security and also contain the version number and checksum information. - Boot Code Upgrade
- In the procedure for upgrading of the boot code, the new, that is, upgraded, boot code replaces the boot code in the inactive boot code block of
terminal 10. For example, ifboot code block 22 is active during the boot code upgrade then the new boot code will be written intoboot code block 24. Upon the resetting ofterminal 10 and thusmicroprocessor 30, the new boot code will become the active boot code of thehandheld terminal 10. - The specific procedure for upgrading the boot code including swapping the upgraded boot code for the non-upgraded boot code active is as follows:
-
boot code 22 c is active interminal 10. -
active boot code 22 c to start tracking a checksum on the data, that is the new boot code, being written into theinactive block 24. The new code is then sent to the inactiveboot code block 24. The new boot code can be written to a start address that is different than the start address of the inactive boot code. This flexibility allowsboot code block 24 to be moved to accommodate an increase in the size of the new boot code now being written to block 24 or an increase in the size ofboot code block 22 that is planned to appear in the next upgrade. It should be appreciated that the new boot code should not overwrite any part of the active boot code. The relocation ofblock 24 is taken into account when vector table copy 24 a is written into the processor vector table 28 at the end of the upgrade procedure. -
boot code block 24, the PC confirms the checksum of the newly loaded upgradedboot code 24. -
terminal 10 to indicate that the new boot code firmware was successfully transferred toboot code block 24. This command is also a request to theactive boot code 22 c to turn off all interrupt activity and copy the new vector table copy 24 a transmitted from the PC into the processor vector table 28 and reset thehandheld terminal 10. The vector table copy 24 a of thenew boot code 24 c has to be transferred to the processor vector table 28 ofmemory 20 to make thenew boot code 24 c the active boot code of the terminal 10. -
boot code 24 c. -
active boot code 22 c that the overwrite of processor vector table 28 has occurred, theboot code 22 c resets the terminal 10. Uponterminal 10 reset, the upgradedboot code 24 c becomes the active boot code of the terminal. - It should be appreciated that at the end of the successful upgrade of
boot code block 24 described above,boot code 2 ofblock 24, that is the new boot code, is the active boot code for thehandheld terminal 10 and boot code 1 ofblock 22 is inactive as that is the old, that is, not upgraded, boot code. The next time the boot code is to be upgraded, it will be boot code 1 ininactive block 22 that is upgraded. At the successful end of that upgrade, the new boot code of boot code 1 ofblock 22 will become the active boot code for the terminal 10 and the old boot code ofboot code 2 ofblock 24 will become the inactive boot code. Therefore, each successful upgrade of the boot code causes the previously inactive boot code block to become active and the previously active boot code block to become inactive. - Main Firmware Upgrade
- The specific procedure for upgrading the main firmware is as follows:
-
memory 20. -
terminal 10. The new main firmware can be written to a start address which is different than the start address of the present main firmware. This flexibility allows themain firmware block 26 to be moved to accommodate an increase in size of the main firmware now being written or a planned increase in the size of the next upgrade of the main firmware or the boot code. -
-
- The interrupt vectors in the main firmware are double indexed through a fixed table. The processor vector table28 will point to a location in the main firmware vector jump table 26 b which in turn points to a location in the
main firmware 26 c. There ore, even if the main firmware vector jump table 26 b i changed by the main firmware upgrade the double indexing avoids the need to upgrade the processor vector table 28 at the end of the main firmware upgrade. - FIGS. 4A and 4B show flowchart for the boot code and main firmware upgrade procedures described above.
- As was described above, the boot code and main firmware addresses are encrypted in the associated upgrade file so that the PC can control the addresses in
memory 20 into which the upgraded boot code and/or main firmware are written. Therefore, the size and starting address of the boot code blocks 22, 24 and themain firmware block 26 inmemory 20 are not fixed and can be changed through the upgrade procedure. The only limitations on increasing the size ofblocks memory 20 and the size of an adjacent block during the upgrade ofblocks main firmware block 26 through the upgrade procedure described above is limited byadjacent block 24. It should be appreciated that a series of upgrades can result in the increase of the size ofblock 26 by moving and/or shrinkingblocks - A boot code or main firmware upgrade procedure may fail prior to completion for any one of a number of reasons including a power failure or a break in the
cable connection port 18 to the PC. Even if the procedure were to fail prior to completion, the terminal 10 is still operable. If the main firmware upgrade fails prior to completion the operator can start terminal 10 again using the boot code firmware contained inmemory 20 and reinitiate the main firmware upgrade. During a boot code firmware upgrade the boot code being upgraded is in the inactive boot code block. Therefore a failure in the upgrade prior to completion is not a problem as the terminal can still operate using the active boot code. - The flexibility described above in writing new boot code or main firmware is also applicable where the new code is the same size as or less even than the code it is replacing.
- It is to be understood that the description of the preferred embodiment(s) is (are) intended to be only illustrative, rather than exhaustive, of the present invention. Those of ordinary skill will be able to make certain additions, deletions, and/or modifications to the embodiment(s) of the disclosed subject matter without departing from the spirit of the invention or its scope, as defined by the appended claims.
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/102,183 US6275931B1 (en) | 1998-06-22 | 1998-06-22 | Method and apparatus for upgrading firmware boot and main codes in a programmable memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/102,183 US6275931B1 (en) | 1998-06-22 | 1998-06-22 | Method and apparatus for upgrading firmware boot and main codes in a programmable memory |
Publications (2)
Publication Number | Publication Date |
---|---|
US20010011347A1 true US20010011347A1 (en) | 2001-08-02 |
US6275931B1 US6275931B1 (en) | 2001-08-14 |
Family
ID=22288545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/102,183 Expired - Fee Related US6275931B1 (en) | 1998-06-22 | 1998-06-22 | Method and apparatus for upgrading firmware boot and main codes in a programmable memory |
Country Status (1)
Country | Link |
---|---|
US (1) | US6275931B1 (en) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005351A1 (en) * | 2001-06-30 | 2003-01-02 | Samsung Electronics Co., Ltd. | Method of upgrading software in a network environment and a network device for performing the same |
EP1372068A2 (en) * | 2002-06-11 | 2003-12-17 | Seiko Epson Corporation | System, method and program for rewriting a flash memory |
US20040250167A1 (en) * | 2003-03-27 | 2004-12-09 | Masahiko Sato | Information processing apparatus and method, program, and recording medium |
US20050228978A1 (en) * | 2002-06-28 | 2005-10-13 | Koninklijke Philips Electronics N.V. | Software download into a receiver |
US20060236150A1 (en) * | 2005-04-01 | 2006-10-19 | Dot Hill Systems Corporation | Timer-based apparatus and method for fault-tolerant booting of a storage controller |
US20060236198A1 (en) * | 2005-04-01 | 2006-10-19 | Dot Hill Systems Corporation | Storage system with automatic redundant code component failure detection, notification, and repair |
US20070192273A1 (en) * | 2006-01-30 | 2007-08-16 | Henrik Hempelmann | Online data volume deletion |
US20090136041A1 (en) * | 2007-11-28 | 2009-05-28 | William Tsu | Secure information storage system and method |
US20090204803A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Handling of secure storage key in always on domain |
US20090205053A1 (en) * | 2008-02-11 | 2009-08-13 | Parthasarathy Sriram | Confidential information protection system and method |
US20090202069A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Method and system for generating a secure key |
US20090204801A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Mechanism for secure download of code to a locked system |
US20100070743A1 (en) * | 2008-02-11 | 2010-03-18 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
US20100281272A1 (en) * | 2008-11-26 | 2010-11-04 | Yusaku Ohta | Information updating device and integrated circuit thereof, information updating method, and recording device and integrated circuit thereof |
WO2012127266A1 (en) * | 2011-03-23 | 2012-09-27 | Sandisk Il Ltd. | Storage device and method for updating data in a partition of the storage device |
US20160170738A1 (en) * | 2014-12-11 | 2016-06-16 | Apex Material Technology Corp. | Computer Readable Storage Media and Updating Method Thereof |
US9489924B2 (en) | 2012-04-19 | 2016-11-08 | Nvidia Corporation | Boot display device detection and selection techniques in multi-GPU devices |
US9613215B2 (en) | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282675B1 (en) | 1997-08-06 | 2001-08-28 | Macronix International Co., Ltd. | Fault-tolerant architecture for in-circuit programming |
JP2914360B2 (en) * | 1997-09-30 | 1999-06-28 | ソニー株式会社 | External storage device and data processing method |
KR100322006B1 (en) * | 1999-06-09 | 2002-02-06 | 윤종용 | Program upgrading apparatus and method for a firmware board |
US6640334B1 (en) * | 1999-09-27 | 2003-10-28 | Nortel Networks Limited | Method and apparatus of remotely updating firmware of a communication device |
US6854055B1 (en) * | 1999-10-18 | 2005-02-08 | Endress + Hauser Flowtec Ag | Method and system for switching active configuration memory during on-line operation of programmable field mounted device |
JP2001209543A (en) * | 2000-01-28 | 2001-08-03 | Nec Ic Microcomput Syst Ltd | Program rewriting method for flash microcomputer |
US6487464B1 (en) * | 2000-02-25 | 2002-11-26 | Intel Corporation | Power-on software for robust boot |
US6892297B1 (en) * | 2000-03-16 | 2005-05-10 | International Business Machines Corporation | Method and system for searching an updated version of boot code for updating current running boot code prior to loading an operating system |
US6625809B1 (en) * | 2000-03-31 | 2003-09-23 | Delphi Technologies, Inc. | Versatile boot method for a microcontroller's application software |
US6971095B2 (en) * | 2000-05-17 | 2005-11-29 | Fujitsu Limited | Automatic firmware version upgrade system |
US7231050B1 (en) * | 2000-07-21 | 2007-06-12 | Harris Scott C | Protection against unintentional file changing |
US6938243B1 (en) * | 2000-09-22 | 2005-08-30 | Dell Products L.P. | Diagnostic architecture for use with an interface between an operating system and platform firmware |
US6834331B1 (en) | 2000-10-24 | 2004-12-21 | Starfish Software, Inc. | System and method for improving flash memory data integrity |
US7055148B2 (en) * | 2000-12-07 | 2006-05-30 | Hewlett-Packard Development Company, L.P. | System and method for updating firmware |
US6957328B2 (en) * | 2001-01-05 | 2005-10-18 | International Business Machines Corporation | System and method using a first counter and a second counter to select a code image during a reboot routine |
US20020095619A1 (en) * | 2001-01-17 | 2002-07-18 | Marsh Edward Thomas | Fault tolerant/redundant boot ROM reprogramming |
US6834384B2 (en) * | 2001-03-14 | 2004-12-21 | General Instrument Corporation | Methods and apparatus for upgrading firmware in an embedded system |
US6754895B1 (en) * | 2001-04-26 | 2004-06-22 | Palm Source, Inc. | Method and system for automatic firmware updates in a portable hand-held device |
US20020178352A1 (en) * | 2001-05-22 | 2002-11-28 | Lambino John P. | Firmware upgrade using address conversion |
US7103641B2 (en) * | 2001-06-18 | 2006-09-05 | Intel Corporation | Method and apparatus for distributing computer platform firmware across a network |
US20030061603A1 (en) * | 2001-09-21 | 2003-03-27 | Chih-Chien Tang | Method and device for updating keyboard controller BIOS through serial port |
US7562208B1 (en) * | 2002-02-07 | 2009-07-14 | Network Appliance, Inc. | Method and system to quarantine system software and configuration |
US7206970B1 (en) * | 2002-02-07 | 2007-04-17 | Network Appliance, Inc. | System and method for diagnostics execution and data capture in a storage system using nonvolatile memory |
US7409435B1 (en) * | 2002-02-28 | 2008-08-05 | Sprint Communications Company L.P. | Integrated services hub binary file trial run process |
US7089419B2 (en) * | 2002-04-18 | 2006-08-08 | International Business Machines Corporation | Control function with multiple security states for facilitating secure operation of an integrated system |
US6925365B2 (en) * | 2002-08-05 | 2005-08-02 | Daimlerchrysler Corporation | Flash loader for vehicle electronic control units |
CN100389389C (en) * | 2003-06-20 | 2008-05-21 | 华为技术有限公司 | Method for implementing hot-update of bootstrap program in flush bonding system |
JP2007507020A (en) * | 2003-06-24 | 2007-03-22 | バイエリッシェ モートーレン ウエルケ アクチエンゲゼルシャフト | Method for reloading software into the boot sector of a programmable read-only memory |
US7103687B2 (en) * | 2003-12-22 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | System and method for providing an image file in a computer system |
US7099967B2 (en) * | 2003-12-22 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | System and method for storing an image file in a computer system |
US20050262337A1 (en) * | 2004-05-24 | 2005-11-24 | Siemens Vdo Automotive Corporation | Method and device for determining flash software compatibility with hardware |
US7730326B2 (en) * | 2004-11-12 | 2010-06-01 | Apple Inc. | Method and system for updating firmware stored in non-volatile memory |
US7165015B2 (en) * | 2005-03-29 | 2007-01-16 | Cryovac, Inc. | Handheld device for retrieving and analyzing data from an electronic monitoring device |
DE102005018910A1 (en) * | 2005-04-22 | 2006-10-26 | Endress + Hauser Gmbh + Co. Kg | A method of upgrading a microprocessor controlled device with new software code over a communication network |
TWI345175B (en) * | 2005-06-08 | 2011-07-11 | Winbond Electronics Corp | Method for updating firmware of memory card |
JP4868216B2 (en) * | 2006-01-19 | 2012-02-01 | 日本電気株式会社 | Firmware update circuit and firmware update method |
US8572598B1 (en) * | 2007-04-18 | 2013-10-29 | Nvidia Corporation | Method and system for upgrading software in a computing device |
US7822963B2 (en) * | 2007-06-05 | 2010-10-26 | Hewlett-Packard Development Company, L.P. | Remote computer operating system upgrade |
US8943491B2 (en) * | 2008-06-26 | 2015-01-27 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Systems and methods for maintaining CRTM code |
WO2010016058A2 (en) * | 2008-08-04 | 2010-02-11 | Red Bend Ltd. | Performing an in-place update of an operating storage device |
US20120233604A1 (en) * | 2011-03-08 | 2012-09-13 | Jibbe Mahmoud K | Method for concurrently supporting new and legacy third party boot-sets in an array |
GB2515364B (en) * | 2013-12-20 | 2015-06-17 | Nordic Semiconductor Asa | Updatable integrated-circuit radio |
EP3339990A1 (en) * | 2016-12-20 | 2018-06-27 | Schneider Electric Industries SAS | Dynamically configurable field device |
US10620879B2 (en) | 2017-05-17 | 2020-04-14 | Macronix International Co., Ltd. | Write-while-read access method for a memory device |
US10445088B2 (en) * | 2018-01-11 | 2019-10-15 | Macronix International Co., Ltd. | System boot code clone |
US11048521B2 (en) | 2019-09-25 | 2021-06-29 | Adva Optical Networking Se | Resilient upgradable boot loader with power reset |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5063496A (en) * | 1988-06-01 | 1991-11-05 | International Business Machines Corporation | Signaling attempted transfer to protected entry point bios routine |
US5214695A (en) * | 1990-07-23 | 1993-05-25 | International Business Machines Corporation | Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system |
IT1254937B (en) * | 1991-05-06 | 1995-10-11 | DYNAMIC UPDATE OF NON-VOLATILE MEMORY IN A COMPUTER SYSTEM | |
US5432927A (en) | 1992-06-17 | 1995-07-11 | Eaton Corporation | Fail-safe EEPROM based rewritable boot system |
US5568641A (en) | 1995-01-18 | 1996-10-22 | Hewlett-Packard Company | Powerfail durable flash EEPROM upgrade |
US5758174A (en) * | 1995-06-07 | 1998-05-26 | International Business Machines Corporation | Computer system having a plurality of stored system capability states from which to resume |
US5812390A (en) * | 1995-07-28 | 1998-09-22 | Dell Usa, L.P. | Apparatus and method for message variable reordering |
US5778070A (en) * | 1996-06-28 | 1998-07-07 | Intel Corporation | Method and apparatus for protecting flash memory |
US5805882A (en) * | 1996-07-19 | 1998-09-08 | Compaq Computer Corporation | Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port |
US5987605A (en) * | 1998-02-28 | 1999-11-16 | Hewlett-Packard Co. | Methods and apparatus for dual-boot memory selection, update, and recovery in a programmable device |
-
1998
- 1998-06-22 US US09/102,183 patent/US6275931B1/en not_active Expired - Fee Related
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005351A1 (en) * | 2001-06-30 | 2003-01-02 | Samsung Electronics Co., Ltd. | Method of upgrading software in a network environment and a network device for performing the same |
EP1372068A2 (en) * | 2002-06-11 | 2003-12-17 | Seiko Epson Corporation | System, method and program for rewriting a flash memory |
US20040039872A1 (en) * | 2002-06-11 | 2004-02-26 | Yuji Takamizawa | Control system and method for rewriting data in a flash memory and a data storage medium in which a program is stored for rewriting data in a flash memory |
EP1372068A3 (en) * | 2002-06-11 | 2006-02-08 | Seiko Epson Corporation | System, method and program for rewriting a flash memory |
US7383431B2 (en) | 2002-06-11 | 2008-06-03 | Seiko Epson Corporation | Control system and method for rewriting data in a flash memory and a data storage medium in which a program is stored for rewriting data in a flash memory |
US20050228978A1 (en) * | 2002-06-28 | 2005-10-13 | Koninklijke Philips Electronics N.V. | Software download into a receiver |
US20040250167A1 (en) * | 2003-03-27 | 2004-12-09 | Masahiko Sato | Information processing apparatus and method, program, and recording medium |
US7320087B2 (en) * | 2003-03-27 | 2008-01-15 | Sony Corporation | Information processing apparatus and method, program, and recording medium |
US7711989B2 (en) | 2005-04-01 | 2010-05-04 | Dot Hill Systems Corporation | Storage system with automatic redundant code component failure detection, notification, and repair |
US20060236150A1 (en) * | 2005-04-01 | 2006-10-19 | Dot Hill Systems Corporation | Timer-based apparatus and method for fault-tolerant booting of a storage controller |
US20060236198A1 (en) * | 2005-04-01 | 2006-10-19 | Dot Hill Systems Corporation | Storage system with automatic redundant code component failure detection, notification, and repair |
US7523350B2 (en) | 2005-04-01 | 2009-04-21 | Dot Hill Systems Corporation | Timer-based apparatus and method for fault-tolerant booting of a storage controller |
US20070192273A1 (en) * | 2006-01-30 | 2007-08-16 | Henrik Hempelmann | Online data volume deletion |
US20100228787A1 (en) * | 2006-01-30 | 2010-09-09 | Henrik Hempelmann | Online data volume deletion |
US7693883B2 (en) * | 2006-01-30 | 2010-04-06 | Sap Ag | Online data volume deletion |
US9069990B2 (en) | 2007-11-28 | 2015-06-30 | Nvidia Corporation | Secure information storage system and method |
US20090136041A1 (en) * | 2007-11-28 | 2009-05-28 | William Tsu | Secure information storage system and method |
US20090204801A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Mechanism for secure download of code to a locked system |
US9158896B2 (en) | 2008-02-11 | 2015-10-13 | Nvidia Corporation | Method and system for generating a secure key |
US20090202069A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Method and system for generating a secure key |
US20090205053A1 (en) * | 2008-02-11 | 2009-08-13 | Parthasarathy Sriram | Confidential information protection system and method |
US20100070743A1 (en) * | 2008-02-11 | 2010-03-18 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
US9069706B2 (en) | 2008-02-11 | 2015-06-30 | Nvidia Corporation | Confidential information protection system and method |
US20090204803A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Handling of secure storage key in always on domain |
US8719585B2 (en) * | 2008-02-11 | 2014-05-06 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
US9613215B2 (en) | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
US8407485B2 (en) | 2008-11-26 | 2013-03-26 | Panasonic Corporation | Information updating device and integrated circuit thereof, information updating method, and recording device and integrated circuit thereof |
EP2352094A4 (en) * | 2008-11-26 | 2012-06-20 | Panasonic Corp | Information updating device and integrated circuit thereof, information updating method, and recording device and integrated circuit thereof |
EP2352094A1 (en) * | 2008-11-26 | 2011-08-03 | Panasonic Corporation | Information updating device and integrated circuit thereof, information updating method, and recording device and integrated circuit thereof |
US20100281272A1 (en) * | 2008-11-26 | 2010-11-04 | Yusaku Ohta | Information updating device and integrated circuit thereof, information updating method, and recording device and integrated circuit thereof |
WO2012127266A1 (en) * | 2011-03-23 | 2012-09-27 | Sandisk Il Ltd. | Storage device and method for updating data in a partition of the storage device |
US8909900B2 (en) | 2011-03-23 | 2014-12-09 | Sandisk Il Ltd. | Storage device and method for updating data in a partition of the storage device |
US9489924B2 (en) | 2012-04-19 | 2016-11-08 | Nvidia Corporation | Boot display device detection and selection techniques in multi-GPU devices |
US20160170738A1 (en) * | 2014-12-11 | 2016-06-16 | Apex Material Technology Corp. | Computer Readable Storage Media and Updating Method Thereof |
Also Published As
Publication number | Publication date |
---|---|
US6275931B1 (en) | 2001-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6275931B1 (en) | Method and apparatus for upgrading firmware boot and main codes in a programmable memory | |
US6615404B1 (en) | Method and apparatus for downloading software into an embedded-system | |
US6681390B2 (en) | Upgrade of a program | |
US5740178A (en) | Software for controlling a reliable backup memory | |
US7093244B2 (en) | Method of remotely upgrading firmware in field-deployed devices | |
US6892216B2 (en) | Common platform for use in automotive services | |
US20040030953A1 (en) | Fault-tolerant architecture for in-circuit programming | |
KR100440950B1 (en) | Method for upgrading software in network environment and network device thereof | |
WO2003003212A2 (en) | Automatic replacement of corrupted bios image | |
CN111813428A (en) | Method and device for upgrading terminal firmware, electronic equipment and storage medium | |
WO1997046940A1 (en) | Methods and apparatus for diagnosing and correcting faults in computers | |
US7428635B2 (en) | Method of writing non-volatile memory that avoids corrupting the vital initialization code | |
JP3093541B2 (en) | Terminal device and online system for managing version numbers of programs and data | |
US6772364B1 (en) | Fault tolerant field updating with alternation of memory areas | |
US6301709B1 (en) | Circuit pack system with semi-or fully-automatic upgrade capability | |
Cisco | Loading and Maintaining System Images | |
CN115061704A (en) | Firmware upgrading method and electronic equipment | |
Cisco | Loading and Maintaining System Images and Microcode | |
Cisco | Loading and Maintaining System Images and Microcode | |
Cisco | Loading and Maintaining System Images and Microcode | |
US20090157908A1 (en) | Software Driver Device | |
KR20010027466A (en) | Method for reprogramming ecu of vehicles | |
US20050060484A1 (en) | Control device | |
WO2001088732A1 (en) | Programming a memory based on information obtained from a remote location | |
JP2980015B2 (en) | Magnetic disk drive |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ELSAG INTERNATIONAL N.V., NETHERLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WOZNIAK, MICHAEL J.;REEL/FRAME:009304/0370 Effective date: 19980615 |
|
AS | Assignment |
Owner name: ABB AUTOMATION INC., OHIO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ELSAG INTERNATIONAL N.V.;REEL/FRAME:010746/0276 Effective date: 20000323 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: ABB TECHNOLOGY LTD., SWITZERLAND Free format text: NUNC PRO TUNC ASSIGNMENT;ASSIGNOR:ABB INC.;REEL/FRAME:018855/0854 Effective date: 20050101 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20090814 |