TW201435575A - 開機容錯裝置與其方法 - Google Patents

開機容錯裝置與其方法 Download PDF

Info

Publication number
TW201435575A
TW201435575A TW102121188A TW102121188A TW201435575A TW 201435575 A TW201435575 A TW 201435575A TW 102121188 A TW102121188 A TW 102121188A TW 102121188 A TW102121188 A TW 102121188A TW 201435575 A TW201435575 A TW 201435575A
Authority
TW
Taiwan
Prior art keywords
firmware
processor
timer
memory
boot
Prior art date
Application number
TW102121188A
Other languages
English (en)
Inventor
Fu-Chou Hsu
Hung-Ju Huang
Chung-Yen Lu
Original Assignee
Aspeed Technology Inc
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 Aspeed Technology Inc filed Critical Aspeed Technology Inc
Publication of TW201435575A publication Critical patent/TW201435575A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本發明實施例提供了一種開機容錯之自動更新韌體裝置與方法。該自動更新韌體裝置包含有一串列埠、一處理器、一計時器、一記憶體與一控制單元。串列埠用以耦接一外部裝置並更新韌體。處理器擷取指令以進行開機動作。計時器用以在處理器開機或每次處理器重新啟動時開始計時,其中若在處理器成功開機前計時器計時的時間終止,則計時器產生一警示訊號。記憶體用以儲存開機用之韌體。控制單元接收警示訊號來停止處理器,且透過該串列埠下載另一開機韌體並寫入記憶體,重新啟動處理器。

Description

