TWI726477B - 伺服器裝置及其可程式化邏輯單元之避免韌體更新失敗後無法再次更新之方法 - Google Patents
伺服器裝置及其可程式化邏輯單元之避免韌體更新失敗後無法再次更新之方法 Download PDFInfo
- Publication number
- TWI726477B TWI726477B TW108140331A TW108140331A TWI726477B TW I726477 B TWI726477 B TW I726477B TW 108140331 A TW108140331 A TW 108140331A TW 108140331 A TW108140331 A TW 108140331A TW I726477 B TWI726477 B TW I726477B
- Authority
- TW
- Taiwan
- Prior art keywords
- firmware
- unit
- firmware program
- control unit
- programmable logic
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000006870 function Effects 0.000 claims abstract description 60
- 238000012795 verification Methods 0.000 claims description 15
- 230000001568 sexual effect Effects 0.000 claims 1
- 230000000875 corresponding effect Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本發明提供一種伺服器裝置及其可程式化邏輯單元之避免韌體無法再次更新之方法。所述方法包含可程式化邏輯單元之控制單元在工作模式中判斷是否接收到韌體更新指令,在接收到韌體更新指令之後,控制單元驗證可程式化邏輯單元內部之非揮發性記憶體單元儲存之主要韌體程式,當主要韌體程式未通過驗證時,控制單元控制備用韌體程式自可程式化邏輯單元外部之另一非揮發性記憶體單元載入可程式化邏輯單元之一韌體載入單元,控制單元於備用韌體程式載入韌體載入單元後在工作模式中控制目標匯流排寫入功能重新啟用。
Description
本案是關於一種伺服器裝置,且特別是具有可程式化邏輯單元之伺服器裝置。
一般來說,可程式化邏輯單元具有聯合測試行動群組(Joint Test Action Group;JTAG)介面及串列週邊介面(Serial Peripheral Interface;SPI)介面,可程式化邏輯單元的硬體設計預設為藉由JTAG介面或SPI介面更新其韌體程式。
然而,可程式化邏輯單元藉由JTAG介面與SPI介面連接於伺服器裝置的其他單元時,至少需要六根腳位始符合JTAG介面與SPI介面之規範,且JTAG介面與SPI介面之匯流排走線的長度也有一定限制。考量伺服器裝置內之佈局(layout)空間與連接器成本,JTAG介面與SPI介面較難以符合現今對於伺服器裝置之價格及輕薄之需求,因此很多可程式化邏輯單元的電路設計並不具有JTAG介面與SPI介面之匯流排走線,也就是說可程式化邏輯單元的JTAG介面與SPI介面對應之腳位,並未與其他控制晶片電連接也未與連接器電連接。再者,在一些伺服器裝置中,僅將可程式化邏輯單元的JTAG介面與SPI介面對應的連接器保留在伺服器裝置之機殼內部,並未設置對外的連接器來與可程式化邏輯單元的JTAG介面與SPI介面電連接,若可程式化邏輯單元異常或韌體更新失敗而造成僅能透過預設啟用的JTAG介面與外部溝通時,當欲使用JTAG介面更新可程式化邏輯單元之韌體程式時,必須打開伺服器裝置之機殼或機箱蓋,由外部裝置直接連線至JTAG介面的腳位所電連接的機殼內部連接器,始能更新可程式化邏輯單元的韌體程式,造成伺服器裝置之維護者之不便。
本發明提供一種伺服器裝置包含第一非揮發性記憶體單元及可程式化邏輯單元。第一非揮發性記憶體單元用以儲存一備用韌體程式。可程式化邏輯單元具有相應於一韌體寫入方式之一目標匯流排寫入功能及一預設匯流排寫入功能,目標匯流排寫入功能係預設為關閉,預設匯流排寫入功能係預設為啟用。可程式化邏輯單元包含目標匯流排介面單元、第二非揮發性記憶體單元、韌體載入單元及控制單元。第二非揮發性記憶體單元在可程式化邏輯單元之一工作模式中根據為啟用之目標匯流排寫入功能經由目標匯流排介面單元接收一主要韌體程式並儲存主要韌體程式。韌體載入單元耦接第二非揮發性記憶體單元,用以載入備用韌體程式或主要韌體程式,以在載入備用韌體程式或主要韌體程式後啟用目標匯流排寫入功能。控制單元耦接韌體載入單元、第一非揮發性記憶體單元及第二非揮發性記憶體單元,用以在主要韌體程式儲存於第二非揮發性記憶體單元之後在工作模式中判斷是否接收到一韌體更新指令,當接收到韌體更新指令時,目標匯流排寫入功能由啟用轉為關閉,且控制單元驗證主要韌體程式,當主要韌體程式未通過驗證時,控制單元控制韌體載入單元載入備用韌體程式,以在工作模式中重新啟用目標匯流排寫入功能。
本發明提供一種避免韌體無法再次更新的方法,包含可程式化邏輯單元內部之一非揮發性記憶體單元在可程式化邏輯單元之一工作模式中啟用目標匯流排寫入功能,在目標匯流排寫入功能為啟用時,經由可程式化邏輯單元之一目標匯流排介面單元接收並儲存一主要韌體程式,可程式化邏輯單元之一控制單元在工作模式中判斷是否接收到一韌體更新指令,目標匯流排寫入功能在控制單元接收到韌體更新指令之後由啟用轉變為關閉,在接收到韌體更新指令之後,控制單元驗證主要韌體程式,當主要韌體程式未通過驗證時,控制單元控制一備用韌體程式自可程式化邏輯單元外部之另一非揮發性記憶體單元載入可程式化邏輯單元之一韌體載入單元,控制單元於備用韌體程式載入韌體載入單元後在工作模式中控制目標匯流排寫入功能重新啟用。
請參照圖1,圖1係為根據本發明之伺服器裝置之一實施例之方塊示意圖。伺服器裝置1包含可程式化邏輯單元(programmable logic device;PLD)11及非揮發性記憶體單元12(為方便描述,以下稱為第一非揮發性記憶體單元12)。第一非揮發性記憶體單元12係外掛於可程式化邏輯單元11而耦接可程式化邏輯單元11。可程式化邏輯單元11包含預設匯流排介面單元111、目標匯流排介面單元112、非揮發性記憶體單元113(以下稱為第二非揮發性記憶體單元113)、韌體載入單元114及控制單元115。第二非揮發性記憶體單元113耦接預設匯流排介面單元111及目標匯流排介面單元112,控制單元115耦接第二非揮發性記憶體單元113、目標匯流排介面單元112及第一非揮發性記憶體單元12,韌體載入單元114耦接第二非揮發性記憶體單元113及非揮發性記憶體單元12。以下係以預設匯流排介面單元111為JTAG介面單元為例,且以目標匯流排介面單元112為積體電路間(inter-integrated circuit;I2C)介面單元為例。
在一實施例中,控制單元115可以硬體電路之有限狀態機(Finite State Machine)來實現,可程式化邏輯單元11可為可程式化邏輯裝置(Programmable Logic Device;PLD)、複雜可程式邏輯裝置(Complex Programmable Logic Device;CPLD)、或場式可程式閘陣列(Field Programmable Gate Array;FPGA)等,韌體載入單元114可為實現可程式化邏輯單元11之硬體特殊功能(hardware feature)之記憶體裝置,例如隨機存取記憶體(Random Access Memory;RAM)或靜態隨機存取記憶體(Static Random Access Memory;SRAM)等。非揮發性記憶體單元12及非揮發性記憶體單元113可為唯讀記憶體(Read-Only Memory;ROM)、可擦拭可規劃式唯讀記憶體(Erasable Programmable Read Only Memory;EPROM)、快閃記憶體(flash memory)等。
第一非揮發性記憶體單元12係儲存備用韌體程式,第二非揮發性記憶體單元113係儲存主要韌體程式。一般而言,備用韌體程式之韌體版本可為伺服器裝置1前次啟動成功時所執行之韌體程式的韌體版本,可以是在可程式化邏輯單元11啟動成功後,由控制單元115將當下韌體載入單元114執行的韌體程式儲存至第一非揮發性記憶體單元12以作為備用韌體程式,也可以是伺服器裝置1量產出廠時使用的韌體程式之韌體版本,也就是量產時,一併燒錄可程式化邏輯單元11的預設韌體程式於第一非揮發性記憶體單元12中。
再者,第二非揮發性記憶體單元113係可經由I2C介面單元112或JTAG介面111接收更新之韌體程式(例如,前述之主要韌體程式),也就是相應於韌體寫入第二非揮發性記憶體單元113之不同方式,可程式化邏輯單元11具有對應預設匯流排介面單元111之預設匯流排寫入功能以及對應目標匯流排介面單元112之目標匯流排寫入功能,且目標匯流排寫入功能及預設匯流排寫入功能分別為I2C介面寫入功能及JTAG介面寫入功能(即,可根據前述之硬體特殊功能啟用或關閉)。JTAG介面寫入功能係在可程式化邏輯單元11上電後以硬體設計預設為啟用而不關閉,不論可程式化邏輯單元11是處於韌體更新之設定模式或處於韌體更新完成後之工作模式,第二非揮發性記憶體單元113均可自JTAG介面單元111接收更新之韌體程式,使更新之韌體程式經由JTAG介面單元111寫入第二非揮發性記憶體單元113;I2C介面寫入功能則係在可程式化邏輯單元11處於工作模式時始啟用,第二非揮發性記憶體單元113在可程式化邏輯單元11處於工作模式時可自I2C介面單元112接收更新之韌體程式,使更新之韌體程式經由I2C介面單元112寫入第二非揮發性記憶體單元113;若可程式化邏輯單元11處於前述之設定模式,I2C介面寫入功能為關閉,第二非揮發性記憶體單元113在可程式化邏輯單元11處於設定模式時無法自I2C介面單元112接收更新之韌體程式,也就是更新之韌體程式無法在可程式化邏輯單元11處於設定模式時經由I2C介面單元112寫入第二非揮發性記憶體單元113。
於此,在備用韌體程式及主要韌體程式分別儲存於第一非揮發性記憶體單元12及寫入第二非揮發性記憶體單元113後,可程式化邏輯單元11對應地自工作模式切換至設定模式,以進行韌體程式之更新,控制單元115在設定模式中控制主要韌體程式自第二非揮發性記憶體單元113載入韌體載入單元114,或是控制備用韌體程式自第一非揮發性記憶體單元12載入韌體載入單元114,使可程式化邏輯單元11自設定模式切換至工作模式而根據備用韌體程式或主要韌體程式運作。
詳細而言,請合併參照圖1及圖2,圖2為根據本發明之避免韌體無法再次更新的方法之一實施例之流程圖。控制單元115係在可程式化邏輯單元11之工作模式中判斷是否接收到一韌體更新指令(步驟S01),當控制單元115接收到韌體更新指令時,可程式化邏輯單元11進入設定模式,I2C介面寫入功能為關閉,由於第二非揮發性記憶體單元113相較於第一非揮發性記憶體單元12具有較高的優先權,控制單元115在設定模式中先讀取第二非揮發性記憶體單元113,控制單元115驗證儲存於第二非揮發性記憶體單元113之主要韌體程式並判斷主要韌體程式是否通過驗證(步驟S02),控制單元115可判斷儲存在第二非揮發性記憶體單元113之主要韌體程式是否合格,例如控制單元115可執行校驗和(checksum)檢查, 若主要韌體程式未通過驗證(判斷結果為「否」),控制單元115不控制主要韌體程式自第二非揮發性記憶體單元113載入韌體載入單元114。此時,由於主要韌體程式未載入韌體載入單元114,可程式化邏輯單元11仍處於設定模式,I2C介面寫入功能為關閉,控制單元115再進一步讀取第一非揮發性記憶體單元12,控制單元115驗證儲存於第一非揮發性記憶體單元12之備用韌體程式。控制單元115判斷儲存在第一非揮發性記憶體單元12之備用韌體程式是否通過驗證(步驟S03),若備用韌體程式通過驗證(判斷結果為「是」),控制單元115控制備用韌體程式自第一非揮發性記憶體單元12載入韌體載入單元114(步驟S04),使可程式化邏輯單元11進入工作模式,致使I2C介面寫入功能在可程式化邏輯單元11進入工作模式後由關閉轉為啟用而重新啟用。
基此,可程式化邏輯單元11在主要韌體程式不符合要求而造成韌體更新失敗時仍然可改執行備用韌體程式並根據備用韌體程式操作在工作模式而致使I2C介面寫入功能為啟用,伺服器裝置1之設計者或維修人員者可在可程式化邏輯單元11之工作模式中將修復後之韌體程式藉由I2C介面單元112寫入第二非揮發性記憶體單元113,以使用修復過的主要韌體程式再次更新可程式化邏輯單元11所要執行的韌體程式,可程式化邏輯單元11並不會因為主要韌體程式未通過驗證而於韌體更新過程操作在設定模式造成I2C介面寫入功能被切換為預設的關閉,導致修復後之韌體程式無法再次藉由I2C介面單元112傳送更新於第二非揮發性記憶體單元113而沒有其他備用的溝通介面可以用來更新韌體之問題。可程式化邏輯單元11之設計者或除錯者並不需要打開機箱蓋以藉由預設JTAG介面單元111更新主要韌體程式,而無需使用預設JTAG介面單元111而僅單獨的使用非預設為啟用且對外的I2C介面單元112即可提供韌體更新失敗並再次使用非預設為啟用且對外的I2C介面單元112再次更新韌體,提升可程式化邏輯單元11之韌體程式之除錯之便利性。
在一實施例中,若控制單元115在步驟S02判斷出主要韌體程式通過驗證(判斷結果為「是」),控制單元115控制主要韌體程式自第二非揮發性記憶體單元113載入韌體載入單元114(步驟S07),使可程式化邏輯單元11自設定模式切換至工作模式,可程式化邏輯單元11即根據主要韌體程式運行而進行對應之動作,例如啟用I2C介面寫入功能(步驟S05),或是進行伺服器裝置1之電源切換及監控程序。
在一實施例中,主要韌體程式、備用韌體程式及任一載入韌體載入單元114之韌體程式係包含啟用I2C介面寫入功能之程式碼。當控制單元115在工作模式中接收到韌體更新指令時,控制單元115係執行韌體載入單元114之一初始化程序,控制單元115清空韌體載入單元114(步驟S06),以抹除已載入韌體載入單元114之韌體程式,可程式化邏輯單元11自工作模式切換至設定模式,由於此時,韌體載入單元114已被清空而未包含韌體程式進而未包含啟用I2C介面寫入功能之程式碼,使I2C介面寫入功能在設定模式中為預設的關閉。待控制單元115在步驟S02判斷出主要韌體程式通過驗證時,控制單元115控制主要韌體程式載入韌體載入單元114,或是控制單元115在步驟S02判斷出主要韌體程式未通過驗證時,控制單元115在步驟S04控制備用韌體程式載入韌體載入單元114,程式化邏輯單元11自設定模式切換至工作模式,韌體載入單元114包含主要韌體程式或備用韌體程式而包含啟用I2C介面寫入功能之程式碼,使I2C介面寫入功能由關閉切換為啟用。
在一實施例中,I2C介面單元112係具有兩腳位(資料腳位及時脈訊號腳位)耦接第二非揮發性記憶體單元113,且I2C介面單元112包含對應於啟用或關閉I2C介面寫入功能之一暫存器。在主要韌體程式或備用韌體程式載入韌體載入單元114而致使可程式化邏輯單元11操作在工作模式之後,控制單元115在工作模式中執行前述之啟用I2C介面寫入功能之程式碼,控制單元115在步驟S05中根據啟用I2C介面寫入功能之程式碼發送一致能訊號至I2C介面單元112之暫存器,以修改暫存器儲存之致能值為高位準,且控制單元115在前述之致能值轉為高位準後更觸發I2C介面寫入功能之啟用生效。另一方面,在控制單元115接收到韌體更新指令而清空韌體載入單元114時,韌體載入單元114未包含啟用I2C介面寫入功能之程式碼,控制單元115在設定模式中因此並未發送前述之致能訊號至I2C介面單元112之暫存器,也就是I2C介面單元112之暫存器並未接收到前述之致能訊號,暫存器儲存之致能值為低位準,I2C介面寫入功能即為停用。
在一實施例中,如圖1所示,伺服器裝置1更包含一主控單元13耦接可程式化邏輯單元11,且I2C介面單元112耦接在主控單元13與第二非揮發性記憶體單元113之間,I2C介面單元112之資料腳位及時脈訊號腳位耦接主控單元13。主控單元13可設置在伺服器裝置1的主機板上,主控單元13可為基板管理控制器(BMC)或平台路徑控制器(PCH),主控單元13可藉由I2C介面單元112之資料腳位發送前述之主要韌體程式至第二非揮發性記憶體單元113,使主要韌體程式寫入第二非揮發性記憶體單元113。並且,主控單元13可發送前述之韌體更新指令給控制單元115,使控制單元115在步驟S01中判斷出接收到韌體更新指令而對應地執行後續之步驟。
再者,主要韌體程式及備用韌體程式係分別包含不同之版本號碼,主控單元13可週期地根據主要韌體程式及備用韌體程式之版本號碼判斷載入韌體載入單元114之韌體程式係為主要韌體程式或為備用韌體程式,詳細來說,主控單元13會預存欲用來更新韌體的主要韌體程式對應的版本號碼作為預設版本號碼,當主控單元13判斷出載入韌體載入單元114之韌體程式所對應的版本號碼與預設版本號碼不符,則判定載入韌體載入單元114之韌體程式係為備用韌體程式,若主控單元13判斷出韌體載入單元114包含備用韌體程式,表示主要韌體程式未合格或是更新韌體的過程發生錯誤而未成功載入韌體載入單元114,主控單元13可在可程式化邏輯單元11藉由執行備用韌體程式而啟用I2C介面寫入功能時經由I2C介面單元112重新發送主要韌體程式或是發送修復後之另一主要韌體程式至第二非揮發性記憶體單元113。
舉例來說,以主要韌體程式包含為「1」之版本號碼且備用韌體程式包含為「2」之版本號碼為例,且以預設版本號碼為「1」為例,若主控單元13根據為「1」之預設版本號碼判斷出韌體載入單元114包含之之韌體程式的版本號碼符合為「1」之預設版本號碼,主控單元13即判斷出韌體載入單元114係載入主要韌體程式;反之,若主控單元13判斷出韌體載入單元114包含之韌體程式的版本號碼不符合為「1」之預設版本號碼,例如韌體載入單元114包含版本號碼為「2」之韌體程式,主控單元13即判斷出韌體載入單元114係載入備用韌體程式而據以重新發送主要韌體程式或是發送修復後之另一主要韌體程式至第二非揮發性記憶體單元113。
其中,值得說明的是,圖1係以伺服器裝置1包含主控單元13為例,然本案不以此為限,在其他的實施例中,伺服器裝置1更可連接於一外接之電子裝置,例如電路板或是其他伺服器,主控單元13可設置在外接之電子裝置。
綜上所述,根據本案之伺服器裝置及其可程式化邏輯單元之避免韌體無法更新之方法之一實施例,可程式化邏輯單元並不會因為主要韌體程式未通過驗證而操作在設定模式造成非預設的I2C介面寫入功能關閉,而開啟沒有電連接預留連接器或其控制器的預設JTAG介面,導致可程式化邏輯單元自動修復為先前版本之韌體程式後執行先前版本之韌體程式卻無法藉由I2C介面單元或預設JTAG介面重新載入更新新版本的韌體程式於第二非揮發性記憶體單元,而無法再次進行韌體程式的載入更新之問題。可程式化邏輯單元之設計者或除錯者在主要韌體程式未通過驗證時並不需要打開機箱蓋以藉由預設的JTAG介面更新主要韌體程式,設計者或除錯者依然可藉由I2C介面單元修復主要韌體程式,大幅地提升可程式化邏輯單元之韌體程式之除錯之靈活性與便利性。並且,I2C介面單元僅需兩根腳位,且I2C介面單元之匯流排走線的長度較長,I2C介面單元較JTAG介面與SPI介面更能符合現今對於伺服器穩定且輕薄之需求。
雖然本案已以實施例揭露如上然其並非用以限定本案,任何所屬技術領域中具有通常知識者,在不脫離本案之精神和範圍內,當可作些許之更動與潤飾,故本案之保護範圍當視後附之專利申請範圍所界定者為準。
1:伺服器裝置
11:可程式化邏輯單元
111:JTAG介面單元
112:I2C介面單元
113:第二非揮發性記憶體單元
114:韌體載入單元
115:控制單元
12:第一非揮發性記憶體單元
13:主控單元
S01~S08:步驟
[圖1] 為根據本發明之伺服器裝置之一實施例之方塊示意圖。
[圖2] 為根據本發明之避免韌體無法再次更新的方法之一實施例之流程圖。
1:伺服器裝置
11:可程式化邏輯單元
111:JTAG介面單元
112:I2C介面單元
113:第二非揮發性記憶體單元
114:韌體載入單元
115:控制單元
12:第一非揮發性記憶體單元
13:主控單元
Claims (10)
- 一種伺服器裝置,包含: 一第一非揮發性記憶體單元,用以儲存一備用韌體程式;及 一可程式化邏輯單元,具有相應於一韌體寫入方式之一目標匯流排寫入功能及一預設匯流排寫入功能,該目標匯流排寫入功能係預設為關閉,該預設匯流排寫入功能係預設為啟用,該可程式化邏輯單元包含: 一目標匯流排介面單元; 一第二非揮發性記憶體單元,用以在該可程式化邏輯單元之一工作模式中根據為啟用之該目標匯流排寫入功能經由該目標匯流排介面單元接收一主要韌體程式並儲存該主要韌體程式; 一韌體載入單元,耦接該第二非揮發性記憶體單元,用以載入該備用韌體程式或該主要韌體程式,以在載入該備用韌體程式或該主要韌體程式後啟用該目標匯流排寫入功能;及 一控制單元,耦接該韌體載入單元、該第一非揮發性記憶體單元及該第二非揮發性記憶體單元,用以在該主要韌體程式儲存於該第二非揮發性記憶體單元之後在該工作模式中判斷是否接收到一韌體更新指令,當接收到該韌體更新指令時,該目標匯流排寫入功能由啟用轉為關閉,且該控制單元驗證該主要韌體程式,當該主要韌體程式未通過驗證時,該控制單元控制該韌體載入單元載入該備用韌體程式,以在該工作模式中重新啟用該目標匯流排寫入功能。
- 如請求項1所述之伺服器裝置,其中該伺服器裝置更包含一主控單元耦接該可程式化邏輯單元,其中該主要韌體程式及該韌體更新指令係來自於該主控單元。
- 如請求項2所述之伺服器裝置,其中該主控單元週期地根據該韌體載入單元儲存之一韌體程式之版本號碼判斷該韌體程式係為該主要韌體程式或該備用韌體程式,若為該備用韌體程式,該主控單元在該目標匯流排寫入功能重新啟用後經由該目標匯流排介面單元發送另一主要韌體程式至該第二非揮發性記憶體單元。
- 如請求項1所述之伺服器裝置,其中該控制單元更在接收到該韌體更新指令時清空該韌體載入單元,使已啟用之該目標匯流排寫入功能關閉。
- 如請求項1所述之伺服器裝置,其中該控制單元在控制該韌體載入單元載入該備用韌體程式之前更驗證該備用韌體程式,當該備用韌體程式通過驗證時,該控制單元始控制該韌體載入單元載入該備用韌體程式。
- 一種避免韌體無法再次更新的方法,適於一可程式化邏輯單元,該可程式化邏輯單元具有相應於一韌體寫入方式之一預設匯流排寫入功能及一目標匯流排寫入功能,該避免韌體無法更新的方法包含: 該可程式化邏輯單元內部之一非揮發性記憶體單元在該可程式化邏輯單元之一工作模式中啟用該目標匯流排寫入功能; 在該目標匯流排寫入功能為啟用時,經由該可程式化邏輯單元之一目標匯流排介面單元接收並儲存一主要韌體程式; 該可程式化邏輯單元之一控制單元在該工作模式中判斷是否接收到一韌體更新指令; 該目標匯流排寫入功能在該控制單元接收到該韌體更新指令之後由啟用轉變為關閉; 在接收到該韌體更新指令之後,該控制單元驗證該主要韌體程式; 當該主要韌體程式未通過驗證時,該控制單元控制一備用韌體程式自該可程式化邏輯單元外部之另一非揮發性記憶體單元載入該可程式化邏輯單元之一韌體載入單元;及 該控制單元於該備用韌體程式載入該韌體載入單元後在該工作模式中控制該目標匯流排寫入功能重新啟用。
- 如請求項6所述之避免韌體無法再次更新的方法,其中該主要韌體程式及該韌體更新指令係來自於該可程式化邏輯單元外部之一主控單元。
- 如請求項7所述之避免韌體無法再次更新的方法,更包含:該主控單元週期地根據該韌體載入單元儲存之一韌體程式之版本號碼判斷該韌體程式係為該主要韌體程式或該備用韌體程式,若為該備用韌體程式,該主控單元在該目標匯流排寫入功能重新啟用後經由該目標匯流排介面單元發送另一主要韌體程式至該非揮發性記憶體單元。
- 如請求項6所述之避免韌體無法再次更新的方法,其中該控制單元控制該備用韌體程式載入該韌體載入單元之步驟包含: 該控制單元在控制該備用韌體程式載入該韌體載入單元之前更驗證該備用韌體程式;及 當該備用韌體程式通過驗證時,該控制單元始控制該備用韌體程式載入該韌體載入單元。
- 如請求項6所述之避免韌體無法再次更新的方法,其中該目標匯流排寫入功能由啟用轉變為關閉之步驟包含:該目標匯流排寫入功能係根據該控制單元接收到該韌體更新指令時清空該韌體載入單元而關閉。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108140331A TWI726477B (zh) | 2019-11-06 | 2019-11-06 | 伺服器裝置及其可程式化邏輯單元之避免韌體更新失敗後無法再次更新之方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108140331A TWI726477B (zh) | 2019-11-06 | 2019-11-06 | 伺服器裝置及其可程式化邏輯單元之避免韌體更新失敗後無法再次更新之方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI726477B true TWI726477B (zh) | 2021-05-01 |
TW202119202A TW202119202A (zh) | 2021-05-16 |
Family
ID=77020777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108140331A TWI726477B (zh) | 2019-11-06 | 2019-11-06 | 伺服器裝置及其可程式化邏輯單元之避免韌體更新失敗後無法再次更新之方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI726477B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI839203B (zh) * | 2023-05-04 | 2024-04-11 | 神雲科技股份有限公司 | 擴充伺服系統與資料更新方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI620120B (zh) * | 2016-03-25 | 2018-04-01 | 神雲科技股份有限公司 | 資料載入方法及主機板 |
TW201823980A (zh) * | 2016-12-19 | 2018-07-01 | 英業達股份有限公司 | 電腦系統 |
TW201933094A (zh) * | 2018-01-26 | 2019-08-16 | 和碩聯合科技股份有限公司 | 韌體更新方法及使用此方法的電子裝置 |
-
2019
- 2019-11-06 TW TW108140331A patent/TWI726477B/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI620120B (zh) * | 2016-03-25 | 2018-04-01 | 神雲科技股份有限公司 | 資料載入方法及主機板 |
TW201823980A (zh) * | 2016-12-19 | 2018-07-01 | 英業達股份有限公司 | 電腦系統 |
TW201933094A (zh) * | 2018-01-26 | 2019-08-16 | 和碩聯合科技股份有限公司 | 韌體更新方法及使用此方法的電子裝置 |
Also Published As
Publication number | Publication date |
---|---|
TW202119202A (zh) | 2021-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928499B (zh) | 一种芯片内嵌的flash存储器、芯片以及芯片的启动方法 | |
US7613937B2 (en) | Method and apparatus for utilizing a microcontroller to provide an automatic order and timing power and reset sequencer | |
TWI399647B (zh) | 回復電腦系統之基本輸出入系統之方法及相關電腦系統 | |
US7711989B2 (en) | Storage system with automatic redundant code component failure detection, notification, and repair | |
US20080046780A1 (en) | Nonvolatile memory | |
US10922071B2 (en) | Centralized off-board flash memory for server devices | |
US11392368B2 (en) | Electronic control system for updating circuit | |
CN109240729B (zh) | 一种修复固件代码的方法及系统 | |
CN101593120A (zh) | 带外升级方法和系统 | |
US11579977B2 (en) | Data storage device restoring method | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
JP2023035930A (ja) | コンピュータシステム及びコンピュータシステムのブート方法 | |
TW201327386A (zh) | 製造系統及韌體燒錄方法 | |
TWI726477B (zh) | 伺服器裝置及其可程式化邏輯單元之避免韌體更新失敗後無法再次更新之方法 | |
JP6175788B2 (ja) | マイクロプログラムを更新可能な電子機器 | |
CN108572835A (zh) | 一种fpga配置文件在线升级系统 | |
CN109684153B (zh) | 具有双韧体储存空间的服务器及其韧体更新方法 | |
CN113703816B (zh) | 服务器装置及其避免韧体无法再次更新之方法 | |
CN114895950A (zh) | 程序和引导层自更新方法及系统 | |
TWI541724B (zh) | 寫入基本輸入輸出系統程式碼的電路與寫入方法 | |
TWI733279B (zh) | 伺服器裝置及其避免韌體無法再次更新之方法 | |
CN110888766A (zh) | 一种芯片的启动方法 | |
KR20060014320A (ko) | 다중 부트 로더 코드를 갖는 nand 플래시 메모리를이용한 부트 처리 장치 및 방법 | |
CN113760335B (zh) | 服务器装置及其避免韧体无法再次更新之方法 | |
TWI726436B (zh) | 電腦基本輸入輸出系統bios修復方法及實施該修復方法之電腦系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |