TW201933094A - 韌體更新方法及使用此方法的電子裝置 - Google Patents

韌體更新方法及使用此方法的電子裝置 Download PDF

Info

Publication number
TW201933094A
TW201933094A TW107102820A TW107102820A TW201933094A TW 201933094 A TW201933094 A TW 201933094A TW 107102820 A TW107102820 A TW 107102820A TW 107102820 A TW107102820 A TW 107102820A TW 201933094 A TW201933094 A TW 201933094A
Authority
TW
Taiwan
Prior art keywords
firmware
partition
block
electronic device
auxiliary
Prior art date
Application number
TW107102820A
Other languages
English (en)
Other versions
TWI722269B (zh
Inventor
李昆育
姚昌辰
Original Assignee
和碩聯合科技股份有限公司
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 和碩聯合科技股份有限公司 filed Critical 和碩聯合科技股份有限公司
Priority to TW107102820A priority Critical patent/TWI722269B/zh
Priority to US16/186,308 priority patent/US11042365B2/en
Priority to JP2018217069A priority patent/JP6752863B2/ja
Priority to EP18209051.4A priority patent/EP3518097B1/en
Priority to KR1020180160327A priority patent/KR102107843B1/ko
Priority to CN201910067968.9A priority patent/CN110083380A/zh
Publication of TW201933094A publication Critical patent/TW201933094A/zh
Application granted granted Critical
Publication of TWI722269B publication Critical patent/TWI722269B/zh

Links

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)

Abstract

一種適用於電子裝置的韌體更新方法。電子裝置包括非揮發性記憶體,非揮發性記憶體包括韌體分割區以及備用分割區。所述韌體更新方法包括:執行輔助韌體,其中所述韌體分割區包括第一區塊以及第二區塊,且輔助韌體位於第一區塊並且包括非揮發性記憶體的磁區分割表;接收對應於電子裝置的系統韌體的系統更新檔;以及當系統韌體的所需空間大於第二區塊的可用空間時,依據磁區分割表以及系統更新檔將系統韌體寫入韌體分割區的第二區塊以及備用分割區的備用區塊。

Description

