JP6752863B2 - ファームウェアの更新方法及びこの方法を用いる電子装置 - Google Patents

ファームウェアの更新方法及びこの方法を用いる電子装置 Download PDF

Info

Publication number
JP6752863B2
JP6752863B2 JP2018217069A JP2018217069A JP6752863B2 JP 6752863 B2 JP6752863 B2 JP 6752863B2 JP 2018217069 A JP2018217069 A JP 2018217069A JP 2018217069 A JP2018217069 A JP 2018217069A JP 6752863 B2 JP6752863 B2 JP 6752863B2
Authority
JP
Japan
Prior art keywords
firmware
partition
block
auxiliary
electronic device
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.)
Active
Application number
JP2018217069A
Other languages
English (en)
Other versions
JP2019128946A (ja
Inventor
李昆育
姚昌辰
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.)
Pegatron Corp
Original Assignee
Pegatron Corp
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 Pegatron Corp filed Critical Pegatron Corp
Publication of JP2019128946A publication Critical patent/JP2019128946A/ja
Application granted granted Critical
Publication of JP6752863B2 publication Critical patent/JP6752863B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Human Computer Interaction (AREA)

Description

本発明は、ファームウェアの更新方法及びこの方法を用いる電子装置に関する。
従来、システムファームウェアの更新時に、新しいシステムファームウェアのサイズがメモリにおいてシステムファームウェアのために保留された元のメモリパーティションのサイズを超えると、ディスクパーティションテーブル(partition table)を調整することで、システムファームウェアのために保留されたメモリパーティションを大きくする必要がある。ディスクパーティションテーブルを調整するには、ブートローダー(bootloader)を更新する必要があるが、一旦、ブートローダーの更新中に停電又は停電等の不確定要素の発生によって、更新しているブートローダーの書き込みが不完全になると、システムは、正常に起動できない。このため、ユーザは、遠隔でシステムファームウェアの更新を実行する時に、ブートローダーの更新は非常に大きなリスクがある。このようなリスクは、新しいシステムファームウェアのサイズを制限することになり、システム業者に大きな不便をもたらすおそれがある。
以上のことを鑑みると、本発明は、ブートローダーを更新することなく磁気ディスクの空き容量を十分に利用できるファームウェアの更新方法及びこの方法を用いる電子装置を提供する。
本発明の実施例で提出したファームウェアの更新方法は、電子装置に適用される。電子装置は、不揮発性メモリを含み、不揮発性メモリは、ファームウェアパーティションとバックアップパーティションとを有する。ファームウェアの更新方法は、ファームウェアパーティションに含まれる第1のブロック及び第2のブロックのうちの第1のブロックに位置するとともに、不揮発性メモリのディスクパーティションテーブルを含む補助ファームウェアを実行することと、電子装置のシステムファームウェアに対応するシステム更新ファイルを受信することと、システムファームウェアに必要な容量が第2のブロックの空き容量よりも大きい場合に、ディスクパーティションテーブル及びシステム更新ファイルに応じて、システムファームウェアをファームウェアパーティションの第2のブロック及びバックアップパーティションのバックアップブロックに書き込むことと、を含む。
本発明の実施例で提出した電子装置は、通信素子と、不揮発性メモリと、コントローラとを備える。通信素子は、データを送受信するためのものである。不揮発性メモリは、ファームウェアパーティションとバックアップパーティションとを有する不揮発性メモリであり、ファームウェアパーティションは、補助ファームウェアを含み、補助ファームウェアが不揮発性メモリのディスクパーティションテーブルを含む第1のブロックと、第2のブロックとを含む。コントローラは、通信素子及び不揮発性メモリに結合されており、補助ファームウェアを実行し、システムファームウェアに対応するシステム更新ファイルを受信し、システムファームウェアに必要な容量が第2のブロックの空き容量よりも大きい場合に、ディスクパーティションテーブル及びシステム更新ファイルに応じて、システムファームウェアをファームウェアパーティションの第2のブロック及びバックアップパーティションのバックアップブロックに書き込むために用いられる。
上述したことに基づいて、本発明の実施例で提出したファームウェアの更新方法及び電子装置は、容量の小さい補助ファームウェアを一つのメモリパーティションにインストールし、この補助ファームウェアによって、メモリパーティションに跨ってデータを読み書きする。これによって、アクティブパーティションのブートローダーを更新することなく、各メモリパーティションにおける異なるブロックを柔軟的に利用することができ、より高いメモリの利用効率を達成した。
本発明の前記特徴及び利点を、さらに明らかで分かりやすくするために、以下、実施例を挙げ、添付図面によって以下のとおりに詳細に説明する。
本発明の一実施例に係る電子装置の概要ブロック図 本発明の一実施例に係る不揮発性メモリの模式図 本発明の一実施例に係る不揮発性メモリの模式図 本発明の一実施例に係る不揮発性メモリの模式図 本発明の一実施例に係るファームウェアの更新方法のフローチャート 本発明の一実施例に係るファームウェアの更新方法のフローチャート 本発明の一実施例に係るファームウェアの更新方法のフローチャート
本願明細書の全文(特許請求の範囲を含む)において用いられる「結合」という用語は、如何なる直接又は間接的な接続手段を指すことができる。例えば、明細書において第1の装置が第2の装置に結合されると述べる場合に、第1の装置が第2の装置に直接に結合されてもよく、あるいは、第1の装置が、他の装置、ワイヤー又はある接続手段を介して第2の装置に間接に結合されてもよい。また、可能な限り、図面及び実施形態に用いる同じ符号の要素/部材/工程は、同一または類似する部分を表す。異なる実施例において同じ符号又は同じ用語を用いる要素/部材/工程は、関連する説明を互いに参照することができる。
本発明の実施例に係るファームウェアの更新方法において、機能が少なく、占める容量が小さい補助ファームウェアを設計し、それをシステムファームウェアのために保留されたメモリパーティションにインストールする。補助ファームウェアには、メモリ全体のメモリパーティションテーブルが含まれるので、補助ファームウェアをロードしただけで、補助ファームウェアにおけるメモリパーティションテーブルによって、メモリ全体の各メモリパーティションにアクセスすることができる。このように、システムファームウェアをダウンロードした後に、このシステムファームウェアに予め保留されたメモリパーティションのサイズが不足であることが発覚しても、補助ファームウェアによって、メモリの他のパーティションを十分に利用して、パーティションに跨ってシステムファームウェアをインストールし、ロードすることができる。特に、本発明の一実施例における補助ファームウェアは、外部ホストと接続を確立する機能をさらに備えることにより、補助ファームウェアが独立して実行される場合でも、データを伝送又は受信可能である。
図1は、本発明の一実施例に係る電子装置の概要ブロック図を示す。図1を参照し、本実施例に係る電子装置100は、通信素子110と、不揮発性メモリ120と、通信素子110及び不揮発性メモリ120に結合されているコントローラ130とを備える。以下の実施例において、電子装置100は、ケーブルモデム(cable modem)を例示として説明されるが、本発明はこれに限られない。他の実施例において、電子装置100は、例えばスマートフォン(smart phone)、タブレットPC(tablet PC)、個人情報端末(personal digital assistant,PDA)等の、ファームウェアをインストールするために不揮発性メモリを有する電子装置であってもよい。
本実施例において、通信素子110は、データを送受信するために、双方向同軸ケーブルによって外部ホスト(例えば、ファームウェアを更新するための電子装置のファームウェア更新ファイルを提供する遠隔ホスト)と接続を確立するためのものである。しかし、本発明はこれに限られない。他の実施例において、通信素子110は、例えば、有線の電話線、光ファイバ、又は無線のWi-Fi(登録商標)、ブルートゥース(登録商標)等によって外部ホストと接続を確立してもよい。
本実施例において、不揮発性メモリ120は、例えばデータを格納するためのフラッシュメモリ(flash memory)である。本実施例に係る不揮発性メモリ120における各メモリパーティション(partitions)及びその使用方法について、以下の説明において詳細に述べる。しかし、本発明では、不揮発性メモリ120はフラッシュメモリに限られず、当業者は、需要に応じて、不揮発性メモリ120を実施することができ、ここで重複して述べない。
本実施例において、コントローラ130は、電子装置100の全体の運転を制御するために用いられ、例えば、中央処理装置(Central Processing Unit,CPU)や、他のプログラム可能な一般の用途や特別な用途のマイクロプロセッサ(Microprocessor)、デジタルシグナルプロセッサ(Digital Signal Processor,DSP)、プログラム可能なコントローラ、特定用途向け集積回路(Application Specific Integrated Circuits,ASIC)、プログラム可能な論理素子(Programmable Logic Device,PLD)や他の類似する装置、又はこれらの装置の組合せであってもよいが、これらに限られない。
図2乃至図4は、本発明の一実施例に係る不揮発性メモリの模式図を示す。図2乃至図4を参照し、本実施例において、図示の便宜のために、不揮発性メモリ120の、本発明の実施例に係るファームウェアの更新方法における異なる状態を示すために、不揮発性メモリ120をそれぞれに不揮発性メモリ120a、120b、120c、120dとして表す。以下、不揮発性メモリ120a、120b、120c、120dによって、本発明の実施例に係るファームウェアの更新方法を説明する。
図2を参照し、一実施例において、ファームウェア更新コマンドを受信する前に、電子装置100の不揮発性メモリ120は、不揮発性メモリ120aの状態で運転する。不揮発性メモリ120aは、互いに重ならないアクティブパーティションPTN0と、少なくとも一つのファームウェアパーティションPTN1と、少なくとも一つのバックアップパーティションPTN2とを有する。
アクティブパーティションPTN0にはブートローダー(bootloader)が記録されており、ブートローダーにはディスクパーティションテーブル(disk partition table)が記録されている。ディスクパーティションテーブルは、例えば電子装置に、各メモリパーティションにアクセスする機能を提供するために用いられることができる。電子装置100を起動又は再起動させた後に、ブートローダーをロードすることで、ディスクパーティションテーブルに応じて、そのうちの一つのメモリパーティションからファームウェアをロードして実行する。このように、電子装置100は正常に起動できる。
ファームウェアパーティションPTN1は、不揮発性メモリ120の元のシステムファームウェアに予め保留されたメモリパーティション(例えば、コントローラ130がブートローダーの指示によってファームウェアをロードするメモリパーティションであってもよいが、これに限られない)である。通常状態で、電子装置100を起動又は再起動させた後に、ブートローダーは、例えば、ファームウェアパーティションPTN1を選択し、それに記録されたシステムファームウェアをロードして実行するように指示する。このように、電子装置100は、起動の後、正常に稼働することができる(例えば、外部ホストと接続を確立する)。
バックアップパーティションPTN2は、例えば固定データブロック及びバックアップブロックを含むが、これに限られない。固定データブロックは、電子装置100がデータ転送の時に必要とするベリファイ情報、又は他の電子装置100自身のハードウェア情報等を記録するためのものであるが、これに限られない。バックアップブロックは、例えば保留されて未使用のブロックである。
図3を参照し、本実施例において、電子装置100は、システムファームウェアを運転させる過程において、例えば外部ホストからファームウェアの更新コマンドを受信するとともに、補助ファームウェアに対応する補助ファームウェア更新ファイルを受信する。これによって、電子装置100のコントローラ130は、受信された補助ファームウェア更新ファイルに応じて、補助ファームウェアをファームウェアパーティションPTN1に書き込んだ後、電子装置100を再起動させる。この時、不揮発性メモリ120の状態は、図3に示す不揮発性メモリ120bになり、ファームウェアパーティションPTN1における元のシステムファームウェアは、補助ファームウェアに上書きされたので、実行できない。本実施例において、補助ファームウェアの占めるファームウェアパーティションPTN1の一部は、第1のブロックPTN1−1と呼ばれ、ファームウェアパーティションPTN1の他の一部は、第2のブロックPTN1−2と呼ばれる。
言及すべきなのは、別の実施例において、電子装置100のメーカーは、例えば電子装置100の出荷前に、ブートローダーをアクティブパーティションPTN0に書き込むとともに、補助ファームウェアをファームウェアパーティションPTN1に書き込むことで、電子装置100を、出荷時に既に不揮発性メモリ120bの状態にすることができることである。
特に、本発明の実施例で提出した補助ファームウェアは、ディスクパーティションテーブルを含むことにより、電子装置100は、データの位置するメモリパーティションに応じて、異なるメモリパーティションに跨るデータのアクセスを含むデータのアクセスを行う。なお、補助ファームウェアは、ケーブルによるデータサービスインタフェース標準(Data-Over-Cable Service Interface Specifications、DOCSIS)の接続機能をさらに備え、DOCSIS標準を介して外部ホストと接続を確立し、データを送受信することができる。
電子装置100が不揮発性メモリ120bの状態で再起動された後に、アクティブパーティションPTN0のブートローダーは、ファームウェアパーティションPTN1を選択し、読取を行うように指示する。本実施例において、第1のブロックPTN1−1における補助ファームウェアが、ロードされて実行されるので、電子装置100は、DOCSIS標準を介して外部ホストと接続を確立する。
一実施例において、補助ファームウェアの運転中に、電子装置100は、外部ホストからのファームウェア更新コマンドをさらに受信するとともに、補助ファームウェアに対応する補助ファームウェア更新ファイルを受信する。これによって、電子装置100のコントローラ130は、受信された補助ファームウェア更新ファイルに応じて、補助ファームウェアをファームウェアパーティションPTN1に書き込むことにより、補助ファームウェアをオーバーライトして更新し、そして、電子装置100を再起動させる。
言及すべきなのは、補助ファームウェアは、機能がシステムファームウェアよりも少ないので、補助ファームウェアに必要な容量は、第1のブロックPTN1の空き容量以下であることである。
図4を参照し、別の実施例において、補助ファームウェアの運転中に、電子装置100は、外部ホストからのファームウェア更新コマンドをさらに受信するとともに、電子装置100のシステムファームウェアに対応するシステム更新ファイルを受信する。
システム更新ファイルが対応するシステムファームウェアに必要な容量は、第2のブロックPTN1−2の空き容量よりも大きい場合に、電子装置100のコントローラ130は、受信されたシステム更新ファイルに応じて、補助ファームウェアのディスクパーティションテーブル及びシステム更新ファイルに従って、システムファームウェアをファームウェアパーティションPTN1の第2のブロックPTN1−2、及びバックアップパーティションPTN2に書き込む。システムファームウェアの更新が成功した後に、不揮発性メモリ120の状態は、図4に示す不揮発性メモリ120cの状態になる。本実施例において、システムファームウェアを書き込むためのバックアップパーティションの一部は、バックアップブロックPTN2−2と呼ばれ、他の一部のバックアップパーティションPTN2は、固定データブロックPTN2−1と呼ばれる。このように、不揮発性メモリ120が図4に示す不揮発性メモリ120cの状態にある時に、ファームウェアパーティションPTN1の第1のブロックPTN1−1の補助ファームウェアは、正常に運転実行されることができる。また、2つのパーティションに跨って記録された、同時にファームウェアパーティションPTN1の第2のブロックPTN1−2及びバックアップパーティションPTN2のバックアップブロックPTN2−2に位置するシステムファームウェアも、正常に運転実行されることができる。
一方、システム更新ファイルが対応するシステムファームウェアに必要な容量は、第2のブロックPTN1−2の空き容量以下である場合に、電子装置100のコントローラ130は、受信されたシステム更新ファイルに応じて、補助ファームウェアのディスクパーティションテーブル及びシステム更新ファイルに従って、システムファームウェアをファームウェアパーティションPTN1の第2のブロックPTN1−2に書き込む。システムファームウェアの更新が成功した後、不揮発性メモリ120の状態は、図4に示すような不揮発性メモリ120dの状態になる。このように、不揮発性メモリ120が図4に示す不揮発性メモリ120dの状態にある時に、ファームウェアパーティションPTN1の第1のブロックPTN1−1の補助ファームウェアは、正常に運転実行されることができる。また、ファームウェアパーティションPTN1の第2のブロックPTN1−2のシステムファームウェアも、正常に運転実行されることができる。
言及すべきなのは、システムファームウェアの更新が失敗しても、ファームウェアパーティションPTN1の第1のブロックPTN1−1の補助ファームウェアは、依然として正常に運転実行されることができるので、電子装置100を再起動させた後に、また前述したフローに従って、ファームウェアパーティションPTN1の第1のブロックPTN1−1における補助ファームウェアを実行し、再び外部ホストに接続するとともに、システム更新ファイルを改めてダウンロードすることで、システムファームウェアを改めて更新することができることである。
一実施例において、固定データブロックPTN2−1は、電子装置100がデータ転送の時に必要とするベリファイ情報、又は他の電子装置100自身のハードウェア情報等を記録するためのものであるが、これに限られない。例を挙げると、電子装置100がDOCSIS標準を介して外部ホストと接続を確立する時に必要とする認証局(Certificate Authority,CA)認証コード、ケーブルモデム(Cable Modem,CM)認証コード、及びケーブルモデム公開鍵(CM Publish key)等の情報は、例えば固定データブロックPTN2−1に記録されているが、本発明はこれに限られない。
言及すべきなのは、一実施例において、外部ホストの提供したシステム更新ファイルが対応するシステムファームウェアは、通常のシステムファームウェアの機能を備える以外、ディスクパーティションテーブルを含むことによって、電子装置100は、システムファームウェアを稼働させる時に、データの位置するメモリパーティションによって、異なるメモリパーティションに跨るデータのアクセスも含めて、データのアクセスを行うことができる。なお、外部ホストの提供したシステム更新ファイルが対応するシステムファームウェアも、DOCSISの接続機能を備え、DOCSIS標準を介して、外部ホストと接続を確立し、データを送受信することができる。これによって、不揮発性メモリ120は、複数の類似するファームウェアパーティションPTN1を有する場合に、電子装置100は、稼働しているシステムファームウェアのディスクパーティションテーブルによって、そのうちの一つのファームウェアパーティションPTN1、及び一つのバックアップパーティションPTN2を選択し、システムファームウェアを更新させることで、システムファームウェアを選択されたファームウェアパーティションPTN1、及びバックアップパーティションPTN2に書き込み又はインストールすることもできる。
図5乃至図7は、本発明の一実施例に係るファームウェアの更新方法のフローチャートを示す。図5乃至図7のそれぞれに示されたフローS100、S200、S300に含まれる各工程は、上記の段落において図1乃至図4における電子装置100の各要素に適用され、以下、図1乃至図4における各要素及び符号に合わせて、詳細に説明する。言及すべきなのは、各工程における既に上記の段落において詳細に述べた実施の細部について、以下のフローチャートの説明において重複して述べないことである。
一実施例において、電子装置100の不揮発性メモリ120には、例えば補助ファームウェアが記録されていない場合に、先ず図6におけるフローS200を実行し、補助ファームウェアをファームウェアパーティションPTN1の第1のブロックPTN1−1に書き込む。
図6を参照し、工程S210において、電子装置100は、通信素子110によって、補助ファームウェアに対応する補助ファームウェア更新ファイルを受信する。例えば、電子装置100は、最初に、例えば従来のシステムファームウェアに稼働し、稼働中にDOCSIS標準を介して外部ホストから補助ファームウェアに対応する補助ファームウェア更新ファイルを受信する。次に、工程S220において、コントローラ130は、補助ファームウェア更新ファイルに応じて、補助ファームウェアをファームウェアパーティションPTN1の第1のブロックPTN1−1に書き込む。一実施例において、コントローラ130は、例えば、先ず補助ファームウェアに必要な容量に応じて、ファームウェアパーティションPTN1を、第1のブロックPTN1−1及び第2のブロックPTN1−2と定義し、次に、補助ファームウェア更新ファイルに応じて、補助ファームウェアを第1のブロックPTN1−1に書き込む。ファームウェア更新ファイルには、例えば補助ファームウェアのインストールに必要なデータ、及び補助ファームウェアがインストールされる必要があるメモリパーティション等の情報を含むが、本発明はこれに限られない。
一実施例において、ファームウェアパーティションPTN1は、例えば電子装置100が稼働しているシステムファームウェアの位置するメモリパーティションであってもよい。別の実施例において、電子装置100が稼働しているシステムファームウェアの位置するメモリパーティションは、例えばファームウェアパーティションPTN1と異なるメモリパーティションであってもよい。補助ファームウェアをファームウェアパーティションPTN1の第1のブロックPTN1−1に書き込んだ後、図5のフローS100が実行される。
別の実施例において、電子装置100の不揮発性メモリ120bのファームウェアパーティションPTN1の第1のブロックPTN1−1には、補助ファームウェアが既に記録されているので、フローS200を実行することなく、フローS100の実行を始めることができる。
次に、図5を参照し、コントローラ130は、電子装置100を起動又は再起動させた後に、工程S110において、補助ファームウェアを実行する。一実施例において、コントローラ130は、フローS200の終了後、電子装置100を再起動させ、電子装置100を再起動させた後に、先ず、アクティブパーティションPTN0におけるブートローダーをロードし、ブートローダーは、ファームウェアパーティションPTN1の第1のブロックPTN1−1における補助ファームウェアをロードして実行するように指示する。別の実施例において、電子装置100の不揮発性メモリ120bのファームウェアパーティションPTN1の第1のブロックPTN1−1には、補助ファームウェアが既に記録されているので、電子装置100を起動させた後に、同様にアクティブパーティションPTN0におけるブートローダーをロードし、ブートローダーは、ファームウェアパーティションPTN1の第1のブロックPTN1−1における補助ファームウェアをロードして実行するように指示する。
工程S120において、コントローラ130は、ディスクパーティションテーブルに応じて、ファームウェアパーティションの第2のブロック及びバックアップパーティションのバックアップブロックには、有効なシステムファームウェアが含まれているか否かを判断する。本実施例において、補助ファームウェアのディスクパーティションテーブルは、自身の位置する第1のブロックPTN1−1、システムファームウェアの位置する第2のブロックPTN1−2、及びバックアップブロックPTN2−2を指示する。これによって、コントローラ130は、第2のブロックPTN1−2及びバックアップブロックPTN2−2を、有効なシステムファームウェアが記録されているか否かを判断するように検査することができる。一実施例において、システムファームウェアは、第2のブロックPTN1−2及びバックアップブロックPTN2−2に記録されているので、コントローラ130は、第2のブロックPTN1−2及びバックアップブロックPTN2−2に対して、有効なシステムファームウェアが記録されているか否かを検査することができる。別の実施例において、システムファームウェアは、第2のブロックPTN1−2のみに記録されているので、コントローラ130は、第2のブロックPTN1−2に対して、有効なシステムファームウェアが記録されているか否かを検査することができる。但し、検査の方法は、例えばチェックサム(checksum)によるものであるが、本発明はこれに限定されるものではなく、当業者は、その需要に応じて実施できる。
第2のブロックPTN1−2及びバックアップブロックPTN2−2には、有効なシステムファームウェアが記録されている(即ち、第2のブロックPTN1−2及びバックアップブロックPTN2−2には、共にシステムファームウェアが記録され、又は第2のブロックPTN1−2のみに、システムファームウェアが記録されている)場合に、コントローラ130は、工程S130において、このシステムファームウェアを実行するとともに、工程S140において、このシステムファームウェアによって外部ホストに接続される。一実施例において、コントローラ130は、補助ファームウェアにおけるディスクパーティションテーブルに応じて、2つのメモリパーティションに跨ってファームウェアパーティションPTN1の第2のブロックPTN1−2及びバックアップパーティションPTN2のバックアップブロックPTN2−2に記録されたシステムファームウェアをロードし、又はファームウェアパーティションPTN1の第2のブロックPTN1−2のみに記録されたシステムファームウェアをロードし、このシステムファームウェアを実行する。その後、コントローラ130は、例えばこのシステムファームウェアが備えられたDOCSIS接続機能によって、DOCSIS標準を介して外部ホストに接続される。
第2のブロックPTN1−2及びバックアップブロックPTN2−2には、有効なシステムファームウェアが記録されない場合に、工程S150において、コントローラ130は、補助ファームウェアによって、外部ホストに接続される。一実施例において、コントローラ130は、直接に補助ファームウェアの備えたDOCSIS接続機能によって、DOCSIS標準を介して外部ホストに接続される。
本実施例において、一旦、電子装置100がDOCSIS標準を介して外部ホストに接続されると、図7に示すフローS300のように、外部ホストから更新ファイルを受信することで、電子装置100のファームウェアをダウンロードして更新又はインストールすることができる。
図7を参照し、工程S310において、電子装置100は、通信素子110によって更新ファイルを受信する。一実施例において、電子装置100は、例えばDOCSIS標準を介して外部ホストからファームウェア更新コマンドと更新ファイルを受信する。受信されたファームウェア更新コマンドと更新ファイルには、例えば更新したいファームウェアのタイプ、書き込みたいメモリパーティション等の指示を含むが、本発明はこれに限られるものではない。
工程S320において、電子装置100は、受信された更新ファイルが補助ファームウェア更新ファイルであるか、又は電子装置100のシステムファームウェアに対応するシステム更新ファイルであるかを判断する。一実施例において、ファームウェア更新コマンドは、例えば、更新ファイルが補助ファームウェア更新ファイル又はシステム更新ファイルであることを直接に指示する。別の実施例において、コントローラ130は、例えば、更新ファイルのヘッダファイルを検査することで、この更新ファイルが補助ファームウェア更新ファイルであるか、又はシステム更新ファイルであるかを判断してもよい。言い換えると、ここで、本発明では、コントローラ130は、受信された更新ファイルが補助ファームウェア更新ファイルであるか、又はシステム更新ファイルであるかを判断する具体的な実施方法が制限されない。
コントローラ130は、受信された更新ファイルが補助ファームウェア更新ファイルであると判断する場合に、工程S330において、コントローラ130は、ディスクパーティションテーブルに応じて、ファームウェアパーティションの第1のブロックにおける補助ファームウェアを更新する。一方、コントローラ130は、受信された更新ファイルが電子装置100のシステムファームウェアに対応するシステム更新ファイルであると判断する場合に、工程S340において、コントローラ130は、受信されたシステム更新ファイルが対応するシステムファームウェアに必要な容量と、ファームウェアパーティションの第2のブロックの空き容量とを比較する。システムファームウェアに必要な容量が第2のブロックの空き容量よりも大きい場合に、工程S350において、コントローラ130は、ディスクパーティションテーブルに応じて、システムファームウェアをファームウェアパーティションの第2のブロック及びバックアップパーティションのバックアップブロックに書き込む。一方、システムファームウェアに必要な容量が第2のブロックの空き容量以下である場合に、工程S360において、コントローラ130は、ディスクパーティションテーブルに応じて、システムファームウェアをファームウェアパーティションの第2のブロックに書き込む。但し、補助ファームウェアの更新、及びシステムファームウェアの書き込みの細部について、既に上記の段落において述べたので、ここでは重複して述べない。一旦、ファームウェア(例えば、補助ファームウェア又はシステムファームウェア)の更新を完成すると、コントローラ130は、電子装置100を再起動させ、図6のフローS200に戻り稼働して接続を行う。
図5乃至図7の実施例で説明されたフローS100、S200、S300によって、電子装置100の不揮発性メモリ120は、現在どのような状態(例えば、不揮発性メモリ120a、120b、120cまたは120d)が書き込まれても、及び、電子装置100が現在稼働しているのは、補助ファームウェア又はシステムファームウェアのいずれであっても、DOCSIS標準を介して外部ホストと接続を確立しただけで、更新ファイルを受信した後に、受信された更新ファイルに応じてファームウェアの更新をスムーズに行うことができる。
言及すべきなのは、本発明の実施例において、アクティブパーティションPTN0におけるブートローダーを変更する必要がないので、電子装置100を起動又は再起動させた後に、ブートローダーは、依然として通常どおりロードし実行されることである。特に、本発明の実施例は、補助ファームウェアによって、元のメモリパーティションの分配下で、各メモリパーティションにおける異なるブロックを柔軟的に利用し、より高いメモリの利用効率を達成した。
以上、本発明の実施例で提出したファームウェアの更新方法及び電子装置では、容量の小さい補助ファームウェアを一つのメモリパーティションにインストールし、この補助ファームウェアによって、メモリパーティションに跨ってデータを読み書きする。これによって、元のメモリパーティションの分配方法を変えることなく、各メモリパーティションにおける異なるブロックを柔軟的に利用することができ、より高いメモリの利用効率を達成した。また、本発明の実施例において、アクティブパーティションのブートローダーは、変更されておらず、補助ファームウェアと更新されたシステムファームウェアは、いずれも接続の機能を備える。したがって、ファームウェアの更新時におけるリスクを大幅に低減させた。
実施例にて、本発明を以上のように開示したが、実施例は本発明を限定するためのものではなく、当業者は、本発明の精神及び範囲から逸脱することなく、いくつかの変更及び変形を加えることができるので、本発明の保護範囲は、添付の特許請求の範囲に限定されたものを基準とするべきである。
100:電子装置
110:通信素子
120、120a、120b、120c、120d:不揮発性メモリ
130:コントローラ
PTN0:アクティブパーティション
PTN1:ファームウェアパーティション
PTN1−1:第1のブロック
PTN:第2のブロック
PTN2:バックアップパーティション
PTN2−1:固定データブロック
PTN2−2:バックアップブロック
S100、S200、S300:ファームウェアの更新方法のフロー
S110、S120、S130、S140、S150、S210、S220、S310、S320、S330、S340、S350、S360:ファームウェアの更新方法の工程