開機容錯裝置與其方法
本發明系關於一種電子裝置,特別是關於一種開機容錯裝置與其方法。
一般系統級晶片(System On a Chip(SOC))之開機韌體係經由快閃記憶體來更新。系統級晶片之開機韌體若發生錯誤,往往會導致開機失敗。此時設計者需要由電路板中取出晶片,並且重新寫入其他的開機韌體給此系統級晶片。
因此,針對上述之問題,對於有問題的開機韌體引起系統級晶片發生錯誤之狀況,是無法被接受的。
本發明之目的之一在提供一種開機容錯之自動更新韌體裝置,提解決韌體錯誤造成無法開機之問題。
本發明之目的之一在提供一種開機容錯之自動更新韌體裝置,可讓一系統之處理器利用一串列埠接收之開機韌體來開機,以解決韌體錯誤造成無法開機之問題。
依據本發明之一實施例,提供了一種開機容錯自動更新韌體裝置。開機容錯自動更新韌體裝置包含有一串列埠、一處理器、一計時器、一記憶體、以及一控制單元。串列埠用以耦接一外部裝置且更新韌體。處理器擷取韌體中的指令來開機與執行至少一預設程式。計時器用以在處理器開機或每次處理器重新啟動時開始計時。其中,若在處理器成功開機前計時器計時的時間終止,計時器產生一警示訊號。記憶體用以儲存韌體。控制單元接收警示訊號來停止處理器,且透過串列埠下載另一韌體以寫入記憶體,並 且重新啟動處理器。
依據本發明之一實施例,提供了一種開機容錯自動更新韌體方法。開機容錯自動更新韌體方法包含有下列步驟:首先依據一處理器之開機啟動一計時器,其中,處理器係依據一第一韌體開機。若在處理器成功開機前計時器計時時間終止,則啟動一控制單元以停止處理器,且檢查是否具有一有效的(available)串列埠來提供一第二韌體。接著,透過串列埠對一記憶體寫入第二韌體。重新啟動計時器且利用第二韌體將處理器重新開機。
本發明實施例之開機容錯自動更新韌體裝置與方法在一處理器無法由其內建之韌體於預定時間內成功開機時,利用一串列埠更新其他開機韌體,以讓處理器成功開機。此方法可在開機韌體發生錯誤時提供無需人員涉入之解決方案。再者,另一優點為了讓處理器利用一個正常的開機韌體開機成功,並不需要提供任何指令控制損壞的開機韌體。
100、200‧‧‧開機容錯自動更新韌體裝置
101‧‧‧串列埠
102‧‧‧處理器
103‧‧‧計時器
104‧‧‧記憶體
105‧‧‧控制單元
201‧‧‧記憶體控制單元
301‧‧‧外部裝置
第1圖系根據本發明一實施例之一種開機容錯自動更新韌體裝置之示意圖。
第2圖系系根據本發明另一實施例之一種開機容錯自動更新韌體裝置之示意圖。
第3圖顯示根據本發明實施例之開機容錯自動更新韌體裝置耦接一裝置之示意圖。
第4A與4B圖系本發明一實施例開機容錯自動更新韌體方法之流程圖。
在說明書及後續的申請專利範圍中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,同樣的元件可能會用不同的名詞來稱呼。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的基準。在通篇說明書及後續的申請專利範圍中所提及的「包含」為一開放式用語,故應解釋成「包含但不限定於…」。另外,「耦接」一詞在此包含任何直接及間接的連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接(包含通過電性連接或無線傳輸、光學傳輸等信號連接方式)連接於該第二裝置,或通過其它裝置或連接手段間接地電性或信號連接至該第二裝置。
在此所使用的「及/或」的描述方式,包含所列舉的其中之一或多個專案的任意組合。另外,除非本說明書中有特別指明,否則任何單數形式的用語都同時包含複數形式的涵義。
本發明之一實施例提供了一種開機容錯自動更新韌體裝置。一實施例中,自動更新韌體裝置100包含有一機制,該機制係在一系統開機失敗時利用一串列埠更新開機韌體,且在系統成功開機時停止更新開機韌體。一實施例中,自動更新韌體裝置100包含有一計時器,該計時器在每次系統開機時自動開始計數時間。假設計時時間終止但系統仍未成功開機,則計時器致能自動更新韌體裝置100透過一串列埠更新開機韌體,並將該系統重新開機。
第1圖顯示本發明一實施例之開機容錯自動更新裝置100之示意圖。自動更新韌體裝置100包含至少一串列埠101、一處理器102、一計時器103、一記憶體104、以及一控制單元105。
串列埠101用以更新開機一系統之開機韌體。處理器102擷取指令以將該系統開機。計時器103在處理器102開機或重新啟動時開始計數。一般而言,處理器102會在計時器103計時終止前完成開機。若在處理器102成功開機之前計時器103計時時間終止,計時器103產生一警告訊號Dr。換言之,計時器103可設計為在處理器102成功開機前不要停止計時。記憶體104可為一可複寫式非揮發性記憶體(re-writable non-volatile memory)或一快閃記憶體(flash memory)。記憶體104儲存一用 以開機該系統之開機韌體。控制單元105接收警告訊號Dr以停止處理器102之動作。之後,控制單元105依據警告訊號Dr透過串列埠101下載另一開機韌體。控制單元105將下載之另一開機韌體寫入記憶體104,且重新啟動處理器102與計時器103以讓系統重新開機。
請注意,一實施例中,串列埠101可為一通用異步收發裝置(UART)埠或通用序列匯流排(USB)埠。舉例而言,通用異步收發裝置可為一RS232埠。另一實施例,自動更新韌體裝置100可適用於一系統級晶片(System On Chip(SOC chip))。
一實施例,請參考第2圖,一開機容錯自動韌體更新裝置200更包含一記憶控制單元201。記憶控制單元201用以控制與更新記憶體104。一實施例,記憶控制單元201可為一快閃控制單元(Flash control unit)。
如圖3所示,自動韌體更新裝置100與200可透過串列埠101耦接一外部裝置301,以更新開機韌體。外部裝置301可為一計算裝置,例如一個人電腦、筆記型電腦、一行動通訊裝置、或其他可提供開機韌體給自動韌體更新裝置100與200之裝置。
第4A與4B圖顯示本發明一實施例之開機容錯之自動更新韌體方法之一流程圖。該方法包含有下列步驟:步驟S402:開機程序(booting process)開始。
步驟S404:請參考圖2,處理器102開機一系統。計時器103依據處理器102之開機開始計時至預設數值。一實施例,處理器102依據一第一開機韌體開機,且第一開機韌體係儲存於記憶體104。
步驟S406:判斷處理器102是否成功開機。若是,進入步驟S408;若否,進入步驟S410。
步驟S408:該程序停止計時器103且進入步驟S431。
步驟S410:判斷計時器103是否計時終止。若是,進入步驟S412;若否,持續檢查計時器103是否終止。
步驟S412:啟動控制單元105。
步驟S414:控制單元105停止處理器102。
步驟S416:控制單元105檢查是否具有一有效串列埠101可提供一第二開機韌體。若是,進入步驟S418;若否,表示開機程序失敗, 且進入步驟S432。
步驟S418:開始進行將第二開機韌體寫入記憶體104之步驟。
步驟S420:判斷記憶體104是否需要被抹除(erased)。若是,進入步驟S422;若否,進入步驟S424。
步驟S422:記憶體控制單元201抹除記憶體104。
步驟S424:控制單元105透過串列埠下載第二開機韌體,且傳送第二開機韌體至記憶體控制單元201。記憶體控制單元201將第二開機韌體寫入記憶體104。
步驟S426:控制單元105重置(reset)計時器103,且處理器102重新啟動計時器103、以及利用第二開機韌體將處理器102重新開機。
步驟S428:開機程序重新啟動(restart)。
步驟S430:韌體更新成功。進入步驟S402重新開機。
步驟S431:開機成功。
步驟S432:開機失敗,系統停止。
本發明實施利之開機容錯自動更新韌體裝置與方法在處理器無法利用內建之開機韌體在計時器計時終止前成功開機時,開機容錯自動更新韌體裝置與方法透過一串列埠更新其他的開機韌體。此解決方法不需要人為涉入之方式在內建之開機韌體有錯誤時,提供一開機容錯解決方案。另一優點為,此方法甚至不需要任一指令控制一正常運作之開機韌體取代損壞之開機韌體,以讓開機動作執行成功。另一優點為,設計者不需要從電路板中取出一具有損壞之開機韌體之系統級晶片SOC,並且對該系統級晶片SOC重新寫入其他的開機韌體。此方法可解決習知技術之問題。
雖然本發明之目標、元件、特徵與優點已用多個實施例詳盡的描述,其他相關實施例之也屬於本發明之範疇。例如,此處描述之裝置與方法可採用任何具有非揮發性記憶體、且可透過串列埠更新韌體並將系統開機之系統。此外,雖然本發明實施例係描述利用兩個不同的開機韌體進行更新與開機動作,但本發明不限於此,本發明實施例可採用了兩個或兩個以上之開機韌體進行更新動作,更加提升開機容錯之機制。再者,本發明實施例之記憶體可擴充容量且串列埠之數目亦可擴增,以讓處理器 可以嘗試使用多個韌體開機,提高開機成功之機率。另外,本發明實施例指出之裝置與方法可採用各種大小或種類之記憶體來儲存各個韌體。
以上雖以實施例說明本發明,但並不因此限定本發明之範圍,只要不脫離本發明之要旨,該行業者所進行之各種變形或變更,皆落入本發明之申請專利範圍。
101‧‧‧串列埠
102‧‧‧處理器
103‧‧‧計時器
104‧‧‧記憶體
105‧‧‧控制單元

