GB2227584A - Computer control data modification system - Google Patents

Computer control data modification system Download PDF

Info

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
Application number
GB8927269A
Other versions
GB8927269D0 (en
GB2227584B (en
Inventor
Donald Bell
Charles Lomas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Publication of GB8927269D0 publication Critical patent/GB8927269D0/en
Publication of GB2227584A publication Critical patent/GB2227584A/en
Application granted granted Critical
Publication of GB2227584B publication Critical patent/GB2227584B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]

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.
GB8927269A 1989-01-28 1989-12-01 Data processing system Expired - Fee Related GB2227584B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
COMMODORE 64 PROGRAMMER'S REFERENCE GUIDE,1st Ed *
MACHINES Inc.& HOWARD W. SAMS & Co. Inc.,see esp *

Cited By (51)

* Cited by examiner, † Cited by third party
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
AU623214B2 (en) 1992-05-07
GB8901932D0 (en) 1989-03-15
GB8927269D0 (en) 1990-01-31
ZA90180B (en) 1990-10-31
GB2227584B (en) 1992-09-02
AU4879590A (en) 1990-08-02

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
JP3140906B2 (en) How to update and restore system files
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
US6148441A (en) Method for reprogramming flash ROM in a personal computer implementing an EISA bus system
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
US6553490B1 (en) Computer system including local computer with capability to automatically update operating system or application program from network server
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
EP1591893A1 (en) Method and system for fail-safe updating of boot code
JP2778786B2 (en) Data update / restoration processing method
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
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
JPH11134178A (en) Interrelated check system by information on number of versions of load module and program storage medium
JP3790756B2 (en) Disk array device, disk controller, and method for recovering data failure in disk array

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20031201