WO2001004749A1 - Method and apparatus for upgrading firmware in an embedded system - Google Patents
Method and apparatus for upgrading firmware in an embedded system Download PDFInfo
- Publication number
- WO2001004749A1 WO2001004749A1 PCT/SE2000/001450 SE0001450W WO0104749A1 WO 2001004749 A1 WO2001004749 A1 WO 2001004749A1 SE 0001450 W SE0001450 W SE 0001450W WO 0104749 A1 WO0104749 A1 WO 0104749A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- file
- firmware upgrade
- upgrade file
- embedded system
- data
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Definitions
- the present invention relates to a method for upgrading firmware of an embedded system via a network connection. Further, the present invention relates to an embedded system provided with means for upgrading firmware received over a network, comprising; a volatile memory, a persistent memory, and a protocol stack for communication over a network.
- the technology of data communication develops fast and the computer networks are expanding and consist of an increasing number of clients and servers. Users and owners of networks require that servers and the embedded systems thereof are up to date m accordance with the rapidly changing data communication technology. Further, an increasing part of the development of embedded systems is today performed as develop- ment of firmware. Because of the rapid development of data communication technologies and requirements of new functionality from users the firmware of an embedded system has to be upgraded frequently.
- the upgrading of firmware is today commonly managed by connecting a computer direct to the embedded system. Further it is known to perform upgrading of firmware over the network which the server is connected to.
- a significant problem m upgrading the firmware of known embedded systems is that the individual performing the upgrade has to have detailed knowledge of the computer network and the embedded system and have to perform a number of rather complicated steps. Most individuals are not confident m performing said steps and are not confident in using all numerals and characteristics required to be input when performing the firmware upgrade.
- US 5 812 857 discloses a method for upgrading a download code set, where an embedded system uses the same network drivers as when m normal operation. Further it describes a download where different portions of the code set are downloaded during different steps of the downloading operation. Some portions of the code set are downloaded to a flash memory via a volatile memory while some portions are downloaded directly to the flash memory. There is also described that a temporary down- loader, downloaded during an initial step and replaced by yet another downloader during a later step, is used during the operation of download. The described system and method is designed for minimising the time of executing code out of volatile memory to the persistent memory and is rather complicated.
- the object of the present invention is to provide a new and improved method for upgrading firmware m an embedded system and a new and improved embedded system, in respect of upgrading firmware.
- Another object of the invention is to provide a firmware upgrading method that is easy to use and that saves time.
- Yet another object of the invention is to provide a firmware upgrading method m which the probability of an erroneous upgrade is minimised.
- Fig. 2 is a schematic diagram of an embedded system and a client computer during an upgrade of firmware of the embedded system.
- Fig. 3 is a detailed view of a portion of the embedded system shown m Fig. 2
- Fig. 4 is a diagram showing events according to the method of the invention.
- a client computer 10 and servers 100 are connected to a network 30.
- the servers 100 each provide a device 50 with means for communication with the client computer 10 over the network 30.
- the client computer 10 described herein could be any client computer of a plurality of client computers connected to the network 30.
- the servers 100 each comprise an embedded system 110 performing the processing of the servers 100.
- a firmware upgrade is started at the client computer 10 and is directed to one embedded system 110.
- a server 100, comprising the embedded system 110, enables devices 50 to be reached or shared via the network.
- the server 100 could be built in to a device 50, arrangement b, or could be external to a device 50, arrangement a .
- a device 50 can be any device that could be interesting to connect to a network.
- it could be an industrial robot, a control unit or a gauge for a process or a peripheral device, such as a printer, a modem, a scanner, a fax machine, a photocopier or a multifunction peripheral.
- the embedded system 110 of the preferred embodiment comprises a file system 120, a volatile memory 150, a persistent memory 160, a central processing unit 170 (CPU) , at least one protocol stack 180 and a programmer 190.
- a virtual file system 122 (VFS) is implemented and in the virtual file system a directory for upgrading 126, hereinafter called "FLASH", is provided.
- FLASH directory 126 is a subdirectory to a directory 124 called “SYSTEM” , which also comprises other resources .
- the volatile memory 150 is a memory that loses the information stored therein when the power to it is switched off and it is used to store temporary data.
- the persistent memory 160 is a reprogrammable memory where stored data is preserved even when the power to it is switched off. In the preferred embodiment the persistent memory 160 is a flash memory but could be any reprogrammable memory preserving data after the power has been switched of.
- the CPU 170 is processing the functions, protocols, etc of the embedded system.
- the protocol stack 180 contains the protocols for communica- tion over the network.
- the programmer 190 herein after called flash programmer 190, is a means for writing code into the persistent memory 160.
- the client computer 10 comprises an operating system having a file system 18 allowing mapping of resources 20 shared over the network 30.
- the server 100 related to the device 50 is mapped within the file system of the client computer.
- the server 100 is generally mapped m the file system 18 for other purposes than firmware upgrading. If, for example, the device 50 served by the server is a file storage device, the storage area is generally accessible from the client computer by the use of ordinary file handling commands of the operating system of the client computer 10. Thus, there is established a pointer from the file system 18 of the client computer 10 to a root directory of the file system 120 of the embedded system 110 of the server 100. Thereby, the subdirectories of the file system 120 of the embedded system 110 also are available within the file system 18 of the client computer 10. If the server 110 is not already mapped in the file system 18 of the client computer 10 for normal operation of the device 50, then the server 100 has to be mapped at the client computer 10 before performing the upgrading operation according to the invention.
- FIG. 3 showing the FLASH directory 126 within the virtual file system 122 of the embedded system 110.
- a control means realised by a data channel 128, associated with the FLASH directory 126.
- this data channel 128 is referred to as flash data channel 128.
- the flash data channel 128 is reset every time the FLASH directory 126 is accessed
- the flash channel is allocated a portion of the volatile memory 150 for storing data.
- the flash data channel 128 handles all data sent to the FLASH directory 126 and is specially designed to handle firmware upgrade files and to perform various control operations on the data received.
- the flash data channel 128 comprises means for checking the characteristics of the file, namely first checking means 131, second checking means 132 and third checking means 133, and means 130 for storing data of a file m the volatile memory 150. Said checking and storing means are realised by program code related to the flash data channel 128 .
- the first checking means 131 checks if the file is a firmware upgrade file by checking for a "magic number", described below.
- the second checking means 132 checks if the file stored m the volatile memory 150 is intended for the product related to the embedded system 110.
- the third checking means 133 checks the checksum of the file to decide if there are any errors m the file.
- flash data channel 128 provides a flash programmer 190 with the approved firmware upgrade files to have the firmware upgrade file written to the persistent memory 160.
- m the description of the method.
- the client computer 10 thereafter sends an instruction to the embedded system telling it to open a flash file, step 402, within the virtual file system 122 of the embedded system.
- step 404 data of the firmware upgrade file 24 is received and stored, step 406, m the volatile memory 150.
- the flash data channel controls the data during reception, step 408, checking for an identifier m the form of "a magic number" corresponding to an identifier confirming that the data received belongs to a firmware upgrade file.
- the check in step 408, for a magic number identifying the data as a firmware upgrade file, checks a predefined position m the data file for the "magic number" .
- the magic number is positioned at the beginning of the firmware upgrade file. If the magic number corresponding to a firmware upgrade file does not occur at the predefined position m step 408, then the data of the file does not belong to a firmware upgrade file. As a result thereof an error message is sent, step 422, to the client and the file transmission is terminated.
- step 418 the flash data cnannel controls the checksum, step 418, of the received file. If the checksum is not correct then the received file is corrupt. As a result thereof an error message is sent, step 422, to the client computer and the upgrading operation of the embedded system is terminated.
- step 420 the flash data channel is checking, step 420, for a product identifier within the file telling what product the firmware upgrade file is intended for. If the identifier does not corre- spond to the server product then an error message is sent, step 422, to the client computer and the upgrading operation of the embedded system is terminated.
- the flash programmer 190 is ordered to erase at least a portion of the memory and then write, step 424, the firmware upgrade file in the volatile memory 150 to the flash memory 160.
- the flash file is closed, which is indicated at the client computer in a similar way as when an ordinary file transfer has been completed.
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)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP00946726.7A EP1257915B1 (en) | 1999-07-08 | 2000-07-06 | Method and apparatus for upgrading firmware in an embedded system |
| JP2001510087A JP4777561B2 (ja) | 1999-07-08 | 2000-07-06 | 組み込みシステム内のファームウエアをアップグレードする装置と方法 |
| AU60440/00A AU6044000A (en) | 1999-07-08 | 2000-07-06 | Method and apparatus for upgrading firmware in an embedded system |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| SE9902644-5 | 1999-07-08 | ||
| SE9902644A SE514840C2 (sv) | 1999-07-08 | 1999-07-08 | Metod och apparat för uppgradering av fasta program i ett inbyggt system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2001004749A1 true WO2001004749A1 (en) | 2001-01-18 |
Family
ID=20416452
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/SE2000/001450 Ceased WO2001004749A1 (en) | 1999-07-08 | 2000-07-06 | Method and apparatus for upgrading firmware in an embedded system |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP1257915B1 (enExample) |
| JP (3) | JP4777561B2 (enExample) |
| AU (1) | AU6044000A (enExample) |
| SE (1) | SE514840C2 (enExample) |
| WO (1) | WO2001004749A1 (enExample) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6834347B2 (en) | 2003-04-29 | 2004-12-21 | International Business Machines Corporation | Target self-security for upgrades for an embedded device |
| WO2005116827A1 (en) * | 2004-05-31 | 2005-12-08 | Stmicroelectronics Pvt. Ltd. | A method for remotely upgrading the firmware of a target device using wireless technology |
| EP1508091A4 (en) * | 2002-05-28 | 2005-12-21 | Toshiba Corp | SYSTEM UPDATE PROTOCOL AND BOOTABLE CD CONTROL WITH EMBEDDED OPERATING SYSTEM |
| US7315389B2 (en) | 2001-03-23 | 2008-01-01 | Toshiba Tec Kabushiki Kaisha | Electronic document assembly, proofing and printing system |
| CN100399281C (zh) * | 2002-12-09 | 2008-07-02 | 联想(北京)有限公司 | 基于可扩充表单的可复用嵌入式系统的硬件驱动和软件更新方法 |
| CN107707467A (zh) * | 2017-10-23 | 2018-02-16 | 华东交通大学 | 基于sd卡升级的智能网关设备及其固件升级方法 |
| CN114006901A (zh) * | 2021-12-31 | 2022-02-01 | 广州鲁邦通物联网科技股份有限公司 | 一种嵌入式网络设备免拆机盖固件升级方法和系统 |
| US11900103B2 (en) | 2017-07-25 | 2024-02-13 | Aurora Labs Ltd. | Self-healing learning system for one or more controllers |
| CN119002970A (zh) * | 2024-10-22 | 2024-11-22 | 浙江索罗威科技有限公司 | 一种芯片在线升级方法、芯片设备和计算机可读存储介质 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4982430A (en) * | 1985-04-24 | 1991-01-01 | General Instrument Corporation | Bootstrap channel security arrangement for communication network |
| EP0601704A1 (en) * | 1992-11-18 | 1994-06-15 | Canon Information Systems, Inc. | Method and apparatus for remotely altering programmable firmware stored in an interface board coupled to a network peripheral |
| US5452454A (en) * | 1991-12-10 | 1995-09-19 | Digital Equipment Corporation | Generic remote boot for networked workstations by creating local bootable code image |
| US5812857A (en) * | 1996-08-28 | 1998-09-22 | Extended Systems, Inc. | Field configurable embedded computer system |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3205642B2 (ja) * | 1993-05-18 | 2001-09-04 | 富士通株式会社 | 端末のファイル転送装置 |
| JPH08249016A (ja) * | 1995-03-09 | 1996-09-27 | Koyo Electron Ind Co Ltd | プログラマブルコントローラ |
| US5699275A (en) * | 1995-04-12 | 1997-12-16 | Highwaymaster Communications, Inc. | System and method for remote patching of operating code located in a mobile unit |
| JPH09179796A (ja) * | 1995-12-22 | 1997-07-11 | Dainippon Screen Mfg Co Ltd | データ転送処理装置 |
| JPH09274561A (ja) * | 1996-04-04 | 1997-10-21 | Hitachi Ltd | ジョブ及びスプールの操作方法 |
| US5881236A (en) * | 1996-04-26 | 1999-03-09 | Hewlett-Packard Company | System for installation of software on a remote computer system over a network using checksums and password protection |
| JPH10269075A (ja) * | 1997-03-24 | 1998-10-09 | Sony Corp | 動作制御情報の更新方法およびそれを用いたデータ処理装置 |
| US5887164A (en) * | 1997-06-06 | 1999-03-23 | National Instruments Corporation | System and method for enabling a target computer to use storage resources of a host computer |
-
1999
- 1999-07-08 SE SE9902644A patent/SE514840C2/sv unknown
-
2000
- 2000-07-06 JP JP2001510087A patent/JP4777561B2/ja not_active Expired - Lifetime
- 2000-07-06 WO PCT/SE2000/001450 patent/WO2001004749A1/en not_active Ceased
- 2000-07-06 AU AU60440/00A patent/AU6044000A/en not_active Abandoned
- 2000-07-06 EP EP00946726.7A patent/EP1257915B1/en not_active Expired - Lifetime
-
2008
- 2008-07-07 JP JP2008176501A patent/JP4829932B2/ja not_active Expired - Lifetime
-
2011
- 2011-04-11 JP JP2011087489A patent/JP5395108B2/ja not_active Expired - Lifetime
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4982430A (en) * | 1985-04-24 | 1991-01-01 | General Instrument Corporation | Bootstrap channel security arrangement for communication network |
| US5452454A (en) * | 1991-12-10 | 1995-09-19 | Digital Equipment Corporation | Generic remote boot for networked workstations by creating local bootable code image |
| EP0601704A1 (en) * | 1992-11-18 | 1994-06-15 | Canon Information Systems, Inc. | Method and apparatus for remotely altering programmable firmware stored in an interface board coupled to a network peripheral |
| US5812857A (en) * | 1996-08-28 | 1998-09-22 | Extended Systems, Inc. | Field configurable embedded computer system |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7315389B2 (en) | 2001-03-23 | 2008-01-01 | Toshiba Tec Kabushiki Kaisha | Electronic document assembly, proofing and printing system |
| EP1508091A4 (en) * | 2002-05-28 | 2005-12-21 | Toshiba Corp | SYSTEM UPDATE PROTOCOL AND BOOTABLE CD CONTROL WITH EMBEDDED OPERATING SYSTEM |
| CN100399281C (zh) * | 2002-12-09 | 2008-07-02 | 联想(北京)有限公司 | 基于可扩充表单的可复用嵌入式系统的硬件驱动和软件更新方法 |
| US6834347B2 (en) | 2003-04-29 | 2004-12-21 | International Business Machines Corporation | Target self-security for upgrades for an embedded device |
| WO2005116827A1 (en) * | 2004-05-31 | 2005-12-08 | Stmicroelectronics Pvt. Ltd. | A method for remotely upgrading the firmware of a target device using wireless technology |
| US8589908B2 (en) | 2004-05-31 | 2013-11-19 | St-Ericsson Sa | Method for remotely upgrading the firmware of a target device using wireless technology |
| US11900103B2 (en) | 2017-07-25 | 2024-02-13 | Aurora Labs Ltd. | Self-healing learning system for one or more controllers |
| US12169710B2 (en) | 2017-07-25 | 2024-12-17 | Aurora Labs Ltd. | Self-healing learning system for one or more controllers |
| US12260210B2 (en) | 2017-07-25 | 2025-03-25 | Aurora Labs Ltd. | Using data deltas in controllers and managing interdependencies between software versions in controllers using tool chain |
| CN107707467A (zh) * | 2017-10-23 | 2018-02-16 | 华东交通大学 | 基于sd卡升级的智能网关设备及其固件升级方法 |
| CN114006901A (zh) * | 2021-12-31 | 2022-02-01 | 广州鲁邦通物联网科技股份有限公司 | 一种嵌入式网络设备免拆机盖固件升级方法和系统 |
| CN119002970A (zh) * | 2024-10-22 | 2024-11-22 | 浙江索罗威科技有限公司 | 一种芯片在线升级方法、芯片设备和计算机可读存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP4777561B2 (ja) | 2011-09-21 |
| JP5395108B2 (ja) | 2014-01-22 |
| AU6044000A (en) | 2001-01-30 |
| SE514840C2 (sv) | 2001-04-30 |
| JP2011146071A (ja) | 2011-07-28 |
| EP1257915B1 (en) | 2015-01-28 |
| JP4829932B2 (ja) | 2011-12-07 |
| EP1257915A1 (en) | 2002-11-20 |
| SE9902644L (sv) | 2001-01-09 |
| JP2003504755A (ja) | 2003-02-04 |
| JP2009020882A (ja) | 2009-01-29 |
| SE9902644D0 (sv) | 1999-07-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6668374B1 (en) | Method and apparatus for upgrading firmware in an embedded system | |
| JP5395108B2 (ja) | 組み込みシステム内のファームウエアをアップグレードする装置と方法 | |
| US6892381B2 (en) | Updating a device driver with mechanism employing two files one containing changes (variable file) and a file containing unchanged code (invariable file) downloading both to update | |
| USRE43437E1 (en) | Storage volume handling system which utilizes disk images | |
| US5764992A (en) | Method and apparatus for automatic software replacement | |
| US6189051B1 (en) | System and method for manufacturing hard disk master by downloading selected programs and drivers from a host through a network | |
| US5701492A (en) | Fail-safe flashing of EPROM | |
| US5142680A (en) | Method for loading an operating system through a network | |
| US7350068B2 (en) | Server blade network boot method that minimizes required network bandwidth | |
| US7984435B2 (en) | Update system employing reference software to reduce number of update packages | |
| US6668261B1 (en) | Method of upgrading a program using associated configuration data | |
| EP1830256B1 (en) | Method and system for upgrading a plurality of devices | |
| US7793283B2 (en) | Communication terminal software updating method, communication terminal, and software updating method | |
| US8996667B2 (en) | Deploying an operating system | |
| JPH05509430A (ja) | ネットワークによるオペレーティングシステムのダウンローディング | |
| US20020092011A1 (en) | Methods and arrangements for managing devices | |
| US6832374B2 (en) | System and method for updating an executing executable file | |
| JP2004013898A (ja) | 不揮発性メモリにおいてファームウェアイメージの位置を特定する方法およびシステム | |
| JPH09292980A (ja) | ファイル配布システム | |
| JPH08249163A (ja) | ネットワークシステムのソフトウェアバージョン管理装置 | |
| JPH1021060A (ja) | プログラム自動更新処理機能を有する通信システムおよびプログラム更新処理を実行するプログラムを備えた記録媒体 | |
| JP2645065B2 (ja) | 情報ダウンロードシステム | |
| KR100429903B1 (ko) | 홈 게이트웨이 시스템의 이미지 업데이트 방법 | |
| CN115904402B (zh) | 一种智能网卡系统镜像制作方法、装置、设备及存储介质 | |
| KR20030015789A (ko) | 에이전트의 파일 다운로드 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ CZ DE DE DK DK DM DZ EE EE ES FI FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
| WWE | Wipo information: entry into national phase |
Ref document number: 2000946726 Country of ref document: EP |
|
| REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
| WWP | Wipo information: published in national office |
Ref document number: 2000946726 Country of ref document: EP |