Claims (12)

  1. 一種開機容錯自動更新韌體裝置,包含有:一串列埠;一處理器,用以擷取韌體中的指令來開機與執行至少一預設程式;一計時器,用以在該處理器開機或重新啟動時開始計時,其中,若在該處理器成功開機之前該計時器計時時間終止,該計時器產生一警告訊號;一記憶體,用以儲存韌體;以及一控制單元,接收該警告訊號以停止該處理器,且依據該警告訊號透過該串列埠下載其他韌體以將該其他韌體寫入該記憶體,並且重新啟動該處理器與該計時器。
  2. 如申請專利範圍第1項所述之裝置,其中該記憶體為一可複寫式非揮發性記憶體。
  3. 如申請專利範圍第1項所述之裝置,其中該串列埠為一通用異步收發裝置(UART)埠或通用序列匯流排(USB)埠。
  4. 如申請專利範圍第1項所述之裝置,其中該記憶體為一快閃記憶體。
  5. 如申請專利範圍第4項所述之裝置,更包含一快閃控制單元,用以更新該快閃記憶體。
  6. 如申請專利範圍第4項所述之裝置,係適用於一系統級晶片(SOC)。
  7. 如申請專利範圍第1項所述之裝置,其中該串列埠係耦接一儲存有該其他韌體之外部裝置。
  8. 如申請專利範圍第7項所述之裝置,其中該外部裝置為一電腦。
  9. 一種開機容錯自動更新韌體方法,包含有:依據一處理器之開機啟動一計時器,其中該處理器依據一第一韌體開機;若在處理器成功開機之前計時器計時間時終止,啟動一控制單元以停止該處理器,且檢查是否具有一有效的串列埠來提供一第二韌體;透過該串列埠對一記憶體寫入該第二韌體;以及重新啟動該計時器,且利用該第二韌體將該處理器重新開機。
  10. 如申請專利範圍第9項所述之方法,更包含:若該處理器成功開機,啟動一控制單元停止該計時器。
  11. 如申請專利範圍第9項所述之方法,其中該記憶體為一可複寫式非揮發性記憶體。
  12. 如申請專利範圍第11項所述之方法,更包含:在該可複寫式非揮發性記憶體需要被抹除時,抹除該可複寫式非揮發性記憶體。
TW102121188A 2013-03-07 2013-06-14 開機容錯裝置與其方法 TW201435575A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/788,926 US20140258699A1 (en) 2013-03-07 2013-03-07 Boot fault tolerant device and method thereof

Publications (1)

Publication Number Publication Date
TW201435575A true TW201435575A (zh) 2014-09-16