Claims (11)

  1. ファームウェアパーティションとバックアップパーティションとを有する不揮発性メモリと、コントローラと、通信素子とを含む電子装置に適用されるファームウェアの更新方法であって、
    前記コントローラが、前記ファームウェアパーティションに含まれる第1のブロック及び第2のブロックのうちの第1のブロックに位置するとともに、前記不揮発性メモリのディスクパーティションテーブルを含む補助ファームウェアを実行することと、
    前記コントローラが前記通信素子を介し、前記電子装置のシステムファームウェアに対応するシステム更新ファイルを受信することと、
    前記システムファームウェアに必要な容量が前記第2のブロックの空き容量よりも大きい場合に、前記コントローラが、前記ディスクパーティションテーブル及び前記システム更新ファイルに応じて、前記システムファームウェアを、前記ファームウェアパーティションの前記第2のブロック、及び前記バックアップパーティションのバックアップブロックに書き込むことと、
    を含むファームウェアの更新方法。
  2. 前記必要な容量が前記空き容量以下である場合に、前記コントローラが、前記ディスクパーティションテーブル及び前記システム更新ファイルに応じて、前記システムファームウェアを、前記ファームウェアパーティションの前記第2のブロックに書き込む、
    請求項1に記載のファームウェアの更新方法。
  3. 前記補助ファームウェアを実行する工程の後に、
    前記コントローラが、前記ディスクパーティションテーブルに応じて、前記ファームウェアパーティションの前記第2のブロック及び前記バックアップパーティションの前記バックアップブロックから、前記システムファームウェアをロードして実行することをさらに含む、
    請求項1に記載のファームウェアの更新方法。
  4. 前記システムファームウェアは前記ディスクパーティションテーブルを含む、
    請求項1に記載のファームウェアの更新方法。
  5. 前記コントローラが、前記補助ファームウェアに対応する補助ファームウェア更新ファイルを受信することと、
    前記コントローラが、前記補助ファームウェア更新ファイルに応じて、前記補助ファームウェアを、前記ファームウェアパーティションの前記第1のブロックに書き込むことと、をさらに含む、
    請求項1に記載のファームウェアの更新方法。
  6. 前記ファームウェアパーティションと前記バックアップパーティションとは互いに重ならないとともに、前記第1のブロックと前記第2のブロックとは互いに重ならない、
    請求項1に記載のファームウェアの更新方法。
  7. データを送受信するための通信素子と、
    ファームウェアパーティションと、バックアップパーティションとを有する不揮発性メモリであって、前記ファームウェアパーティションは、第1のブロック及び第2のブロックを含み、且つ前記第1のブロックは、前記不揮発性メモリのディスクパーティションテーブルを有する補助ファームウェアを含む不揮発性メモリと、
    前記通信素子及び前記不揮発性メモリに結合されており、
    前記補助ファームウェアを実行し、
    システムファームウェアに対応するシステム更新ファイルを受信し、
    前記システムファームウェアに必要な容量が前記第2のブロックの空き容量よりも大きい場合に、前記ディスクパーティションテーブル及び前記システム更新ファイルに応じて、前記システムファームウェアを、前記ファームウェアパーティションの前記第2のブロック、及び前記バックアップパーティションのバックアップブロックに書き込むために用いられるコントローラと、
    を備える電子装置。
  8. 前記必要な容量が前記空き容量以下である場合に、前記コントローラは、前記ディスクパーティションテーブル及び前記システム更新ファイルに応じて、前記システムファームウェアを、前記ファームウェアパーティションの前記第2のブロックに書き込むために用いられる、
    請求項7に記載の電子装置。
  9. 前記コントローラは、前記補助ファームウェアを実行した後に、さらに、
    前記ディスクパーティションテーブルに応じて、前記ファームウェアパーティションの前記第2のブロック及び前記バックアップパーティションの前記バックアップブロックから、前記システムファームウェアをロードして実行するために用いられる、
    請求項8に記載の電子装置。
  10. 前記コントローラは、さらに
    前記補助ファームウェアに対応する補助ファームウェア更新ファイルを受信し、
    前記補助ファームウェア更新ファイルに応じて、前記補助ファームウェアを、前記ファームウェアパーティションの前記第1のブロックに書き込むために用いられる、
    請求項7に記載の電子装置。
  11. 前記電子装置はケーブルモデムであり、前記補助ファームウェアがDOCSIS接続機能を備えるとともに、前記コントローラは、前記DOCSIS接続機能によって前記システム更新ファイルを受信する、
    請求項7に記載の電子装置。