韌體更新方法及使用此方法的電子裝置
本發明是有關於一種韌體更新方法及使用此方法的電子裝置。
傳統在更新系統韌體時,若新系統韌體的大小超過了記憶體中原先保留給系統韌體的記憶體分割空間時,必須調整磁區分割表(partition table)來加大保留給系統韌體的記憶體分割。欲調整磁區分割表則需要更新啟動程式(bootloader),但是,一旦更新啟動程式的過程中發生斷電或斷電等不確定的因素,使得正在更新中的啟動程式尚未寫入完全,則系統將無法正常開機。因此,當用戶是在遠端執行系統韌體更新時,更新啟動程式會有極大的風險。這樣的風險相當於限制了新系統韌體的大小,時常造成系統業者相當大的不便。
有鑑於此,本發明提供一種韌體更新方法與使用此方法的電子裝置,能夠在無須更新啟動程式下充分利用磁碟的未使用空間。
本發明實施例提出的韌體更新方法適用於電子裝置。電子裝置包括非揮發性記憶體,且非揮發性記憶體包括韌體分割區以及備用分割區。所述韌體更新方法包括:執行輔助韌體,其中韌體分割區包括第一區塊以及第二區塊,且輔助韌體位於第一區塊並且包括非揮發性記憶體的磁區分割表;接收對應於電子裝置的系統韌體的系統更新檔;以及當系統韌體的所需空間大於第二區塊的可用空間時,依據磁區分割表以及系統更新檔將系統韌體寫入韌體分割區的第二區塊以及備用分割區的備用區塊。
本發明實施例提出的電子裝置包括通訊元件、非揮發性記憶體以及控制器。通訊元件用以傳送及接收資料。非揮發性記憶體包括韌體分割區以及備用分割區,其中韌體分割區包括第一區塊以及第二區塊,第一區塊包括輔助韌體,並且輔助韌體包括非揮發性記憶體的磁區分割表。控制器耦接於通訊元件以及非揮發性記憶體,用以:執行輔助韌體;接收對應於系統韌體的系統更新檔;以及當系統韌體的所需空間大於第二區塊的可用空間時,依據磁區分割表以及系統更新檔將系統韌體寫入韌體分割區的第二區塊以及備用分割區的備用區塊。
基於上述,本發明實施例所提出的韌體更新方法以及電子裝置,將小容量的輔助韌體安裝在其中一個記憶體分割區中,並且利用此輔助韌體來跨記憶體分割區的讀寫資料。據此,能夠能夠在無須更新開機分割區的啟動程式下,彈性的利用各個記憶體分割區中的不同區塊,達到了更高的記憶體利用效率。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接第二裝置,則應該被解釋成第一裝置可以直接耦接至第二裝置,或者第一裝置可以透過其他裝置、導線或某種連接手段而間接地耦接至第二裝置。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
在本發明實施例的韌體更新方法中,設計出功能較少且所占空間較小的輔助韌體,並將其安裝於保留給系統韌體的記憶體分割區中。在輔助韌體中包括有整個記憶體的記憶體分割表,因此在載入輔助韌體後,便能夠藉由輔助韌體中的記憶體分割表來存取整個記憶體的各個記憶體分割區。如此一來,在下載系統韌體後,即使發現預留此系統韌體的記憶體分割區的空間不足,也能夠藉由輔助韌體來充分利用記憶體的其他分割區以跨分割區地安裝系統韌體,以及跨分割區地載入系統韌體。特別是,本發明一實施例中的輔助韌體還具有與外部主機建立連線的功能,使得輔助韌體在被單獨執行時也能夠傳送或接收資料。
圖1繪示本發明一實施例的電子裝置的概要方塊圖。請參照圖1,本實施例的電子裝置100包括通訊元件110、非揮發性記憶體120以及控制器130,其中控制器130耦接於通訊元件110以及非揮發性記憶體120。在以下的實施例中,電子裝置100以纜線數據機(cable modem)作為示範例來進行說明,但本發明並不限於此。在其他實施例中,電子裝置100亦可例如是智慧型手機(smart phone)、平板電腦(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繪示為非揮發性記憶體120a、120b、120c與120d,分別用以表示非揮發性記憶體120在本發明實施例的韌體更新方法中的不同狀態。以下將透過非揮發性記憶體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的部分稱為第一區塊PTN1-1,而韌體分割區PTN1的其他部分稱為第二區塊PTN1-2。
值得一提的是,在另一實施例中,電子裝置100的製造廠商可例如是在電子裝置100出廠前就將啟動程式寫於開機分割區PTN0,並且將輔助韌體寫於韌體分割區PTN1中,使得電子裝置100在出廠時就已是處於非揮發性記憶體120b的狀態。
特別是,本發明實施例所提出的輔助韌體中包括磁區分割表而使電子裝置100根據資料所在的記憶體分割區來存取資料,其中包括跨不同的記憶體分割區來存取資料。此外,輔助韌體還具有有線電纜資料服務介面規範(Data-Over-Cable Service Interface Specifications,DOCSIS)的連線功能,能夠透過DOCSIS規範來與外部主機建立連線並傳送及接收資料。
當電子裝置100以非揮發性記憶體120b的狀態重啟後,開機分割區PTN0的啟動程式會指示選擇韌體分割區PTN1來進行讀取。在本實施例中,第一區塊PTN1-1中的輔助韌體會被載入並執行,因而使得電子裝置100透過DOCSIS規範與外部主機建立連線。
在一實施例中,在輔助韌體運作的過程中電子裝置100會進一步地接收到來自外部主機的韌體更新指令,並且接收到對應於輔助韌體的輔助韌體更新檔。據此,電子裝置100的控制器130會依據所接收的輔助韌體更新檔將輔助韌體寫入韌體分割區PTN1當中,以複寫並更新輔助韌體,隨後重啟電子裝置100。
值得一提的是,輔助韌體的功能較系統韌體少,因此輔助韌體的所需空間將不大於第一區塊PTN1的可用空間。
請參照圖4,在另一實施例中,在輔助韌體運作的過程中電子裝置100會進一步地接收到來自外部主機的韌體更新指令,並且接收到對應於電子裝置100的系統韌體的系統更新檔。
若系統更新檔所對應的系統韌體的所需空間大於第二區塊PTN1-2的可用空間,電子裝置100的控制器130會依據所接收的系統更新檔,依據輔助韌體的磁區分割表以及系統更新檔來將系統韌體寫入韌體分割區PTN1的第二區塊PTN1-2,以及備用分割區PTN2中。在更新系統韌體成功後,非揮發性記憶體120的狀態如圖4所示的非揮發性記憶體120c。在本實施例中,用以寫入系統韌體的部份備用分割區稱為備用區塊PTN2-2,其他部分的備用分割區PTN2則稱為固定資料區塊PTN2-1。如此一來,在非揮發性記憶體120處於如圖4所示的非揮發性記憶體120c的狀態時,韌體分割區PTN1的第一區塊PTN1-1的輔助韌體可被正常運作執行。此外,跨兩個分割區來記錄的同時位於韌體分割區PTN1的第二區塊PTN1-2以及備用分割區PTN2的備用區塊PTN2-2中的系統韌體也可以被正常運作執行。
另一方面,若系統更新檔所對應的系統韌體的所需空間不大於第二區塊PTN1-2的可用空間,電子裝置100的控制器130會依據所接收的系統更新檔,依據輔助韌體的磁區分割表以及系統更新檔來將系統韌體寫入韌體分割區PTN1的第二區塊PTN1-2。在更新系統韌體成功後,非揮發性記憶體120的狀態如圖4所示的非揮發性記憶體120d。如此一來,在非揮發性記憶體120處於如圖4所示的非揮發性記憶體120d的狀態時,韌體分割區PTN1的第一區塊PTN1-1的輔助韌體可被正常運作執行。此外,韌體分割區PTN1的第二區塊PTN1-2的系統韌體也可以被正常運作執行。
值得一提的是,即使系統韌體更新失敗,由於韌體分割區PTN1的第一區塊PTN1-1的輔助韌體仍然可以被正常運作執行,因此在電子裝置100重啟之後仍然可依照上述的流程來執行韌體分割區PTN1的第一區塊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的第一區塊PTN1-1中。
請參照圖6,在步驟S210中,電子裝置100會透過通訊元件110接收對應於輔助韌體的輔助韌體更新檔。舉例來說,電子裝置100起初例如是運行於傳統的系統韌體,並在運行中透過DOCSIS規範從外部主機接收到對應於輔助韌體的輔助韌體更新檔。接著,在步驟S220中,控制器130會依據輔助韌體更新檔來將輔助韌體寫入韌體分割區PTN1的第一區塊PTN1-1。在一實施例中,控制器130例如先依據輔助韌體的所需空間,將韌體分割區PTN1定義為第一區塊PTN-1以及第二區塊PTN1-2,再依據輔助韌體更新檔來將輔助韌體輔助寫入第一區塊PTN1-1中。韌體更新檔中例如包括安裝輔助韌體所需要的資料,以及輔助韌體所需安裝的記憶體分割區等資訊,但本發明並不限於此。
在一實施例中,韌體分割區PTN1可例如是記錄電子裝置100所正在運行的系統韌體所在的記憶體分割區。在另一實施例中,電子裝置100所正在運行的系統韌體所在的記憶體分割區也可例如是與韌體分割區PTN1不同的記憶體分割區。在輔助韌體寫入韌體分割區PTN1的第一區塊PTN1-1後,圖5的流程S100會被執行。
在另一實施例中,電子裝置100的非揮發性記憶體120b的韌體分割區PTN1的第一區塊PTN1-1當中已經記錄有輔助韌體,因此可無須執行流程S200就開始執行流程S100。
請接著參照圖5,控制器130啟動或重啟電子裝置100後,在步驟S110中執行輔助韌體。在一實施例中,控制器130會在流程S200結束後重啟電子裝置100,而在電子裝置100重啟後,首先會載入開機分割區PTN0中的啟動程式,而啟動程式會指示載入並執行韌體分割區PTN1的第一區塊PTN1-1中的輔助韌體。在另一實施例中,電子裝置100的非揮發性記憶體120b的韌體分割區PTN1的第一區塊PTN1-1當中已經記錄有輔助韌體,因而在電子裝置100啟動後,同樣會載入開機分割區PTN0中的啟動程式,而啟動程式會指示載入並執行韌體分割區PTN1的第一區塊PTN1-1中的輔助韌體。
在步驟S120中,控制器130會依據磁區分割表判斷韌體分割區的第二區塊以及備用分割區的備用區塊中是否包括有效的系統韌體。在本實施例中,輔助韌體的磁區分割表中指示自身所在的第一區塊PTN1-1、系統韌體所在的第二區塊PTN1-2以及備用區塊PTN2-2。據此,控制器130能夠檢查第二區塊PTN1-2以及備用區塊PTN2-2,以判斷其中是否記錄有效的系統韌體。在一實施例中,系統韌體是記錄於第二區塊PTN1-2以及備用區塊PTN2-2中,因此控制器130能夠針對第二區塊PTN1-2以及備用區塊PTN2-2來檢查其中是否記錄有效的系統韌體。在另一實施例中,系統韌體僅記錄於第二區塊PTN1-2中,因此控制器130能夠針對第二區塊PTN1-2來檢查其中是否記錄有效的系統韌體。其中,進行檢查的方式例如是利用校驗和(checksum),但本發明並不以此為限,所屬領域具備通常知識者當可依其需求來實作之。
若第二區塊PTN1-2以及備用區塊PTN2-2中記錄有效的系統韌體(即,第二區塊PTN1-2以及備用區塊PTN2-2共同記錄系統韌體或僅第二區塊PTN1-2記錄系統韌體),則在步驟S130中,控制器130會執行此系統韌體,並且在步驟S140中藉由此系統韌體來連線至外部主機。在一實施例中,控制器130會依據輔助韌體中的磁區分割表,跨兩個記憶體分割區地來載入記錄於韌體分割區PTN1的第二區塊PTN1-2以及備用分割區PTN2的備用區塊PTN2-2中的系統韌體,或載入僅記錄於韌體分割區PTN1第二區塊PTN1-2中的系統韌體,並執行此系統韌體。隨後,控制器130例如會藉由此系統韌體所具備的DOCSIS連線功能,來透過DOCSIS規範連線至外部主機。
若第二區塊PTN1-2以及備用區塊PTN2-2中並沒有記錄有效的系統韌體,則在步驟S150中,控制器130會藉由輔助韌體來連線至外部主機。在一實施例中,控制器130會直接藉由輔助韌體所具備的DOCSIS連線功能,來透過DOCSIS規範連線至外部主機。
在本實施例中,一旦電子裝置100透過DOCSIS規範連線至外部主機,便有能力從外部主機接收到更新檔來對電子裝置100的韌體進行下載並更新或安裝,如圖7所示的流程S300。
請參照圖7,在步驟S310中,電子裝置100藉由通訊元件110接收到更新檔。在一實施例中,電子裝置100例如是透過DOCSIS規範從外部主機接收到韌體更新指令與更新檔。所接收到韌體更新指令與更新檔中例如包括指示所欲更新的韌體類型、所欲寫入的記憶體分割區等,但本發明並不在此限。
在步驟S320中,電子裝置100會判斷所接收到的更新檔為輔助韌體更新檔或是對應於電子裝置100的系統韌體的系統更新檔。在一實施例中,韌體更新指令例如會直接指示更新檔為輔助韌體更新檔或系統更新檔。在另一實施例中,控制器130亦可例如是檢查更新檔的標頭檔來判斷此更新檔為輔助韌體更新檔或系統更新檔。換言之,本發明並不在此限制控制器130判斷所接收到的更新檔是輔助韌體更新檔或系統更新檔的具體實作方式。
若控制器130判斷所接收到的更新檔為輔助韌體更新檔,則在步驟S330中,控制器130會依據磁區分割表更新韌體分割區的第一區塊中的輔助韌體。反之,若控制器130判斷所接收到的更新檔為對應於電子裝置100的系統韌體的系統更新檔,則在步驟S340中,控制器130會比較所接收到的系統更新檔所對應的系統韌體的所需空間與韌體分割區的第二區塊的可用空間。若系統韌體的所需空間大於第二區塊的可用空間,則在步驟S350中,控制器130會依據磁區分割表將系統韌體寫入韌體分割區的第二區塊以及備用分割區的備用區塊;反之,若系統韌體的所需空間不大於第二區塊的可用空間,則在步驟S360中,控制器130會依據磁區分割表將系統韌體寫入韌體分割區的第二區塊中。其中,更新輔助韌體以及寫入系統韌體的細節已於前述段落中描述,故在此不再贅述。一旦韌體(例如,輔助韌體或系統韌體)更新完成後,控制器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‧‧‧第一區塊
PTN1-2‧‧‧第二區塊
PTN2‧‧‧備用分割區
PTN2-1‧‧‧固定資料區塊
PTN2-2‧‧‧備份區塊
S100、S200、S300‧‧‧韌體更新方法的流程
S110、S120、S130、S140、S150、S210、S220、S310、S320、S330、S340、S350、S360‧‧‧韌體更新方法的步驟
圖1繪示本發明一實施例的電子裝置的概要方塊圖。 圖2至圖4繪示本發明一實施例的非揮發性記憶體的示意圖。 圖5至圖7繪示本發明一實施例的韌體更新方法的流程圖。

Claims (14)

  1. 一種韌體更新方法,適用於一電子裝置,其中該電子裝置包括一非揮發性記憶體,該非揮發性記憶體包括一韌體分割區以及一備用分割區,其中所述韌體更新方法包括: 執行一輔助韌體,其中該韌體分割區包括一第一區塊以及一第二區塊,該輔助韌體位於該第一區塊並且包括該非揮發性記憶體的一磁區分割表; 接收對應於該電子裝置的一系統韌體的一系統更新檔;以及 當該系統韌體的一所需空間大於該第二區塊的一可用空間時,依據該磁區分割表以及該系統更新檔將該系統韌體寫入該韌體分割區的該第二區塊以及該備用分割區的一備用區塊。
  2. 如申請專利範圍第1項所述的韌體更新方法,其中當該所需空間小於或等於該可用空間時,依據該磁區分割表以及該系統更新檔將該系統韌體寫入該韌體分割區的該第二區塊。
  3. 如申請專利範圍第1項所述的韌體更新方法,其中執行該輔助韌體的步驟之後,更包括: 依據該磁區分割表從該韌體分割區的該第二區塊以及該備用分割區的該備用區塊載入並執行該系統韌體。
  4. 如申請專利範圍第1項所述的韌體更新方法,其中該系統韌體包括該磁區分割表。
  5. 如申請專利範圍第1項所述的韌體更新方法,更包括: 接收對應該於該輔助韌體的一輔助韌體更新檔;以及 依據該輔助韌體更新檔將該輔助韌體寫入該韌體分割區的該第一區塊。
  6. 如申請專利範圍第1項所述的韌體更新方法,其中該電子裝置為一纜線數據機,其中該輔助韌體包括一DOCSIS連線功能,並且該系統更新檔是透過該DOCSIS連線功能接收。
  7. 如申請專利範圍第1項所述的韌體更新方法,其中該韌體分割區與該備用分割區互不重疊,並且該第一區塊與該第二區塊互不重疊。
  8. 一種電子裝置,包括: 一通訊元件,用以傳送及接收資料; 一非揮發性記憶體,包括一韌體分割區以及一備用分割區,其中該韌體分割區包括一第一區塊以及一第二區塊,該第一區塊包括一輔助韌體,並且該輔助韌體包括該非揮發性記憶體的一磁區分割表;以及 一控制器,耦接於該通訊元件以及該非揮發性記憶體,用以: 執行該輔助韌體; 接收對應於一系統韌體的一系統更新檔;以及 當該系統韌體的一所需空間大於該第二區塊的一可用空間時,依據該磁區分割表以及該系統更新檔將該系統韌體寫入該韌體分割區的該第二區塊以及該備用分割區的一備用區塊。
  9. 如申請專利範圍第8項所述的電子裝置,其中當該所需空間小於或等於該可用空間時,該控制器用以依據該磁區分割表以及該系統更新檔將該系統韌體寫入該韌體分割區的該第二區塊。
  10. 如申請專利範圍第8項所述的電子裝置,其中該控制器在執行該輔助韌體之後,更用以: 依據該磁區分割表從該韌體分割區的該第二區塊以及該備用分割區的該備用區塊載入並執行該系統韌體。
  11. 如申請專利範圍第8項所述的電子裝置,其中該系統韌體包括該磁區分割表。
  12. 如申請專利範圍第8項所述的電子裝置,其中該控制器更用以: 接收對應該於該輔助韌體的一輔助韌體更新檔;以及 依據該輔助韌體更新檔將該輔助韌體寫入該韌體分割區的該第一區塊。
  13. 如申請專利範圍第8項所述的電子裝置,其中該電子裝置為一纜線數據機,其中該輔助韌體包括一DOCSIS連線功能,並且該控制器係透過該DOCSIS連線功能接收該系統更新檔。
  14. 如申請專利範圍第8項所述的電子裝置,其中該該韌體分割區與該備用分割區互不重疊,並且該第一區塊與該第二區塊互不重疊。
TW107102820A 2018-01-26 2018-01-26 韌體更新方法及使用此方法的電子裝置 TWI722269B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
TW107102820A TWI722269B (zh) 2018-01-26 2018-01-26 韌體更新方法及使用此方法的電子裝置
US16/186,308 US11042365B2 (en) 2018-01-26 2018-11-09 Firmware updating method and electronic device using the same
JP2018217069A JP6752863B2 (ja) 2018-01-26 2018-11-20 ファームウェアの更新方法及びこの方法を用いる電子装置
EP18209051.4A EP3518097B1 (en) 2018-01-26 2018-11-29 Firmware updating method and electronic device using the same
KR1020180160327A KR102107843B1 (ko) 2018-01-26 2018-12-12 펌웨어 업데이트 방법 및 이를 사용한 전자 기기
CN201910067968.9A CN110083380A (zh) 2018-01-26 2019-01-24 固件更新方法及使用此方法的电子装置

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
TW201933094A true TW201933094A (zh) 2019-08-16
TWI722269B TWI722269B (zh) 2021-03-21

Family

ID=64564569

Family Applications (1)

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

Country Status (6)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI726477B (zh) * 2019-11-06 2021-05-01 神雲科技股份有限公司 伺服器裝置及其可程式化邏輯單元之避免韌體更新失敗後無法再次更新之方法
TWI736074B (zh) * 2019-12-20 2021-08-11 瑞昱半導體股份有限公司 周邊裝置及其驗證更新方法

Families Citing this family (6)

* 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 百度在线网络技术(北京)有限公司 系统升级方法、装置、电子设备和介质
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
WO2016076880A1 (en) * 2014-11-14 2016-05-19 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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI726477B (zh) * 2019-11-06 2021-05-01 神雲科技股份有限公司 伺服器裝置及其可程式化邏輯單元之避免韌體更新失敗後無法再次更新之方法
TWI736074B (zh) * 2019-12-20 2021-08-11 瑞昱半導體股份有限公司 周邊裝置及其驗證更新方法

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI722269B (zh) 韌體更新方法及使用此方法的電子裝置
JP5173818B2 (ja) 組込みコントローラを介するフラッシュストレージの初期化
US7991988B2 (en) Communication device and firmware update method thereof
US20110283274A1 (en) Firmware image update and management
US10860425B2 (en) Method for recovering basic input/output system image file of a computer system and the computer system
US9846616B2 (en) Boot recovery system
CN102200916B (zh) 电子设备、可配置的部件及该部件的配置信息存储方法
US8136108B2 (en) Updating firmware with multiple processors
US20070055969A1 (en) System and method for updating firmware
US8281038B2 (en) Thin client terminal, operation program and method thereof, and thin client system
CN107526593B (zh) 基于动态链接库的bmc功能定制方法
TWI625672B (zh) 可更新積體電路無線電
CN109582372A (zh) 一种系统的启动方法及装置
TW202125233A (zh) 從分離的bios映像檔啟動的方法及系統
TWI229793B (en) Method and apparatus for identifying hardware compatibility and enabling stable software revision selection
JP2005182812A (ja) コンピュータシステムにおいてイメージファイルを格納するシステムおよび方法
JP4013040B2 (ja) ダウンロード装置及びダウンロード方法
US11768669B2 (en) Installing application program code on a vehicle control system
US7103687B2 (en) System and method for providing an image file in a computer system
CN114879995B (zh) 固件更新的方法和装置
CN101097530A (zh) 更新微控器装置之系统数据存储器之接口装置
CN116263673A (zh) 片外存储器的时序参数加载方法、装置、电子设备及介质
KR20120016957A (ko) 이머젼시 모드를 이용하여 펌웨어를 업그레이드하는 전자기기 및 방법