Family

ID=51489381

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102121188A TW201435575A (zh) 2013-03-07 2013-06-14 開機容錯裝置與其方法

Country Status (2)

Country Link
US (1) US20140258699A1 (zh)
TW (1) TW201435575A (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9405526B2 (en) * 2012-08-07 2016-08-02 Microsoft Technology Licensing, Llc Initiating update operations
US9723498B2 (en) * 2014-06-18 2017-08-01 Google Inc. Automatically updating an access point
TWI515660B (zh) * 2014-12-17 2016-01-01 緯創資通股份有限公司 韌體變量更新方法
EP3314517A4 (en) * 2016-01-27 2019-02-27 Hewlett-Packard Development Company, L.P. FUNCTIONAL VERIFICATION
US11243757B2 (en) * 2018-12-03 2022-02-08 Dell Products L.P. Systems and methods for efficient firmware update of memory devices in BIOS/UEFI environment
JP2020171002A (ja) * 2019-04-05 2020-10-15 キヤノン株式会社 情報処理装置及びその制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282675B1 (en) * 1997-08-06 2001-08-28 Macronix International Co., Ltd. Fault-tolerant architecture for in-circuit programming
US7003659B2 (en) * 2002-04-29 2006-02-21 Intel Corporation Method and/or apparatus for reliably booting a computer system
TWI245987B (en) * 2004-03-26 2005-12-21 Sunplus Technology Co Ltd Automatic error-detection voice device on motherboard
US7376870B2 (en) * 2004-09-30 2008-05-20 Intel Corporation Self-monitoring and updating of firmware over a network
TWI303382B (en) * 2004-11-26 2008-11-21 Hon Hai Prec Ind Co Ltd System and method for updating bios
US7523350B2 (en) * 2005-04-01 2009-04-21 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller
JP2007128492A (ja) * 2005-10-07 2007-05-24 Toshiba Corp 情報処理装置および起動制御方法
US7849454B2 (en) * 2006-01-13 2010-12-07 Dell Products L.P. Automatic firmware corruption recovery and update
US7613913B2 (en) * 2006-03-21 2009-11-03 Silicon Laboratories Inc. Digital architecture using one-time programmable (OTP) memory
TW200923658A (en) * 2007-11-30 2009-06-01 Giga Byte Tech Co Ltd Detection system for the peripheral apparatus
CN102177500B (zh) * 2008-10-15 2014-03-12 富士通株式会社 信息处理装置以及启动完成通知程序
US20120303942A1 (en) * 2011-05-25 2012-11-29 Eric Peacock Caching of boot data in a storage device
CN104205045B (zh) * 2012-03-30 2017-06-09 英特尔公司 用于提供操作系统有效载荷的方法、装置、以及系统

Also Published As

Publication number Publication date
US20140258699A1 (en) 2014-09-11

Similar Documents

Publication Publication Date Title
JP6198876B2 (ja) セキュア・リカバリ装置及び方法
TWI515660B (zh) 韌體變量更新方法
TWI514408B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
TWI399647B (zh) 回復電腦系統之基本輸出入系統之方法及相關電腦系統
TW201435575A (zh) 開機容錯裝置與其方法
US8601255B2 (en) Approaches for updating bios
US8918778B2 (en) Method of fail safe flashing management device and application of the same
US20090271660A1 (en) Motherboard, a method for recovering the bios thereof and a method for booting a computer
WO2016206514A1 (zh) 启动处理方法及装置
TW201520895A (zh) Bios自動恢復系統及方法
BR112014014815B1 (pt) Dispositivo de computação, método e meio de armazenamento para realização de cópia de segurança de firmware
US20150199190A1 (en) System and method for updating firmware
TW201510867A (zh) 伺服器系統
US11797389B2 (en) System and method for recovering an operating system after an upgrade hang using a dual-flash device
CN110874237A (zh) 软件升级方法、装置、终端以及可读存储介质
US11243780B2 (en) System and method for operating system installation using a dual-flash device
US11481278B2 (en) System and method for recovering an operating system after a runtime hang using a dual-flash device
US11550655B2 (en) System and method for monitoring and upgrading a dual-flash device
US11226811B2 (en) Power safe offline download
CN108873668B (zh) 时间校准方法、处理器及时间校准系统
TWI541724B (zh) 寫入基本輸入輸出系統程式碼的電路與寫入方法
CN111045709B (zh) 固件升级方法和固件升级装置
TWI839101B (zh) 韌體的更新方法
TWI726436B (zh) 電腦基本輸入輸出系統bios修復方法及實施該修復方法之電腦系統
CN107957925B (zh) 用于计算机装置的系统信息存取方法