JP2018217069A 2018-01-26 2018-11-20 ファームウェアの更新方法及びこの方法を用いる電子装置 Active JP6752863B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107102820 2018-01-26
TW107102820A TWI722269B (zh) 2018-01-26 2018-01-26 韌體更新方法及使用此方法的電子裝置

Publications (2)

Publication Number Publication Date
JP2019128946A JP2019128946A (ja) 2019-08-01
JP6752863B2 true JP6752863B2 (ja) 2020-09-09

Family

ID=64564569

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018217069A Active JP6752863B2 (ja) 2018-01-26 2018-11-20 ファームウェアの更新方法及びこの方法を用いる電子装置

Country Status (6)

Country Link
US (1) US11042365B2 (ja)
EP (1) EP3518097B1 (ja)
JP (1) JP6752863B2 (ja)
KR (1) KR102107843B1 (ja)
CN (1) CN110083380A (ja)
TW (1) TWI722269B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860307B2 (en) * 2019-04-24 2020-12-08 Dell Products, L.P. Fragmented firmware storage system and method therefor
CN110780890B (zh) * 2019-10-24 2023-06-06 百度在线网络技术(北京)有限公司 系统升级方法、装置、电子设备和介质
TWI726477B (zh) * 2019-11-06 2021-05-01 神雲科技股份有限公司 伺服器裝置及其可程式化邏輯單元之避免韌體更新失敗後無法再次更新之方法
TWI736074B (zh) * 2019-12-20 2021-08-11 瑞昱半導體股份有限公司 周邊裝置及其驗證更新方法
US11216269B2 (en) * 2020-01-09 2022-01-04 Dell Products L.P. Systems and methods for update of storage resource firmware
CN111522566B (zh) * 2020-04-23 2023-08-01 Oppo(重庆)智能科技有限公司 一种系统升级方法、终端及存储介质
CN113703816B (zh) * 2020-05-19 2023-06-06 佛山市顺德区顺达电脑厂有限公司 服务器装置及其避免韧体无法再次更新之方法
CN112199109B (zh) * 2020-10-16 2022-07-19 杭州觅睿科技股份有限公司 一种固件升级方法、装置、设备及介质

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317706A (en) * 1989-11-15 1994-05-31 Ncr Corporation Memory expansion method and apparatus in a virtual memory system
CA2357382A1 (en) * 2001-09-17 2003-03-17 Soma Networks, Inc. Software update method, apparatus and system
US7231504B2 (en) * 2004-05-13 2007-06-12 International Business Machines Corporation Dynamic memory management of unallocated memory in a logical partitioned data processing system
GB2418751A (en) * 2004-10-02 2006-04-05 Hewlett Packard Development Co Managing memory across a plurality of partitions
WO2007117514A1 (en) * 2006-03-31 2007-10-18 Hewlett-Packard Company Mobile device capable of multiple updates
US7783763B2 (en) * 2006-06-06 2010-08-24 International Business Machines Corporation Managing stateful data in a partitioned application server environment
JP2008217202A (ja) * 2007-03-01 2008-09-18 Nec Corp ディスクアレイ装置及びファームウェア更新方法
US8479208B2 (en) * 2007-03-30 2013-07-02 Intel Corporation System partitioning to present software as platform level functionality including mode logic to maintain and enforce partitioning in first and configure partitioning in second mode
US20080263348A1 (en) * 2007-04-17 2008-10-23 Texas Instruments Incorporated Dynamic asymmetric partitioning of program code memory in network connected devices
US8850154B2 (en) * 2007-09-11 2014-09-30 2236008 Ontario Inc. Processing system having memory partitioning
EP2229625B1 (en) * 2007-12-13 2011-08-31 Telefonaktiebolaget LM Ericsson (publ) Updating firmware of an electronic device
WO2009156615A1 (fr) * 2008-06-02 2009-12-30 Awox Procede et dispositif de mise a jour d'application informatique
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
JP5342302B2 (ja) * 2009-03-30 2013-11-13 株式会社日立ソリューションズ ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
TW201102924A (en) * 2009-07-03 2011-01-16 Inventec Appliances Corp Embedded electronic device and method for updating firmware thereof
TW201118731A (en) * 2009-11-18 2011-06-01 Inventec Corp Method for upadating firmware of embedded system
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9003157B1 (en) * 2010-06-30 2015-04-07 Emc Corporation Techniques for dynamic data storage configuration in accordance with an allocation policy
US20120054734A1 (en) * 2010-08-31 2012-03-01 Apple Inc. Device software upgrade using a dynamically sized partition
US8566546B1 (en) * 2010-09-27 2013-10-22 Emc Corporation Techniques for enforcing capacity restrictions of an allocation policy
WO2012127266A1 (en) * 2011-03-23 2012-09-27 Sandisk Il Ltd. Storage device and method for updating data in a partition of the storage device
US8990548B2 (en) * 2011-04-11 2015-03-24 Intel Corporation Apparatuses for configuring programmable logic devices from BIOS PROM
DE102011102425A1 (de) * 2011-05-24 2012-11-29 Heidelberger Druckmaschinen Ag Simultanes Softwareupdate
WO2013048491A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
KR101341003B1 (ko) * 2011-11-21 2013-12-12 웹싱크 주식회사 펌웨어 업데이트 방법 및 이를 위한 장치
TWI537735B (zh) * 2011-12-16 2016-06-11 祥碩科技股份有限公司 電子裝置及其基本輸入輸出系統的更新裝置
US8924952B1 (en) * 2012-06-27 2014-12-30 Amazon Technologies, Inc. Updating software utilizing multiple partitions
US9274839B2 (en) * 2012-09-27 2016-03-01 Intel Corporation Techniques for dynamic physical memory partitioning
CN103118198B (zh) * 2013-02-05 2016-04-13 惠州Tcl移动通信有限公司 移动终端的固件升级方法及系统
US20140297714A1 (en) * 2013-04-01 2014-10-02 Gainspan Corporation Providing binary images customized for different users in memory space constrained environments
TW201504937A (zh) * 2013-07-31 2015-02-01 Ibm 由實體儲存裝置中所選分區所構成的虛擬儲存裝置
US8910868B1 (en) * 2013-11-27 2014-12-16 Square, Inc. Firmware management
US10489145B2 (en) * 2014-11-14 2019-11-26 Hewlett Packard Enterprise Development Lp Secure update of firmware and software
CN105701019A (zh) * 2014-11-25 2016-06-22 阿里巴巴集团控股有限公司 一种内存管理方法以及装置
CN104536848B (zh) * 2014-12-22 2018-05-08 小米科技有限责任公司 固件恢复方法、装置和终端
US9729698B2 (en) * 2015-03-09 2017-08-08 Verizon Patent And Licensing Inc. Increasing user memory space on end-of-life mobile user devices
CN106708548A (zh) * 2015-11-13 2017-05-24 阿里巴巴集团控股有限公司 程序升级方法和终端设备
CN105843656B (zh) * 2016-04-22 2020-12-01 Tcl科技集团股份有限公司 磁盘空间不足的系统升级方法、终端设备及服务器
JP6753257B2 (ja) * 2016-10-04 2020-09-09 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
JP6696414B2 (ja) * 2016-12-05 2020-05-20 京セラドキュメントソリューションズ株式会社 画像処理装置
US10915331B2 (en) * 2017-08-04 2021-02-09 Qualcomm Incorporated Partitioning flash and enabling flexible boot with image upgrade capabilities

