GB2227584A - Computer control data modification system - Google Patents
Computer control data modification system Download PDFInfo
- Publication number
- GB2227584A GB2227584A GB8927269A GB8927269A GB2227584A GB 2227584 A GB2227584 A GB 2227584A GB 8927269 A GB8927269 A GB 8927269A GB 8927269 A GB8927269 A GB 8927269A GB 2227584 A GB2227584 A GB 2227584A
- Authority
- GB
- United Kingdom
- Prior art keywords
- patch
- memory
- control information
- information
- area
- 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
Classifications
-
- 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
- G06F8/66—Updates of program code stored in read-only memory [ROM]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
A data processing system has an erasable programmable read-only memory (EPROM) 22 for holding firmware, and an electrically-erasable programmable read-only memory (EEPROM) 23 for holding patch information specifying modifications to be made to the firmware. In operation, code is copied from the EPROM into a random-access memory (RAM) 21 and is then patched using the information in the EEPROM. The EEPROM can be accessed by a remote computer, 18, to write new patches into it. The EEPROM has separate areas for holding new and trusted patches. In operation, an attempt is made to modify the code using the new patches. If this is successful, the new patch area becomes the trusted patch area. Otherwise, the system reverts to the existing trusted patches, if any. <IMAGE>
Description
DATA PROCESSING SYSTEM
Background to the invention
This invention relates to data processing systems. More specifically, the invention is concerned with a data processing system including a data processor and a read-only memory (ROM) for holding control information for the processor. The control information may comprise, for example, firmware or other programs for controlling the operation of the processor.
In such a system, it may be necessary from time to time to update or correct the control information held in the ROM. One way of doing this is physically to replace the whole ROM with a new ROM. suitably programmed with the updated or corrected version of the control information. However, this is expensive and inconvenient, especially where a large ROM is involved.
Also, in order to replace a ROM, it is usually necessary for skilled personnel to visit the user 5 site at which the system is located.
United States Patent No. 4 751 703 proposes a method of modifying programs held in a ROM without the necessity for physically replacing the ROM. The program code is divided into blocks, the first instruction of each block being held in a special read/write memory (RAM) while the remaining instructions are held in the
ROM. A block of code can be patched by replacing the first instruction of that block by a jump to a replacement block. Thus, the program in the ROM can effectively be modified by modifying the information held in the RAM.
However, a problem with the above method is that it requires a virtual addressing scheme for addressing the code, since the first instruction of each block is physically separate from the rest of the block. Moreover, the above method only allows the code to be modified by replacing the code on a block-by-block basis.
The object of the present invention is to provide a way of updating or modifying information held in a ROM without the necessity for physical replacement of the ROM, while avoiding the problems mentioned above.
Summary of the invention
According to the invention there is provided a data processing system comprising: (a) a data processor (b) a read-only memory for holding control inform
ation for the data processor, (c) a read/write random access memory, (d) a further memory for holding modification
information defining modifications to be
applied to the control information, (e) means for copying the control information from
the read-only memory into the random-access
memory, and (f) means for using the modification information in
the further memory to modify the copy of the
control information in the random-access
memory.
One data processing system in accordance with the present invention will now be described by way of example with reference to the accompanying drawings.
Brief description of the drawings
Figure 1 is a block diagram of a data processing system embodying the invention, the system including a node support computer (NSC).
Figure 2 is a flow chart showing actions performed by a remote computer to write patch information into the NSC.
Figure 3 is a flow chart showing operation of the NSC when it is powered up or reset.
Figure 4 is a flow chart showing a ROM-to-RAM loader program executed by the NSC.
Figure 5 is a flow chart showing part of an
Initial Application program executed by the NSC.
Description of an embodiment of the invention
Referring to Figure 1, the data processing system comprises a main computer, referred to as a processing node 10, and a subsidiary computer referred to as a node support computer (NSC) 11. The purpose of the NSC is to assist with initial program load of the processing node, and to provide various diagnostic and monitoring facilities for the processing node. The structure of the processing node 10 forms no part of the present invention and so will not be described herein.
The NSC comprises an internal bus 12, which interconnects a communications board 13, a processor board 14, a ROM board 15, and a miscellaneous board 16.
The communications board 13 connects the NSC by way of a communications link 17 (e.g. a telephone line) to a remote computer 18. This allows the remote computer to perform diagnostic operations on the system and also, as will be described, to load patch information into the NSC.
The processor board 14 includes a conventional microprocessor 19, a 16Kbyte programmable read-only memory (PROM) 20, and a lMbyte dynamic random-access memory (RAM) 21. In operation, the microprocessor executes programs held either in the PROM 20 or in the
RAM 21.
The ROM board 15 comprises a 2Mbyte erasable programmable read-only memory (EPROM) 22 and a 16byte electrically erasable programmable read-only memory (EEPROM) 23. The EPROM holds programs (firmware) which in operation are loaded into the RAM on the processor board, for execution by the processor, as well as programs for the processing node 10. The EEPROM holds patch information indicating modifications to be made to the programs loaded into the RAM from the EPROM. The miscellaneous board 26 includes drive circuits for coupling the NSC to the processing node 10.
EEPROM contents
The EEPROM contains 16Kbytes which are addressed as segment number E800, byte offset 0000-7FFF (in hexadecimal notation). The contents of the EEPROM are as follows:
byte offset Contents 0000-07CF reserved 07D0-07FF control area 0800-2FFF reserved
3000-57FF patch area 1
5800-7FFF patch area 2
Patch areas 1 and 2 are used to hold patch information indicating modifications to be made to the programs loaded from the EPROM into the RAM. In operation, either of these two patch areas can be designated the "trusted" patch area, and is used to hold tried and tested patch information. The other of the areas is designated the "new" patch area, and is used to hold new patch information that has not yet been tried.
The control area contains information about the status of the patch areas as follows:
PATCH BASE ROM ID: This indicates the identity of the
EPROM to which the patches are to be applied.
PATCH VALIDITY : This is set to the hexadecimal value 1A 2B 3C 4D if the other items in the control area are valid.
PATCH SELECTOR: This identifies the current "trusted" patch area (if any) and also, by implication, identifies the "new" patch area, as follows. If PATCH SECTOR = 0, there is no trusted patch information available, and patch area 1 is designated the new patch area. If PATCH
SECTOR = 1, then patch area 1 is the trusted patch area and patch area 2 is the new patch area. If PATCH
SELECTOR = 2, then patch area 2 is the trusted patch area and patch area 1 is the new patch area.
PATCH STATUS: This indicates the status pf the new patch, if any. If PATCH STATUS = 0, there is no new patch. If PATCH STATUS = 1, a new patch is ready to be tried. If PATCH STATUS = 2, a new patch is currently being tried. If PATCH STATUS = 3, a new patch has failed.
Each of the patch areas consist of a header, followed by a number of patch records of variable length. Each patch record comprises the following fields.
RECORD LENGTH: this indicates the number of bytes in the record, inclusive of this length field.
RAM SEGMENT ADDRESS and RAM BYTE OFFSET: these two fields specify the position within the RAM at which the patch data is to be written.
PATCH DATA: this is the patch data which is to be written into the RAM to modify the programs held in the
RAM.
Each patch record can specify either: (a) a modification to an existing byte (or
contiguous sequence of existing bytes) in
the RAM, or (b) binary data to be written into a reserved area
of the RAM.
Using these patch records, a program held in the RAM can be modified in two different ways.
(a) It can be modified by a straightforward
byte-for-byte substitution, specified by one
or more patch records.
(b) Alternatively, a patch record can be used to
insert a new sequence of code in the reserved
area of the RAM, while another patch record is
used to plant a jump instruction to the start
of the new sequence, at the appropriate
location of the existing code.
Transfer of patch records
The patch records are generated by the remote computer 18, and are held in a patch file in that computer. When it is desired to update the firmware held in the NSC, the patch records are transferred from the remote computer 18, by way of the communications link 17, into the EEPROM in the NSC.
The procedure for transferring the patch records is shown in Figure 2.
(2-1) First, the remote computer sends a message to the
NSC, requesting the status of the NSC. This contains, among other things, an indication of the status of the
EEPROM. If the EEPROM is deemed to have failed, then an error message is generated, and the attempt to transfer the patch records is abandoned.
(2-2) Assuming that the EEPROM has not failed, the remote computer then accesses the NSC ROM VERSION, i.e.
the version number of the EPROM currently installed in the NSC, and checks whether there are any patch records available in the patch file for that ROM version. If there are patch records available, the remote computer then writes these items into the RAM in the NSC.
The remote computer then reads the patch records back again, and compares them with the data that was written. If the comparison fails, an error message is generated, suggesting a possible communications problem, and the attempt to transfer the patch records is abandoned.
(2-3) Assuming that the comparison is successful, the remote computer now reads the current contents of the patch control area from the EEPROM in the NSC, and checks whether it is valid.
(2-4) If the contents of the patch control area are not valid, the PATCH SELECTOR field is set to 0 to indicate that there is no trusted patch information currently available in the EEPROM. The PATCH STATUS field is also set to 0 to indicate that there is, as yet, no new patch information in the EEPROM.
(2-5) If, on the other hand, the contents of the patch control area are valid, it is assumed that there is already some trusted patch information in the patch area indicated by the PATCH SELECTOR field. In this case, only the PATCH STATUS field is set to 0.
If, at steps 2-4 or 2-5, any of the writes to the control area of the EPROM fails, an error message is generated, indicating that the EEPROM has failed, and patching is abandoned.
(2-6) The patch records are now transferred from the RAM into the new patch area of the EEPROM, as indicated by the PATCH SELECTOR field. Again, if any of the writes to the EEPROM fails, an error message is generated and patching is abandoned.
The contents of the new patch area are then read back from the EEPROM and compared with the data that was written. If the comparison fails, an error message is generated, and patching is abandoned.
(2-7) Assuming that the comparison is successful, the
PATCH STATUS field of the control area of the EEPRO is set to 1 to indicate that new patch information is now being tried.
(2-8) Finally, the whole of the patch control area is read back from the EEPROM and compared with the expected values. If the comparison fails, an attempt is made to set the PATCH VALIDITY field of the EEPROM to 0, an error message is output. and patching is abandoned.
Operation of NSC
Referring now to Figure 3, this shows the operation of the NSC when it is powered up or reset.
(3-1) The first action on power-up or reset is to run an establishment test program, which is resident in the
PROM 20 on the processor board. This tests the basic facilities of the NSC.
(3-2) Assuming that the establishment test is successful, the NSC then performs a ROM-to-RAM loader program, which is also resident in the PROM 20. This loads BASE and INITIAL APPLICATION programs from the
EPROM 22 into the RAM 21. It then applies the patches held in the EEPROM 23 to the RAM; that is, it modifies the programs in the RAM in accordance with the patch information in the EEPROM.
(3-3) At the end of the ROM-to-RAM loader, the NSC jumps to the start of the BASE program, which is now held in the RAM, modified by any patches. This is the basic operating program of the NSC.
(3-4) The BASE program calls the INITIAL APPLICATION program. This controls loading of firmware from the
EPROM 22 into the processing node 10.
ROM-to-RAM loader
The ROM-to-RAM loader program referred to above will now be described in more detail with reference to
Figure 4.
(4-1) The first action of the ROM-to-RAM loader is to clear the RAM 21 and to test it.
(4-2) The BASE and INITIAL APPLICATION programs are then loaded from the EPROM 22 into the RAM.
(4-3) The contents of the EEPROM 23 are then copied into a reserved area of the RAM. The copy is read back three times and compared with the contents of the EEPROM, to provide a stability check on the contents of the
EEPROM. Also, the patch control area is checked to ensure that the PATCH VALIDITY field is set, and that other items in the control area have valid values.
(4-4) A branch is now made according to the value of the
PATCH STATUS field of the patch control area.
If the PATCH STATUS is 0, there is no new patch available, and if PATCH STATUS is 3, there is a new patch, but it has failed for some reason. In either of these cases, the following actions are performed.
(4-5) If the PATCH SELECTOR field is non-zero, there is a trusted patch available, which can be used.
(4-6) The copy of the trusted patch in the RAM is checked to ensure that it is valid.
(4-7) If the patch is valid, it is applied to the programs previously loaded into the RAM. This involves reading each patch record in turn from the patch area, and writing the patch data in that record into the RAM at consecutive locations, starting from the byte specified by the RAM SEGMENT ADDRESS and RAM BYTE OFFSET.
(4-8) If it was found at step 4-7 above that the patch was invalid, an error is logged and the attempt to apply the patches is abandoned.
(4-9) If the patch status has been changed by the
ROM-to-RAM loader, the EEPROM is accessed and the PATCH
STATUS field is updated accordingly.
(4-10) If it was found at step 4-4 above that PATCH
STATUS = 2, this indicates that a new patch has been tried, but the programs as modified by the new patch failed to run successfully. In this case, the PATCH
STATUS is changed to 3 to indicate that the new patch has failed. The procedure then continues from step 4-5 as described above.
(4-11) If it was found at step 4-4 that PATCH STATUS = 1, this indicates that a new patch is ready to be tried. The copy of the new patch in the RAM is checked to ensure that it is valid.
(4-12) If the new patch is valid, then PATCH STATUS is set to 2 to indicate that a new patch is now being tried. The procedure then continues from step 4-7 as described above, using the designated new patch area to patch the RAM. If, on the other hand, the new patch is found to be invalid, the procedure continues from step 4-10 as described above.
INITIAL APPLICATION.
As described above, after the ROM-to-RAM loader program, the BASE and INITIAL APPLICATION programs are run.
At some convenient point in the execution of the INITIAL APPLICATION program, the actions shown in
Figure 5 are performed.
(5-1) A test is made to determine whether or not the program has been patched.
(5-2) If so, the PATCH STATUS field is examined.
(5-3) If PATCH STATUS = 2, this indicates that a new patch is currently being tried. Since the INITIAL
APPLICATION program is now running successfully with the new patch in place, it is assumed that the new patch is successful. Hence, the EEPROM is accessed and the PATCH
SELECTOR is updated, to indicate that this new patch is now the trusted patch, and the PATCH STATUS is set to 0 to indicate that there is now no new patch. The program then continues running normally.
If either of the write accesses to the EEPROM fails, the NSC is reset, so that it will restart with the establishment test as shown in Figure 3.
Conclusion
In summary, it can be seen that the above sequences allow patch information to be written into the
EEPROM, and then to be applied to the programs the next time the NSC is reset or powered up.
If the newly applied patch information corrupts the BASE or INITIAL APPLICATION programs to such an extent that the latter fails to get established, then at the next reset or power-up the new patch will be designated as "failed". The system will therefore revert to any existing trusted patches or, if there are no trusted patched, will proceed without any patches being applied.
Claims (12)
1. A data processing system comprising: (a) a data processor, (b) a read-only memory for holding control
information for the data processor, (c) a read/write random-access memory, (d) a further memory for holding modification
information defining modifications to be
applied to the control information, (e) means for copying the control information from
the read-only memory into the random-access
memory, and (f) means for using the modification information in
the further memory to modify the copy of the
control information in the random-access memory.
2. A system according to Claim 1 wherein the further memory is an electrically erasable programmable read-only memory (EEPROM).
3. A system according to Claim 1 or 2 wherein said further memory is accessible by a remote computer to allow the remote computer to write modification information into the further memory.
4. A system according to any preceding claim wherein said control information comprises a program for controlling the operation of the data processor.
5. A data processing system according to any preceding claim wherein said further memory comprises at least two areas, one of said areas being designated as a trusted area for holding modification information that has been successfully tried, and another of said areas being designated as a new area for holding modification information that has not yet been tried.
6. A data processing system substantially as hereinbefore described with reference to the accompanying drawings.
7. A method of operating a data processing system comprising: (a) storing control information in a read-only
memory, (b) storing modification information in a further
memory, (c) copying the control information from the
read-only memory into a read/write
random-access memory, and (d) using the modification information in the
further memory to modify the copy of the
control information in the random-access memory.
8. A method according to Claim 7, further comprising the steps: (a) dividing the further memory into at least two
areas, (b) designating one area as a trusted area for
holding modification information that has been
successfully tried, and (c) designating the other area as a new area for
holding modification information that has not
yet been tried.
9. A method according to Claim 8 wherein the step of using the modification information comprises checking the information in the new area and, if the checking is satisfactory: (a) using the modification information in the new
area to modify the control information in the
random-access memory, (b) operating the data processing system using the
modified control information, and (c) if the data processing system operates
successfully using the modified control
information, re-designating the new area as the
trusted area.
10. A method according to Claim 9 wherein, if the data processing system does not operate successfully using the modified control information: (a) the control information from the read-only memory is copied again into the random-access memory, and (b) the modification information (if any) in the
trusted area is used to modify the control
information in the random-access memory.
11. A method according to any one of claims 7 to 10 including the step of writing modification information into the further memory from a remote computer by way of a communications link.
12. A method of operating a data processing system substantially as hereinbefore described with reference to the accompanying drawings.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB898901932A GB8901932D0 (en) | 1989-01-28 | 1989-01-28 | Data processing system |
Publications (3)
Publication Number | Publication Date |
---|---|
GB8927269D0 GB8927269D0 (en) | 1990-01-31 |
GB2227584A true GB2227584A (en) | 1990-08-01 |
GB2227584B GB2227584B (en) | 1992-09-02 |
Family
ID=10650796
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB898901932A Pending GB8901932D0 (en) | 1989-01-28 | 1989-01-28 | Data processing system |
GB8927269A Expired - Fee Related GB2227584B (en) | 1989-01-28 | 1989-12-01 | Data processing system |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB898901932A Pending GB8901932D0 (en) | 1989-01-28 | 1989-01-28 | Data processing system |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU623214B2 (en) |
GB (2) | GB8901932D0 (en) |
ZA (1) | ZA90180B (en) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2246222A (en) * | 1990-06-18 | 1992-01-22 | Mitsubishi Electric Corp | Central processing unit |
EP0489204A1 (en) * | 1990-12-04 | 1992-06-10 | Hewlett-Packard Limited | Reprogrammable data storage device |
EP0492252A2 (en) * | 1990-12-21 | 1992-07-01 | Siemens Aktiengesellschaft | Communication system comprising exchange connection groups, a switching network, a central signalling channel and a multiprocessor system for centralized control |
EP0542156A2 (en) * | 1991-11-15 | 1993-05-19 | ALCATEL ITALIA S.p.A. | Method of updating data stored in storage locations of a storage unit, in particular of a flash EPROM |
EP0557682A2 (en) * | 1992-02-25 | 1993-09-01 | Siemens Aktiengesellschaft | Method and apparatus to alter a control program stored in a program-controlled control unit |
EP0569178A2 (en) * | 1992-05-08 | 1993-11-10 | AT&T Corp. | Apparatus and method for downloading programs |
FR2704704A1 (en) * | 1993-04-28 | 1994-11-04 | Gemplus Card Int | Communication system. |
WO1998025205A1 (en) * | 1996-12-05 | 1998-06-11 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
FR2764404A1 (en) * | 1997-06-10 | 1998-12-11 | Sagem | METHOD FOR CONTROLLING AN INTEGRATED MICROPROCESSOR WITH A BLOCK PROGRAM MEMORY AND INTEGRATED CIRCUIT FOR IMPLEMENTING THE METHOD |
EP0778520A3 (en) * | 1995-12-08 | 1999-03-31 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
EP0905614A2 (en) * | 1997-09-26 | 1999-03-31 | Noritsu Koki Co., Ltd. | Processing apparatus and an operation control information update system employing the processing apparatus |
US6112290A (en) * | 1991-02-08 | 2000-08-29 | Mitsubishi Denki Kabushiki Kaisha | Communication system signal processing apparatus with ROM stored signal procedures executed RAM |
GB2370894A (en) * | 2000-10-24 | 2002-07-10 | Hewlett Packard Co | Updating firmware during operation |
WO2003010663A2 (en) * | 2001-07-26 | 2003-02-06 | Kyocera Wireless Corporation | System and method for the management of wireless communications device system software downloads in the field |
GB2385438A (en) * | 2002-02-19 | 2003-08-20 | Mitel Knowledge Corp | Remote programming of serialised semiconductor devices |
US6834384B2 (en) * | 2001-03-14 | 2004-12-21 | General Instrument Corporation | Methods and apparatus for upgrading firmware in an embedded system |
US6918108B2 (en) | 2001-07-26 | 2005-07-12 | Kyocera Wireless Corp. | System and method for field diagnosis of wireless communications device system software |
US6961537B2 (en) | 2001-08-10 | 2005-11-01 | Kyocera Wireless Corp. | System and method for peer-to-peer handset communication |
US7027806B2 (en) | 2001-07-26 | 2006-04-11 | Kyocera Wireless, Corp. | System and method for field downloading a wireless communications device software code section |
US7159214B2 (en) | 2001-07-26 | 2007-01-02 | Kyocera Wireless Corp. | System and method for compacting field upgradeable wireless communication device software code sections |
US7184759B2 (en) | 2001-07-26 | 2007-02-27 | Kyocera Wireless Corp. | Modular software components for wireless communication devices |
US7184793B2 (en) | 2001-07-26 | 2007-02-27 | Kyocera Wireless Corp. | System and method for over the air area code update |
US7254386B2 (en) | 2001-08-10 | 2007-08-07 | Kyocera Wireless Corp. | System and method for improved security in handset reprovisioning and reprogramming |
US7328007B2 (en) | 2001-07-26 | 2008-02-05 | Kyocera Wireless Corp. | System and method for organizing wireless communication device system software |
US7359698B2 (en) | 2003-09-08 | 2008-04-15 | Kyocera Wireless Corp. | Systems and methods for enhanced over-the-air programming |
US7386846B2 (en) | 2001-07-26 | 2008-06-10 | Kyocera Wireless Corp. | System and method for the management of wireless communications device system software downloads in the field |
US7551933B2 (en) | 1993-06-15 | 2009-06-23 | Celltrace Llc | Telecommunications system |
WO2011074980A3 (en) * | 2009-12-14 | 2011-09-15 | Opera Software Asa | Extension mechanism |
WO2012016805A1 (en) * | 2010-08-06 | 2012-02-09 | Robert Bosch Gmbh | Method for reconfiguring software parameters in a microcontroller and microcontroller and control device |
WO2016034404A1 (en) * | 2014-09-02 | 2016-03-10 | Gemalto M2M Gmbh | Method for adapting firmware of a wireless communication device |
US9554268B2 (en) | 2001-07-26 | 2017-01-24 | Kyocera Corporation | System and method for updating persistent data in a wireless communications device |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6438664B1 (en) | 1999-10-27 | 2002-08-20 | Advanced Micro Devices, Inc. | Microcode patch device and method for patching microcode using match registers and patch routines |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2079996A (en) * | 1980-07-03 | 1982-01-27 | Olivetti & Co Spa | Data processing apparatus with a predetermined read-only memory |
GB2129585A (en) * | 1982-10-29 | 1984-05-16 | Inmos Ltd | Memory system including a faulty rom array |
US4542453A (en) * | 1982-02-19 | 1985-09-17 | Texas Instruments Incorporated | Program patching in microcomputer |
GB2204973A (en) * | 1987-05-19 | 1988-11-23 | Gen Electric Co Plc | Data processing system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4654783A (en) * | 1982-07-26 | 1987-03-31 | Data General Corporation | Unique process for loading a microcode control store in a data processing system |
-
1989
- 1989-01-28 GB GB898901932A patent/GB8901932D0/en active Pending
- 1989-12-01 GB GB8927269A patent/GB2227584B/en not_active Expired - Fee Related
-
1990
- 1990-01-10 ZA ZA90180A patent/ZA90180B/en unknown
- 1990-01-29 AU AU48795/90A patent/AU623214B2/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2079996A (en) * | 1980-07-03 | 1982-01-27 | Olivetti & Co Spa | Data processing apparatus with a predetermined read-only memory |
US4542453A (en) * | 1982-02-19 | 1985-09-17 | Texas Instruments Incorporated | Program patching in microcomputer |
GB2129585A (en) * | 1982-10-29 | 1984-05-16 | Inmos Ltd | Memory system including a faulty rom array |
GB2204973A (en) * | 1987-05-19 | 1988-11-23 | Gen Electric Co Plc | Data processing system |
Non-Patent Citations (2)
Title |
---|
COMMODORE 64 PROGRAMMER'S REFERENCE GUIDE,1st Ed * |
MACHINES Inc.& HOWARD W. SAMS & Co. Inc.,see esp * |
Cited By (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2246222A (en) * | 1990-06-18 | 1992-01-22 | Mitsubishi Electric Corp | Central processing unit |
GB2246222B (en) * | 1990-06-18 | 1994-08-17 | Mitsubishi Electric Corp | Central processing unit |
EP0489204A1 (en) * | 1990-12-04 | 1992-06-10 | Hewlett-Packard Limited | Reprogrammable data storage device |
EP0492252A2 (en) * | 1990-12-21 | 1992-07-01 | Siemens Aktiengesellschaft | Communication system comprising exchange connection groups, a switching network, a central signalling channel and a multiprocessor system for centralized control |
EP0492252A3 (en) * | 1990-12-21 | 1993-11-18 | Siemens Ag | Communication system comprising exchange connection groups, a switching network, a central signalling channel and a multiprocessor system for centralized control |
US6112290A (en) * | 1991-02-08 | 2000-08-29 | Mitsubishi Denki Kabushiki Kaisha | Communication system signal processing apparatus with ROM stored signal procedures executed RAM |
EP0542156A2 (en) * | 1991-11-15 | 1993-05-19 | ALCATEL ITALIA S.p.A. | Method of updating data stored in storage locations of a storage unit, in particular of a flash EPROM |
EP0542156A3 (en) * | 1991-11-15 | 1993-10-13 | Alcatel Italia S.P.A. | Method of updating data stored in storage locations of a storage unit, in particular of a flash eprom |
EP0557682A3 (en) * | 1992-02-25 | 1995-02-01 | Siemens Ag | |
EP0557682A2 (en) * | 1992-02-25 | 1993-09-01 | Siemens Aktiengesellschaft | Method and apparatus to alter a control program stored in a program-controlled control unit |
EP0569178A2 (en) * | 1992-05-08 | 1993-11-10 | AT&T Corp. | Apparatus and method for downloading programs |
US5778234A (en) * | 1992-05-08 | 1998-07-07 | Paradyne Corporation | Method for downloading programs |
US6131159A (en) * | 1992-05-08 | 2000-10-10 | Paradyne Corporation | System for downloading programs |
EP0569178A3 (en) * | 1992-05-08 | 1994-02-09 | American Telephone & Telegraph | |
US5896507A (en) * | 1993-04-28 | 1999-04-20 | Gemplus Card International | Device having automatic process for upgrading the performance of mobile systems |
FR2704704A1 (en) * | 1993-04-28 | 1994-11-04 | Gemplus Card Int | Communication system. |
EP0626664A1 (en) * | 1993-04-28 | 1994-11-30 | Gemplus Card International | Communication system using IC cards |
US7551933B2 (en) | 1993-06-15 | 2009-06-23 | Celltrace Llc | Telecommunications system |
EP0778520A3 (en) * | 1995-12-08 | 1999-03-31 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
US5901225A (en) * | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
WO1998025205A1 (en) * | 1996-12-05 | 1998-06-11 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
WO1998057264A1 (en) * | 1997-06-10 | 1998-12-17 | Sagem S.A. | Method for controlling an integrated microprocessor with a programmable read-only-memory and integrated circuit for implementing said method |
FR2764404A1 (en) * | 1997-06-10 | 1998-12-11 | Sagem | METHOD FOR CONTROLLING AN INTEGRATED MICROPROCESSOR WITH A BLOCK PROGRAM MEMORY AND INTEGRATED CIRCUIT FOR IMPLEMENTING THE METHOD |
EP0905614A2 (en) * | 1997-09-26 | 1999-03-31 | Noritsu Koki Co., Ltd. | Processing apparatus and an operation control information update system employing the processing apparatus |
EP0905614A3 (en) * | 1997-09-26 | 2001-04-04 | Noritsu Koki Co., Ltd. | Processing apparatus and an operation control information update system employing the processing apparatus |
GB2370894A (en) * | 2000-10-24 | 2002-07-10 | Hewlett Packard Co | Updating firmware during operation |
GB2370894B (en) * | 2000-10-24 | 2005-02-02 | Hewlett Packard Co | Workflow-friendly firmware upgrades for network devices |
US6834384B2 (en) * | 2001-03-14 | 2004-12-21 | General Instrument Corporation | Methods and apparatus for upgrading firmware in an embedded system |
WO2003010663A2 (en) * | 2001-07-26 | 2003-02-06 | Kyocera Wireless Corporation | System and method for the management of wireless communications device system software downloads in the field |
WO2003010663A3 (en) * | 2001-07-26 | 2003-12-24 | Kyocera Wireless Corp | System and method for the management of wireless communications device system software downloads in the field |
US6918108B2 (en) | 2001-07-26 | 2005-07-12 | Kyocera Wireless Corp. | System and method for field diagnosis of wireless communications device system software |
US9554268B2 (en) | 2001-07-26 | 2017-01-24 | Kyocera Corporation | System and method for updating persistent data in a wireless communications device |
US7386846B2 (en) | 2001-07-26 | 2008-06-10 | Kyocera Wireless Corp. | System and method for the management of wireless communications device system software downloads in the field |
US7027806B2 (en) | 2001-07-26 | 2006-04-11 | Kyocera Wireless, Corp. | System and method for field downloading a wireless communications device software code section |
US7143407B2 (en) | 2001-07-26 | 2006-11-28 | Kyocera Wireless Corp. | System and method for executing wireless communications device dynamic instruction sets |
US7159214B2 (en) | 2001-07-26 | 2007-01-02 | Kyocera Wireless Corp. | System and method for compacting field upgradeable wireless communication device software code sections |
US7184759B2 (en) | 2001-07-26 | 2007-02-27 | Kyocera Wireless Corp. | Modular software components for wireless communication devices |
US7184793B2 (en) | 2001-07-26 | 2007-02-27 | Kyocera Wireless Corp. | System and method for over the air area code update |
EP1973035A1 (en) * | 2001-07-26 | 2008-09-24 | Kyocera Wireless Corp. | System and method for the management of wireless communications device system software downloads in the field |
US7328007B2 (en) | 2001-07-26 | 2008-02-05 | Kyocera Wireless Corp. | System and method for organizing wireless communication device system software |
US7254386B2 (en) | 2001-08-10 | 2007-08-07 | Kyocera Wireless Corp. | System and method for improved security in handset reprovisioning and reprogramming |
US6961537B2 (en) | 2001-08-10 | 2005-11-01 | Kyocera Wireless Corp. | System and method for peer-to-peer handset communication |
GB2385438A (en) * | 2002-02-19 | 2003-08-20 | Mitel Knowledge Corp | Remote programming of serialised semiconductor devices |
US6941178B2 (en) | 2002-02-19 | 2005-09-06 | Mitel Knowledge Corporation | Remote programming of serialized semiconductor devices using web or internet protocols |
US7359698B2 (en) | 2003-09-08 | 2008-04-15 | Kyocera Wireless Corp. | Systems and methods for enhanced over-the-air programming |
WO2011074980A3 (en) * | 2009-12-14 | 2011-09-15 | Opera Software Asa | Extension mechanism |
US8701104B2 (en) | 2009-12-14 | 2014-04-15 | Opera Software Asa | System and method for user agent code patch management |
WO2012016805A1 (en) * | 2010-08-06 | 2012-02-09 | Robert Bosch Gmbh | Method for reconfiguring software parameters in a microcontroller and microcontroller and control device |
US9760367B2 (en) | 2010-08-06 | 2017-09-12 | Robert Bosch Gmbh | Method for reconfiguring software parameters in a microcontroller as well as a microcontroller and control unit |
WO2016034404A1 (en) * | 2014-09-02 | 2016-03-10 | Gemalto M2M Gmbh | Method for adapting firmware of a wireless communication device |
US10620942B2 (en) | 2014-09-02 | 2020-04-14 | Thales Dis Ais Deutschland Gmbh | Method for adapting firmware of a wireless communication device |
Also Published As
Publication number | Publication date |
---|---|
GB8927269D0 (en) | 1990-01-31 |
GB2227584B (en) | 1992-09-02 |
AU623214B2 (en) | 1992-05-07 |
ZA90180B (en) | 1990-10-31 |
AU4879590A (en) | 1990-08-02 |
GB8901932D0 (en) | 1989-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
GB2227584A (en) | Computer control data modification system | |
JP2914360B2 (en) | External storage device and data processing method | |
US5239637A (en) | Digital data management system for maintaining consistency of data in a shadow set | |
JP3364356B2 (en) | Memory rewriting device | |
CN101154187B (en) | Method and apparatus for patching program, service processor and system | |
US5764992A (en) | Method and apparatus for automatic software replacement | |
US6560703B1 (en) | Redundant updatable self-booting firmware | |
JP3140906B2 (en) | How to update and restore system files | |
US5930504A (en) | Dynamic nonvolatile memory update in a computer system | |
US5210854A (en) | System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version | |
US7313682B2 (en) | Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code | |
US7313683B2 (en) | Computer system and method which boots from a bootup-memory-image stored in nonvolatile memory and copies data within an address range of predetermined width to main memory so that the system boots quickly after initialization | |
US5452339A (en) | Local/remote modification of electronically alterable operating system firmware resident in redundant flash memory of remote unit for testing/conditioning subscriber line circuits | |
US20080320464A1 (en) | Radio Base Station and a Method of Operating a Radio Base Station | |
JPH11259284A (en) | On-line program updating system and computer readable storage medium for recording program for updating program | |
KR20000023497A (en) | Microcomputer provided with flash memory and method of storing program into flash memory | |
US6948059B1 (en) | Component loader for industrial control device providing resource search capabilities | |
US5745425A (en) | Reliable backup memory | |
US20060130039A1 (en) | Update control program, update control method, and update control device | |
US6336215B1 (en) | Apparatus and method for on-line code only replacement of a running program using checkpoints | |
US6314024B1 (en) | Data processing apparatus | |
US6301709B1 (en) | Circuit pack system with semi-or fully-automatic upgrade capability | |
JP2001101087A (en) | Memory and memory controlling method | |
JP3790756B2 (en) | Disk array device, disk controller, and method for recovering data failure in disk array | |
JPH11134178A (en) | Interrelated check system by information on number of versions of load module and program storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 20031201 |