Also Published As

Publication number Publication date
JP2019128946A (ja) 2019-08-01
US20190235853A1 (en) 2019-08-01
EP3518097A2 (en) 2019-07-31
TW201933094A (zh) 2019-08-16
US11042365B2 (en) 2021-06-22
EP3518097A3 (en) 2019-08-07
KR102107843B1 (ko) 2020-05-29
CN110083380A (zh) 2019-08-02
EP3518097B1 (en) 2020-08-12
TWI722269B (zh) 2021-03-21

Similar Documents

Publication Publication Date Title
JP6752863B2 (ja) ファームウェアの更新方法及びこの方法を用いる電子装置
US20110283274A1 (en) Firmware image update and management
US7991988B2 (en) Communication device and firmware update method thereof
US7793283B2 (en) Communication terminal software updating method, communication terminal, and software updating method
US8136108B2 (en) Updating firmware with multiple processors
US7856614B2 (en) Programmable system-on-chip apparatus and method for updating firmware
US20100122017A1 (en) Memory controller, non-volatile memory system, and host device
US20120066416A1 (en) Information processing apparatus, execution control method, and recording medium storing execution control program
CN109582372A (zh) 一种系统的启动方法及装置
JPH08147171A (ja) 制御ソフトウェア仕様変更システム
JP4013040B2 (ja) ダウンロード装置及びダウンロード方法
JP2008158991A (ja) Nand型フラッシュメモリの制御システム
US20230132494A1 (en) Information processing apparatus, method of controlling the same, and storage medium
JP2005182812A (ja) コンピュータシステムにおいてイメージファイルを格納するシステムおよび方法
US10120677B2 (en) Method of rewriting printer firmware, and printer
WO2012077604A1 (ja) 処理装置、プログラム更新方法、およびプログラム
US20060190421A1 (en) Information processing apparatus and method, recording medium, and program
JP4791792B2 (ja) デジタルシグナルプロセッサシステムおよびそのブート方法。
JP2006106914A (ja) ファームウェアで動作する処理装置およびファームウェア更新方法
JP2004192329A (ja) プログラム書換え方法および端末装置
JP2013186634A (ja) 情報処理装置
JP2006277511A (ja) プログラムにより動作する装置における、プログラムの更新方法、再起動の方法、及びプログラムの更新方法を実行するプログラム
CN113452550A (zh) 资讯撷取装置、嵌入式系统装置的固件更新方法及系统
CN101097530A (zh) 更新微控器装置之系统数据存储器之接口装置
JP2005182811A (ja) コンピュータシステムにおいてイメージファイルを提供するシステムおよび方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181120

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20191119

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20191122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200331

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200728

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200819

R150 Certificate of patent or registration of utility model

Ref document number: 6752863

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250