TW201606649A - Device and method for updating firmware of rack mountable server system - Google Patents

Device and method for updating firmware of rack mountable server system Download PDF

Info

Publication number
TW201606649A
TW201606649A TW103127324A TW103127324A TW201606649A TW 201606649 A TW201606649 A TW 201606649A TW 103127324 A TW103127324 A TW 103127324A TW 103127324 A TW103127324 A TW 103127324A TW 201606649 A TW201606649 A TW 201606649A
Authority
TW
Taiwan
Prior art keywords
module
updated
chip module
control chip
firmware
Prior art date
Application number
TW103127324A
Other languages
Chinese (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 TW103127324A priority Critical patent/TW201606649A/en
Publication of TW201606649A publication Critical patent/TW201606649A/en

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

A method for updating firmware of rack mountable server system is disclosed herein and suited to update a firmware of an update-needed chip module by a control chip module. The method comprises the following steps of: transmitting a plurality of packets constituting a renewed firmware to the update-needed chip module by the control chip module,; transmitting a command of verifying the plurality of packets to the update-needed chip module by the control chip module; acquiring a plurality of verification messages, corresponding to the plurality of packets, from the update-needed chip module by the control chip module; and determining whether all of the plurality of verification messages corresponding to the plurality of packets are correct or not, by the control chip module, thereby making sure whether the plurality of packets received by the update-needed chip module are wrong or not.

Description

機架式伺服器系統的韌體更新方法及其裝置 Firmware update method and device for rack server system

本發明是關於伺服器架構領域,尤其是關於一種機架式伺服器系統的韌體更新方法及其裝置,適用於經由一控制晶片模組更新一待更新晶片模組的韌體。 The present invention relates to the field of server architecture, and more particularly to a firmware update method for a rack server system and a device thereof, which are suitable for updating a firmware of a wafer module to be updated via a control chip module.

目前伺服器廣為各企業所使用,發展的範圍除了結合國際網路與電信業務的應用外,也更深入到普通人的生活中,例如金融、財經、網路銀行等,這些都必須依託伺服器強大的運算能力。 At present, the server is widely used by various enterprises. In addition to the application of international network and telecommunication services, the scope of development is also deeper into the lives of ordinary people, such as finance, finance, online banking, etc., which must rely on the servo. Powerful computing power.

如今伺服器的種類有很多種,比較常見的有機架式伺服器與塔式伺服器。其中,機架伺服器是一種優化結構的塔式伺服器,其設計宗旨主要是為了盡可能減少伺服器空間的佔用。一般而言,機架伺服器的寬度為19英吋,高度以U為單位(1U=44.45毫米),通常有1U,2U,4U,5U等幾種標準的伺服器。而為了要提升目前伺服器的基板的應用層面,系統廠商通常會將伺服器的基板設計成可以與各種類型(例如1U,2U及4U)的系統相容。 There are many types of servers available today, and the more common ones are rack servers and tower servers. Among them, the rack server is an optimized structure of the tower server, and its design purpose is mainly to minimize the occupation of the server space. In general, the rack server has a width of 19 inches and a height of U (1U = 44.45 mm). There are usually several standard servers such as 1U, 2U, 4U, and 5U. In order to improve the application level of the current server substrate, system vendors typically design the server substrate to be compatible with various types of systems (eg, 1U, 2U, and 4U).

而在伺服器機架系統中的主機板包含了多種嵌入式晶片(例如作為控制晶片、計算功耗晶片的Cortex-M3或Cortex-4晶片等),這些嵌入 式晶片都需要韌體來配合運行。倘若在伺服器機架系統出貨之後,需要更新上述晶片的韌體,可以採用的做法是經由一設置在伺服器機架內的機架管理控制器(Rack Management Controller,簡稱RMC)來進行更新。該機架管理控制器包括一ARM9晶片,且運行於一嵌入式Linux系統。當需要更新伺服器機架系統中某一主機板的嵌入式晶片的韌體時,由機架管理控制器讀取韌體文件,並且將韌體文件分解成複數個封包發送至待更新的晶片。在習知的更新方法中,每發送一個封包,機架管理控制器均會等待晶片的返回,並且檢查封包CRC是否正確,若正確才會發送下一個封包。於是,目前更新晶片韌體比較緩慢,用時較長。 The motherboard in the server rack system contains a variety of embedded chips (such as Cortex-M3 or Cortex-4 chips as control chips, power-consuming chips, etc.) The wafers all require firmware to work together. If the firmware of the above chip needs to be updated after the server rack system is shipped, the method can be updated via a Rack Management Controller (RMC) installed in the server rack. . The rack management controller includes an ARM9 chip and runs on an embedded Linux system. When it is necessary to update the firmware of the embedded chip of one of the motherboards in the server rack system, the firmware file is read by the rack management controller, and the firmware file is decomposed into a plurality of packets and sent to the wafer to be updated. . In the conventional update method, each time a packet is sent, the rack management controller waits for the return of the wafer, and checks whether the packet CRC is correct, and if it is correct, the next packet is sent. Therefore, the firmware of the wafer is currently updated relatively slowly and takes a long time.

有鑑於此,極需提供一種新的機架式伺服器系統的韌體更新方法或裝置來解決上述問題。 In view of this, it is highly desirable to provide a new firmware update method or apparatus for a rack server system to solve the above problems.

本發明之一目的在於提供一種機架式伺服器系統的韌體更新方法,其能夠有效解決習知技術中更新韌體緩慢和耗時較長的問題,從而可以節省大量更新時間,使得更新韌體的速度大幅提升。 An object of the present invention is to provide a method for updating a firmware of a rack server system, which can effectively solve the problem that the firmware is slow and time-consuming to be updated in the prior art, thereby saving a large amount of update time and making the update tough. The speed of the body has increased dramatically.

為達成上述目的,本發明提供一種機架式伺服器系統的韌體更新方法,適用於經由一控制晶片模組更新一待更新晶片模組的韌體,該控制晶片模組為一機架式伺服器系統的一機架管理控制器,該機架式伺服器系統包括連接該機架管理控制器的至少一伺服器,該至少一伺服器包含該待更新晶片模組,該機架管理控制器可控制該至少一伺服器的開機與關機,該更新方法包括以下步驟:經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組;經由該控制晶片模組發送一驗證該 複數個封包的命令至該待更新晶片模組;經由該控制晶片模組從該待更新晶片模組獲得該複數個封包對應的複數個驗證訊息;以及經由該控制晶片模組判斷該複數個封包對應的複數個驗證訊息是否全部正確,以確認該待更新晶片模組收到的該複數個封包是否出錯。 To achieve the above object, the present invention provides a firmware update method for a rack server system, which is suitable for updating a firmware of a wafer module to be updated via a control chip module, the control chip module being a rack type a rack management controller of the server system, the rack server system including at least one server connected to the rack management controller, the at least one server including the wafer module to be updated, the rack management control The method of controlling the booting and shutting down of the at least one server includes: sending, by the control chip module, a plurality of packets that can form a new firmware to the wafer module to be updated; Group sends a verification that And receiving, by the control chip module, a plurality of verification messages corresponding to the plurality of packets, and determining, by the control chip module, the plurality of packets Whether the corresponding plurality of verification messages are all correct, to confirm whether the plurality of packets received by the wafer module to be updated are in error.

在一可選擇的實施例中,在上述經由該控制晶片模組判斷該複數個封包對應的複數個驗證訊息是否正確的步驟中,包括:若其中有驗證訊息不正確,進一步包括:步驟a,經由該控制晶片模組將出錯的驗證訊息所對應的封包重新發送給該待更新晶片模組;步驟b,經由該控制晶片模組從該待更新晶片模組獲得重新發送給該待更新晶片模組的封包對應的驗證訊息;步驟c,經由該控制晶片模組判斷重新發送給該待更新晶片模組的封包對應的驗證訊息是否正確;若正確,則該控制晶片模組重新發送給該待更新晶片模組的封包沒有出錯;若不正確,循環執行a、b、c步驟,直到該控制晶片模組從該待更新晶片模組獲得的驗證訊息中不存在錯誤的驗證訊息。 In an optional embodiment, the step of determining, by the control chip module, whether the plurality of verification messages corresponding to the plurality of packets are correct comprises: if the verification message is incorrect, further comprising: step a, And sending, by the control chip module, the packet corresponding to the error verification message to the chip module to be updated; and step b, obtaining, by the control chip module, resending from the chip module to be updated to the chip module to be updated a verification message corresponding to the packet of the group; step c, determining, by the control chip module, whether the verification message corresponding to the packet resent to the chip module to be updated is correct; if correct, the control chip module is resent to the There is no error in updating the packet of the wafer module; if not, the steps a, b, and c are performed cyclically until there is no erroneous verification message in the verification message obtained by the control chip module from the wafer module to be updated.

在一可選擇的實施例中,在上述經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組的步驟之前,進一步包括經由該控制晶片模組將更新韌體分解成該複數個封包。 In an optional embodiment, before the step of transmitting the plurality of packets forming the updated firmware to the to-be-updated wafer module via the control chip module, the method further includes updating the toughness via the control chip module. The body is decomposed into the plurality of packets.

在一可選擇的實施例中,在上述經由該控制晶片模組判斷該複數個封包對應的複數個驗證訊息是否正確的步驟中,包括:若該複數個驗證訊息正確,則待更新晶片模組收到的各封包沒有出錯。 In an optional embodiment, the step of determining, by the control chip module, whether the plurality of verification messages corresponding to the plurality of packets are correct comprises: if the plurality of verification messages are correct, the chip module to be updated There were no errors in the received packets.

在一可選擇的實施例中,該待更新晶片模組是一具有韌體的晶片,該具有韌體的晶片設置於一伺服器的一主機板上。 In an alternative embodiment, the wafer module to be renewed is a wafer having a firmware, and the wafer having the firmware is disposed on a motherboard of a server.

在一可選擇的實施例中,在上述經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組的步驟之前進一步包括:經由該控制晶片模組發送一更新開始命令至該待更新晶片模組;經由該控制晶片模組從該待更新晶片模組獲得一運行狀態訊息;經由該控制晶片模組判斷該運行狀態訊息是否為一第一運行狀態,若不是,則該待更新晶片模組切換為第一運行狀態。 In an optional embodiment, before the step of transmitting the plurality of packets forming the updated firmware to the to-be-updated wafer module via the control chip module, the method further includes: sending an update via the control chip module Starting a command to the wafer module to be updated; obtaining, by the control chip module, an operation status message from the wafer module to be updated; determining, by the control chip module, whether the operation status message is a first operation state, if not The wafer module to be updated is switched to the first operating state.

在一可選擇的實施例中,在上述經由該控制晶片模組發送一更新開始命令至該待更新晶片模組的步驟之後進一步包括:經由該控制晶片模組從該待更新晶片模組等待接收一運行狀態訊息;若等待接收的時間超過一預設的第一時間閾值時,則該控制晶片模組重新發送一更新開始命令至該待更新晶片模組,並且記錄重新發送更新開始命令的次數。 In an optional embodiment, after the step of sending an update start command to the to-be-updated wafer module via the control chip module, the method further comprises: waiting for receiving from the to-be-updated chip module via the control chip module. a running status message; if the waiting time exceeds a predetermined first time threshold, the control chip module resends an update start command to the to-be-updated wafer module, and records the number of times the update start command is resent .

在一可選擇的實施例中,在上述該控制晶片模組重新發送一更新開始命令至該待更新晶片模組並且記錄重新發送更新開始命令的次數的步驟之後,進一步包括:經由該控制晶片模組判斷重新發送更新開始命令的次數是否大於一預設的重發次數最大值;若是,則停止更新韌體的操作。 In an optional embodiment, after the step of resending an update start command to the to-be-updated wafer module and recording the number of times of resending the update start command, the control chip module further includes: via the control wafer module The group judges whether the number of times of resending the update start command is greater than a preset maximum number of retransmission times; if so, stops the operation of updating the firmware.

在一可選擇的實施例中,在上述該控制晶片模組從該待更新晶片模組獲得的驗證訊息中不存在錯誤的驗證訊息的步驟之後,進一步包括:經由該控制晶片模組發送一完成更新韌體的命令至該待更新晶片模組;經由該控制晶片模組從該待更新晶片模組獲得一完成更新韌體的響應,該待更新晶片模組已標記為一韌體更新成功狀態。 In an optional embodiment, after the step of the control chip module that does not have an erroneous verification message in the verification message obtained from the chip module to be updated, the method further includes: sending a completion via the control chip module Updating the firmware command to the to-be-updated wafer module; obtaining, by the control chip module, a response to complete the firmware update from the wafer module to be updated, the wafer module to be updated has been marked as a firmware update success state .

本發明的另一目的在於提供一種韌體更新裝置,適用於經由 一控制晶片模組更新一待更新晶片模組的韌體,該控制晶片模組為一機架式伺服器系統的一機架管理控制器,該機架式伺服器系統包括連接該機架管理控制器的至少一伺服器,該至少一伺服器包含該待更新晶片模組,該機架管理控制器可控制該至少一伺服器的開機與關機,該韌體更新裝置包括:封包發送模組,用以經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組;驗證訊息請求模組,與該封包發送模組相連,用以經由該控制晶片模組發送一驗證該複數個封包的命令至該待更新晶片模組;驗證訊息獲取模組,與該驗證訊息請求模組相連,用以經由該控制晶片模組從該待更新晶片模組獲得該複數個封包對應的複數個驗證訊息;以及驗證訊息判斷模組,與該驗證訊息獲取模組相連,用以經由該控制晶片模組判斷該複數個封包對應的複數個驗證訊息是否全部正確,以確認該待更新晶片模組收到的該複數個封包是否出錯。 Another object of the present invention is to provide a firmware updating device suitable for use via A control chip module updates a firmware of the chip module to be updated, the control chip module is a rack management controller of a rack server system, and the rack server system includes connecting the rack management At least one server of the controller, the at least one server includes the chip module to be updated, the rack management controller can control power on and off of the at least one server, and the firmware update device comprises: a packet sending module And sending, by the control chip module, a plurality of packets that can form an updated firmware to the to-be-updated chip module; and the verification message requesting module is connected to the packet transmission module for using the control chip module Sending a command for verifying the plurality of packets to the to-be-updated chip module; the verification message acquisition module is coupled to the verification message requesting module for obtaining the plural number from the to-be-updated wafer module via the control chip module a plurality of verification messages corresponding to the packets; and a verification message determining module connected to the verification message acquisition module for determining the plurality of packets via the control chip module Should all of the plurality of verification message is correct, to confirm that the chip module to be updated receives the plurality of packets for errors.

在一可選擇的實施例中,該韌體更新裝置進一步包括:封包重發模組,與該驗證訊息判斷模組相連,用於在該複數個驗證訊息中有驗證訊息不正確,經由該控制晶片模組將出錯的驗證訊息所對應的封包重新發送給該待更新晶片模組;驗證訊息重獲模組,與該封包重發模組相連,用於經由該控制晶片模組從該待更新晶片模組獲得重新發送給該待更新晶片模組的封包對應的驗證訊息;驗證訊息重判模組,與該驗證訊息重獲模組相連,用於經由該控制晶片模組判斷重新發送給該待更新晶片模組的封包對應的驗證訊息是否正確,當驗證訊息不正確時,調用該封包重發模組。 In an optional embodiment, the firmware update device further includes: a packet retransmission module, connected to the verification message judging module, configured to verify that the verification message is incorrect in the plurality of verification messages, by using the control The chip module resends the packet corresponding to the error verification message to the chip module to be updated; the verification message retrieving module is connected to the packet retransmission module for updating from the control chip module The chip module obtains a verification message corresponding to the packet resent to the chip module to be updated; the verification message re-judging module is connected to the verification message retrieving module, and is configured to be resent to the device via the control chip module. Whether the verification message corresponding to the packet of the chip module to be updated is correct, and when the verification message is incorrect, the packet retransmission module is called.

在一可選擇的實施例中,該待更新晶片模組是一具有韌體的晶片,該具有韌體的晶片設置於一伺服器的一主機板上。 In an alternative embodiment, the wafer module to be renewed is a wafer having a firmware, and the wafer having the firmware is disposed on a motherboard of a server.

在一可選擇的實施例中,該韌體更新裝置進一步包括:更新開始命令發送模組,用以經由該控制晶片模組發送一更新開始命令至該待更新晶片模組;運行狀態獲取模組,與該更新開始命令發送模組相連,用以經由該控制晶片模組從該待更新晶片模組獲得一運行狀態訊息;運行狀態判斷模組,與該運行狀態獲取模組相連,用以經由該控制晶片模組判斷該運行狀態訊息是否為一第一運行狀態,若不是,則該待更新晶片模組切換為第一運行狀態。 In an optional embodiment, the firmware update device further includes: an update start command sending module, configured to send an update start command to the to-be-updated wafer module via the control chip module; And the update start command sending module is configured to obtain an operation status message from the to-be-updated chip module via the control chip module; the operation state determination module is connected to the operation state acquisition module for The control chip module determines whether the running status message is in a first operating state, and if not, the wafer module to be updated is switched to the first operating state.

在一可選擇的實施例中,該韌體更新裝置進一步包括:等待接收模組,用以經由該控制晶片模組從該待更新晶片模組等待接收一運行狀態訊息;更新開始命令重發模組,與該等待接收模組相連,用以若等待接收的時間超過一預設的第一時間閾值時,則該控制晶片模組重新發送一更新開始命令至該待更新晶片模組,並且記錄重新發送更新開始命令的次數。 In an optional embodiment, the firmware update device further includes: a waiting receiving module, configured to wait for receiving an operation status message from the to-be-updated wafer module via the control chip module; and update the start command retransmission mode The control chip module re-sends an update start command to the to-be-updated chip module, and records the time when the waiting for receiving time exceeds a preset first time threshold. The number of times the update start command was resent.

在一可選擇的實施例中,該韌體更新裝置進一步包括:重發次數判斷模組,用以經由該控制晶片模組判斷重新發送更新開始命令的次數是否大於一預設的重發次數最大值,若是,則停止更新韌體的操作。 In an optional embodiment, the firmware update device further includes: a retransmission count determination module, configured to determine, by the control chip module, whether the number of times of resending the update start command is greater than a preset maximum number of retransmissions The value, if it is, stops the operation of updating the firmware.

在一可選擇的實施例中,該韌體更新裝置進一步包括:完成更新請求模組,用以經由該控制晶片模組發送一完成更新韌體的命令至該待更新晶片模組;完成更新響應模組,與該完成更新請求模組相連,用以經由該控制晶片模組從該待更新晶片模組獲得一完成更新韌體的響應,該待更新晶片模組已標記為一韌體更新成功狀態。 In an optional embodiment, the firmware update device further includes: an update requesting module, configured to send a command to update the firmware to the to-be-updated wafer module via the control chip module; and complete the update response The module is connected to the completion update request module for obtaining a response to complete the firmware update from the wafer module to be updated via the control chip module, and the wafer module to be updated has been marked as a firmware update success. status.

本發明的優點在於,藉由該機架式伺服器系統的韌體更新方 法及其裝置,能夠有效解決習知技術更新晶片韌體緩慢和耗時較長的問題,從而可以節省大量更新時間,提升更新韌體的速度,以進一步提高升級工作的效率。 An advantage of the present invention is that the firmware update side of the rack server system The method and the device thereof can effectively solve the problem that the conventional technology updates the firmware of the chip slowly and takes a long time, thereby saving a large amount of update time and increasing the speed of updating the firmware, so as to further improve the efficiency of the upgrade work.

400‧‧‧機架式伺服器系統 400‧‧‧Rack Server System

410‧‧‧控制晶片模組 410‧‧‧Control chip module

420‧‧‧待更新晶片模組 420‧‧‧ wafer module to be updated

430‧‧‧具有韌體的晶片 430‧‧‧Film with firmware

500‧‧‧韌體更新裝置 500‧‧‧ firmware update device

501‧‧‧更新開始命令發送模組 501‧‧‧Update Start Command Sending Module

502‧‧‧等待接收模組 502‧‧‧waiting receiving module

503‧‧‧更新開始命令重發模組 503‧‧‧Update Start Command Resend Module

504‧‧‧重發次數判斷模組 504‧‧‧Retransmission judgment module

505‧‧‧運行狀態獲取模組 505‧‧‧Run state acquisition module

506‧‧‧運行狀態判斷模組 506‧‧‧Operating state judgment module

510‧‧‧封包發送模組 510‧‧‧Packet sending module

520‧‧‧驗證訊息請求模組 520‧‧‧Verification Message Request Module

530‧‧‧驗證訊息獲取模組 530‧‧‧Verification Message Acquisition Module

540‧‧‧驗證訊息判斷模組 540‧‧‧Verification Message Judgment Module

551‧‧‧封包重發模組 551‧‧‧Package reissue module

552‧‧‧驗證訊息重獲模組 552‧‧‧Verification message retrieving module

553‧‧‧驗證訊息重判模組 553‧‧‧Verification message re-judging module

561‧‧‧完成更新請求模組 561‧‧‧ Complete update request module

562‧‧‧完成更新響應模組 562‧‧‧Complete update response module

S101、S103、S105、S110、S120、S130、S140、S151、S153、S155、S161、S163、S211~S219、S311~S317‧‧‧步驟 S101, S103, S105, S110, S120, S130, S140, S151, S153, S155, S161, S163, S211~S219, S311~S317‧‧

第1圖顯示一種根據本發明之一較佳實施例的機架式伺服器系統的韌體更新方法的具體實施步驟之流程示意圖。 1 is a flow chart showing a specific implementation procedure of a firmware update method of a rack server system according to a preferred embodiment of the present invention.

第2圖顯示習知機架式伺服器系統的韌體更新方法之訊息交互示意圖。 Figure 2 is a diagram showing the message interaction of the firmware update method of the conventional rack server system.

第3圖顯示根據本發明之該機架式伺服器系統之韌體更新方法之訊息交互示意圖。 Figure 3 is a diagram showing the message interaction of the firmware update method of the rack server system according to the present invention.

第4圖顯示一種根據本發明之一較佳實施例之一韌體更新裝置所在伺服器之架構示意圖。 Figure 4 is a block diagram showing the architecture of a server in which a firmware update device is located in accordance with a preferred embodiment of the present invention.

第5圖顯示根據本發明之較佳實施例之該韌體更新裝置的架構圖。 Figure 5 is a block diagram showing the firmware updating apparatus in accordance with a preferred embodiment of the present invention.

下面結合圖式對本發明提供的該機架式伺服器系統的韌體更新方法及其裝置的具體實施做詳細說明。 The specific implementation of the firmware update method and apparatus of the rack server system provided by the present invention will be described in detail below with reference to the drawings.

第1圖顯示一種根據本發明之一較佳實施例的機架式伺服器系統的韌體更新方法的具體實施步驟之流程示意圖。參見第1圖所示,本發明提供一種機架式伺服器系統的韌體更新方法,適用於經由一控制晶片模組更新一待更新晶片模組的韌體。在本實施例中,該控制晶片模組為一機架式伺服器系統的一機架管理控制器(Rack Management Controller,簡稱 RMC),以對待更新晶片模組所具有韌體的晶片進行韌體更新。該機架式伺服器系統包括連接該機架管理控制器的至少一伺服器,該至少一伺服器包含該待更新晶片模組,該機架管理控制器可控制該至少一伺服器的開機與關機。該機架管理控制器具有一ARM系列晶片(例如ARM9晶片)且運行著一嵌入式Linux系統,但不以此限定本發明請求保護的範圍。在其他實施例中,該控制晶片模組也可以為一伺服器的一基板管理控制器,該基板管理控制器可控制該伺服器的開機與關機,該伺服器包含該待更新晶片模組。此外,該待更新晶片模組是一具有韌體的晶片,該具有韌體的晶片設置於一伺服器的一主機板上。該待更新晶片模組可以控制風扇轉速的控制晶片,或可以計算功耗的晶片等。該機架管理控制器將所取得的供更新使用的韌體分解成複數個封包,以便後續發送給需要更新的節點。 1 is a flow chart showing a specific implementation procedure of a firmware update method of a rack server system according to a preferred embodiment of the present invention. As shown in FIG. 1 , the present invention provides a firmware update method for a rack server system, which is suitable for updating a firmware of a wafer module to be updated via a control chip module. In this embodiment, the control chip module is a rack management controller (Rack Management Controller) of a rack server system. RMC), firmware update of the wafer to be updated with the firmware of the wafer module. The rack server system includes at least one server connected to the rack management controller, the at least one server includes the wafer module to be updated, and the rack management controller can control the booting of the at least one server Shut down. The rack management controller has an ARM series of chips (e.g., an ARM9 chip) and runs an embedded Linux system, but does not limit the scope of the claimed invention. In other embodiments, the control chip module can also be a substrate management controller of a server, the substrate management controller can control the startup and shutdown of the server, and the server includes the wafer module to be updated. In addition, the wafer module to be updated is a wafer having a firmware, and the wafer having the firmware is disposed on a motherboard of a server. The wafer module to be updated can control a control wafer of a fan speed, or a wafer that can calculate power consumption, and the like. The rack management controller decomposes the obtained firmware for update into a plurality of packets for subsequent transmission to the node that needs to be updated.

本發明之該機架式伺服器系統的韌體更新方法包括以下步驟:步驟S101,經由該控制晶片模組發送一更新開始命令至該待更新晶片模組;步驟S103,經由該控制晶片模組從該待更新晶片模組獲得一運行狀態訊息;步驟S105,經由該控制晶片模組判斷該運行狀態訊息是否為一第一運行狀態,若不是,則該待更新晶片模組切換為第一運行狀態;步驟S110,經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組;步驟S120,經由該控制晶片模組發送一驗證該複數個封包的命令至該待更新晶片模組;步驟S130,經由該控制晶片模組從該待更新晶片模組獲得該複數個封包對應的複數個驗證訊息;步驟S140,經由該控制晶片模組判斷該複數個封包對應的複數個驗證訊息是否全部正確,以確認該待更新晶片模組收到的該複數個封包是否出錯;步驟S151,經由該控制 晶片模組將出錯的驗證訊息所對應的封包重新發送給該待更新晶片模組;步驟S153,經由該控制晶片模組從該待更新晶片模組獲得重新發送給該待更新晶片模組的封包對應的驗證訊息;步驟S155,經由該控制晶片模組判斷重新發送給該待更新晶片模組的封包對應的驗證訊息是否正確;若正確,則該控制晶片模組重新發送給該待更新晶片模組的封包沒有出錯,若不正確,循環執行步驟S151、S153、S155,直到該控制晶片模組從該待更新晶片模組獲得的驗證訊息中不存在錯誤的驗證訊息;步驟S161,經由該控制晶片模組發送一完成更新韌體的命令至該待更新晶片模組;以及步驟S163,經由該控制晶片模組從該待更新晶片模組獲得一完成更新韌體的響應,該待更新晶片模組已標記為一韌體更新成功狀態。 The firmware update method of the rack server system of the present invention includes the following steps: Step S101, sending an update start command to the to-be-updated wafer module via the control chip module; and step S103, via the control chip module Obtaining an operation status message from the to-be-updated wafer module; step S105, determining, by the control chip module, whether the operation status message is a first operation state, and if not, switching the wafer module to be updated to the first operation a state in which a plurality of packets that can form a new firmware are sent to the chip module to be updated via the control chip module; and in step S120, a command to verify the plurality of packets is sent to the control chip module. The chip module to be updated is obtained; in step S130, the plurality of verification messages corresponding to the plurality of packets are obtained from the to-be-updated chip module via the control chip module; and in step S140, the plurality of packets corresponding to the plurality of packets are determined by the control chip module Whether the plurality of verification messages are all correct, to confirm whether the plurality of packets received by the wafer module to be updated are in error; step S151 Via the control The chip module resends the packet corresponding to the error verification message to the chip module to be updated; and in step S153, the packet sent from the chip module to be updated to the chip module to be updated is obtained through the control chip module. Corresponding verification message; in step S155, determining, by the control chip module, whether the verification message corresponding to the packet resent to the chip module to be updated is correct; if correct, the control chip module is resent to the chip module to be updated There is no error in the packet of the group. If it is not correct, steps S151, S153, and S155 are performed until the control chip module does not have an error verification message in the verification message obtained from the chip module to be updated; step S161, through the control The chip module sends a command to complete the firmware update to the wafer module to be updated; and in step S163, a response of the firmware update is obtained from the wafer module to be updated via the control chip module, the wafer die to be updated The group has been marked as a firmware update success status.

以下將對上述步驟進一步詳細描述。 The above steps will be described in further detail below.

在步驟S101中,該控制晶片模組發送一更新開始命令至該待更新晶片模組,以嘗試與該待更新晶片模組建立一物理連結。其中,該待更新晶片模組為一具有韌體的晶片,具有韌體的晶片設置於一伺服器的一主機板上。該更新開始命令中包含更新韌體應用程式的首地址、每一封包的大小以及封包的數量等訊息。當發送該更新開始命令後,表示準備開始更新韌體,並且等待該待更新晶片模組的回復。 In step S101, the control chip module sends an update start command to the to-be-updated wafer module to attempt to establish a physical connection with the wafer module to be updated. The wafer module to be updated is a wafer having a firmware, and the wafer having the firmware is disposed on a motherboard of a server. The update start command includes information such as the first address of the updated firmware application, the size of each packet, and the number of packets. When the update start command is sent, it indicates that it is ready to start updating the firmware, and waits for the reply of the wafer module to be updated.

在步驟S103中,在該待更新晶片模組接收到更新開始命令後,經由該控制晶片模組等待接收從該待更新晶片模組返回的一運行狀態訊息,該運行狀態訊息也就是設置在待更新晶片模組的晶片所屬的主機板的當前運行狀態,包括bootcode和runtime兩種運行狀態,bootcode運行狀態用於更新韌體操作,而runtime運行狀態用於主機板正常工作。 In step S103, after the wafer module to be updated receives the update start command, the control chip module waits to receive an operation status message returned from the wafer module to be updated, and the operation status message is set to be The current running state of the motherboard to which the wafer module belongs is updated, including bootcode and runtime. The bootcode running state is used to update the firmware operation, and the runtime running state is used for the normal operation of the motherboard.

在步驟S105中,接著,經由該控制晶片模組判斷該運行狀態訊息是否為一第一運行狀態(即能夠進行更新韌體的狀態,例如bootcode運行狀態),若設置在待更新晶片模組的晶片所屬的主機板的當前運行狀態為runtime運行狀態,則自動切換至bootcode運行狀態,從而為後續的更新韌體做好準備。即,bootcode運行狀態能夠進行更新韌體,runtime運行狀態不能夠進行更新韌體。需注意的是,若該控制晶片模組判斷等待接收的時間超過一預設的第一時間閾值時,則該控制晶片模組重新發送一更新開始命令至該待更新晶片模組,並且記錄重新發送更新開始命令的次數。進一步,該控制晶片模組判斷重新發送更新開始命令的次數是否大於一預設的重發次數最大值,若是,則停止更新韌體的操作。為了保證更新韌體工作的效率,在本發明的實施例中,設有一重發次數最大值,例如3次,若重新發送更新開始命令的次數超過3次後,停止建立物理連結,即停止更新韌體操作。上述步驟S101~S105是可選擇的步驟,用於使該控制晶片模組嘗試與該待更新晶片模組建立物理連結。由於可能受環境因素(例如網路環境)的影響,不能保證該控制晶片模組首次就能夠與該待更新晶片模組成功建立物理連結,因此允許該控制晶片模組多次嘗試與該待更新晶片模組建立物理連結。 In step S105, the control chip module determines whether the running status message is in a first operating state (ie, a state in which the firmware can be updated, such as a bootcode running state), if it is set in the wafer module to be updated. When the current running state of the motherboard to which the chip belongs is the runtime running state, it automatically switches to the bootcode running state, so as to prepare for the subsequent update firmware. That is, the bootcode running state can update the firmware, and the runtime running state cannot update the firmware. It should be noted that, if the control chip module determines that the waiting for receiving time exceeds a preset first time threshold, the control chip module resends an update start command to the to-be-updated wafer module, and records the re The number of times the update start command was sent. Further, the control chip module determines whether the number of times of resending the update start command is greater than a preset maximum number of retransmission times, and if so, stops the operation of updating the firmware. In order to ensure the efficiency of the firmware update operation, in the embodiment of the present invention, a maximum number of retransmission times is set, for example, three times. If the number of times of resending the update start command exceeds three times, the physical connection is stopped, that is, the update is stopped. Firmware operation. The above steps S101 to S105 are optional steps for causing the control chip module to attempt to establish a physical connection with the wafer module to be updated. The control chip module can not be successfully physically connected with the chip module to be updated for the first time due to environmental factors (such as the network environment), thereby allowing the control chip module to try multiple times and to be updated. The chip module establishes a physical connection.

在步驟S110中,經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組,並且開始連續不中斷的發送複數個包含更新韌體的封包給該待更新晶片模組,直至該複數個封包發送完畢。在經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組的步驟之前,進一步包括經由該控制晶片模組將更新韌體分解成該複 數個封包。當需要更新該待更新晶片模組(例如伺服器機架系統中任一主機板的嵌入式晶片的韌體)時,該控制晶片模組首先讀取更新韌體,然後將該更新韌體拆分為複數個封包,以準備之後發送至該待更新晶片模組。在本發明的實施例中,該控制晶片模組會先發送一更新韌體的命令(例如,SET FW IMAGE命令)至該待更新晶片模組,接著開始連續不中斷的發送複數個包含更新韌體的封包給該待更新晶片模組(即待更新韌體的晶片的引導代碼bootcode),直至該複數個封包發送完畢,以保證該更新韌體的封包能夠被快速且可靠的傳輸。 In the step S110, a plurality of packets that can form a new firmware are sent to the chip module to be updated via the control chip module, and a plurality of packets containing the updated firmware are sent to the chip to be updated continuously without interruption. Module until the plurality of packets are sent. Before the step of transmitting the plurality of packets forming the updated firmware to the to-be-updated wafer module via the control chip module, further comprising decomposing the updated firmware into the complex via the control chip module Several packets. When the wafer module to be updated (such as the firmware of the embedded chip of any motherboard in the server rack system) needs to be updated, the control chip module first reads the updated firmware, and then the firmware is removed. It is divided into a plurality of packets to be sent to the wafer module to be updated after preparation. In the embodiment of the present invention, the control chip module first sends a command to update the firmware (for example, the SET FW IMAGE command) to the chip module to be updated, and then starts to continuously transmit the plurality of updates including the firmware. The packet of the body is given to the chip module to be updated (ie, the boot code of the chip to be updated) until the plurality of packets are sent to ensure that the package of the firmware is quickly and reliably transmitted.

在步驟S120中,經由該控制晶片模組發送一驗證該複數個封包的命令至該待更新晶片模組,以驗證待更新晶片模組所接收的該複數個封包是否正確(由於在傳送過程中封包可能會出錯)。當更新韌體被拆分為複數個封包進行傳送時,需要對所傳送的複數個封包進行CRC(即Cyclic Redundancy Check的縮寫,循環冗餘校驗)驗證,以保證所傳送的更新韌體的完整性和可靠性。在本發明的實施例中,經由發送一驗證該複數個封包的命令(例如,CHECK FW IMAGE命令)至該待更新晶片模組,以獲取該複數個封包的複數個驗證訊息。同時,經研究,發現習知技術造成目前更新晶片韌體緩慢和耗時較長的原因在於,在習知機架式伺服器系統的韌體更新方法中,控制晶片模組每次發送一個封包給待更新晶片模組,都會等待該待更新晶片模組(即設置在待更新晶片模組中的晶片)返回單一個被傳送封包的CRC訊息,然後控制晶片模組再檢查該單個封包的CRC訊息是否正確,若正確才會再依次發送下一個封包,若不正確則重新發送該單個封包。由於每發送完一個封包後均需要等待該待更新晶片模組的響應,若 封包較多(即更新韌體較大),於是會花費較長的等待時間,以至造成習知技術更新晶片韌體緩慢和耗時較長的情況。而在本發明的實施例中,該控制晶片模組將不再每發送一個封包後等待該待更新晶片模組的響應,而是連續不中斷且一次性將所有封包全部發送完畢,再檢驗該複數個封包的複數個CRC訊息(包括正確及出錯的全部CRC訊息)。 In step S120, a command for verifying the plurality of packets is sent to the to-be-updated wafer module via the control chip module to verify whether the plurality of packets received by the wafer module to be updated are correct (due to the transmission process) The packet may be in error). When the update firmware is split into a plurality of packets for transmission, the CRC (ie, Cyclic Redundancy Check abbreviation, Cyclic Redundancy Check) verification of the transmitted plurality of packets is required to ensure that the updated firmware is transmitted. Integrity and reliability. In an embodiment of the present invention, a plurality of verification messages of the plurality of packets are obtained by transmitting a command for verifying the plurality of packets (for example, a CHECK FW IMAGE command) to the to-be-updated wafer module. At the same time, it has been found that the conventional technology causes the current firmware firmware to be updated slowly and takes a long time. In the firmware update method of the conventional rack server system, the control chip module sends one packet at a time. Waiting for the wafer module to be updated, waiting for the wafer module to be updated (ie, the wafer set in the wafer module to be updated) to return a CRC message of a single transmitted packet, and then controlling the chip module to check the CRC of the single packet. If the message is correct, if it is correct, the next packet will be sent in turn, and if it is not correct, the single packet will be resent. Since each packet needs to wait for the response of the chip module to be updated after each packet is sent, There are more packets (that is, the firmware is larger), so it takes a longer waiting time, which causes the conventional technology to update the chip firmware slowly and takes a long time. In the embodiment of the present invention, the control chip module will not wait for the response of the wafer module to be updated after sending one packet, but continuously send all the packets in a row without interruption, and then check the Multiple CRC messages (including correct and erroneous CRC messages) for multiple packets.

在步驟S130中,經由該控制晶片模組接收從該待更新晶片模組返回的該複數個封包的複數個驗證訊息。 In step S130, a plurality of verification messages of the plurality of packets returned from the to-be-updated wafer module are received via the control chip module.

在步驟S140中,經由該控制晶片模組判斷該複數個封包對應的複數個驗證訊息是否全部正確。若其中某個驗證訊息不正確,則說明其所對應的封包出錯。若不正確,則控制晶片模組會進一步發送一重新更新韌體的命令(例如,RE-SET FW IMAGE命令)至該待更新晶片模組,並且將其中出錯的封包重新發送給該待更新晶片模組,具體步驟如下文所述。 In step S140, it is determined, by the control chip module, whether the plurality of verification messages corresponding to the plurality of packets are all correct. If one of the verification messages is incorrect, it indicates that the corresponding packet is in error. If not, the control chip module further sends a command to re-update the firmware (for example, RE-SET FW IMAGE command) to the wafer module to be updated, and retransmits the error packet to the wafer to be updated. Module, the specific steps are as follows.

在步驟S140之後進一步包括:步驟S151、經由該控制晶片模組將出錯的驗證訊息所對應的所有出錯的封包重新統一發送給該待更新晶片模組;步驟S153、經由該控制晶片模組從該待更新晶片模組獲得重新發送給該待更新晶片模組的封包對應的驗證訊息;步驟S155、經由該控制晶片模組判斷重新發送給該待更新晶片模組的封包對應的驗證訊息是否正確;若正確,則該控制晶片模組重新發送給該待更新晶片模組的封包沒有出錯,若不正確,循環執行步驟S151、S153、S155,直到該控制晶片模組從該待更新晶片模組獲得的驗證訊息中不存在錯誤的驗證訊息(即複數個驗證訊息為全部正確)。 After the step S140, the method further includes: in step S151, re-distributing all the erroneous packets corresponding to the erroneous verification message to the to-be-updated wafer module via the control chip module; and step S153, from the control chip module And the verification, by the control chip module, whether the verification message corresponding to the packet resent to the to-be-updated chip module is correct; If it is correct, the control chip module re-sends the packet to the chip module to be updated without error. If not, the steps S151, S153, and S155 are performed cyclically until the control chip module is obtained from the wafer module to be updated. There is no wrong verification message in the verification message (ie, multiple verification messages are all correct).

經由循環執行步驟S151、S153和S155,以保證該複數個封 包均正確,即該晶片所獲得的更新韌體是正確的。另外,在將其中所有出錯的封包一次性地重新發送的過程中,重新發送的封包個數為當前出錯的封包的最大值,並且等待一次響應。例如總共出錯的封包為3個,則將該3個出錯的封包再一次統一的發送,並且等待1次響應。而在習知技術中,重新發送封包次數為當前出錯的封包個數的累加值,並且等待多次響應。例如,總共出錯的封包為3個,則第一次將第一個封包進行重發,並且等待第一次響應,第二次將第二封包進行重發,並且等待第二次響應,第三次將第三封包進行重發,並且等待第三次響應。因此本發明能夠有效地解決在發送複數個封包過程中繁瑣地等待待更新晶片模組響應這一步驟,從而節約大量時間,提升了韌體更新速度。 Steps S151, S153, and S155 are performed through loops to ensure the plurality of seals The package is correct, that is, the updated firmware obtained by the wafer is correct. In addition, in the process of resending all the erroneous packets in one time, the number of retransmitted packets is the maximum value of the currently erroneous packet, and waits for a response. For example, if there are three packets that are erroneous in total, the three erroneous packets are uniformly transmitted again, and one response is waited for. In the prior art, the number of resend packets is the accumulated value of the number of packets currently erroneous, and waits for multiple responses. For example, if there are 3 packets in total, the first packet will be retransmitted for the first time, and the first response will be awaited, the second packet will be retransmitted the second time, and the second response will be awaited. The third packet is retransmitted and waits for the third response. Therefore, the present invention can effectively solve the step of cumbersomely waiting for the response of the wafer module to be updated in the process of transmitting a plurality of packets, thereby saving a lot of time and improving the firmware update speed.

在步驟S155之後,可以進一步包括:步驟S161、經由該控制晶片模組發送一完成更新韌體的命令至該待更新晶片模組;步驟S163、經由該控制晶片模組從該待更新晶片模組獲得一完成更新韌體的響應,該待更新晶片模組已標記為一韌體更新成功狀態。 After the step S155, the method further includes: step S161, sending a command to complete the firmware update to the to-be-updated wafer module via the control chip module; and step S163, from the wafer module to be updated via the control chip module In response to obtaining a firmware update, the wafer module to be updated has been marked as a firmware update success state.

當該複數個封包的複數個驗證訊息全部正確之後,該控制晶片模組發送一完成更新韌體的命令(例如,COMPLETE命令)至該待更新晶片模組。該待更新晶片模組接收到完成更新韌體的命令後,更新韌體標識(例如flag=1,表示韌體更新成功,同時該標識也用於bootcode/runtime運行狀態的切換,因此該標識也可以被稱為切換模式標識),並執行韌體更新應用程式,之後並返回一完成更新韌體的響應至控制晶片模組。在執行韌體更新應用程式過程中,提供兩種較佳方式,一種方式是設置在該待更新晶片模組中的晶片先將所有封包在動態隨機存取記憶體(即RAM)中收 集,然後再寫入唯讀記憶體(即ROM)中,以更新韌體。另一種方式是該晶片一邊在RAM中收集封包,一邊將其寫入至ROM中,從而完成更新韌體的操作。該控制晶片模組接收到從該待更新晶片模組返回的一完成更新韌體的響應後,表示該韌體更新已完成。需注意的是,設置在待更新晶片模組的晶片所屬的主機板重新啟動後,會自動檢查更新韌體標識,若發現flag=1時,會自動切換至runtime運行狀態。 After the plurality of verification messages of the plurality of packets are all correct, the control chip module sends a command to complete the firmware update (for example, the COMPLETE command) to the wafer module to be updated. After receiving the command to update the firmware, the to-be-updated chip module updates the firmware identifier (for example, flag=1, indicating that the firmware update is successful, and the identifier is also used for switching the bootcode/runtime running state, so the identifier is also This can be referred to as a switch mode flag, and the firmware update application is executed, and then a response to complete the firmware update is returned to the control chip module. In the process of executing the firmware update application, two preferred methods are provided. One way is that the chip set in the chip module to be updated first receives all the packets in the dynamic random access memory (RAM). The set is then written to the read-only memory (ie ROM) to update the firmware. Another way is to store the packet in the RAM while writing it to the ROM, thereby completing the operation of updating the firmware. After receiving the response of the completed update firmware from the wafer module to be updated, the control chip module indicates that the firmware update has been completed. It should be noted that after the motherboard to which the wafer to be updated is attached is restarted, the firmware identifier is automatically checked. If flag=1 is found, it will automatically switch to the runtime running state.

以下將提供一實施例,並結合第2圖和第3圖來進一步說明本發明該機架式伺服器系統的韌體更新方法及習知技術機架式伺服器系統的韌體更新方法。 An embodiment will be provided below, and the firmware updating method of the rack server system and the firmware updating method of the conventional rack server system according to the present invention will be further described with reference to FIGS. 2 and 3.

第2圖顯示習知機架式伺服器系統的韌體更新方法之訊息交互示意圖。第3圖顯示根據本發明之該機架式伺服器系統之韌體更新方法之訊息交互示意圖。 Figure 2 is a diagram showing the message interaction of the firmware update method of the conventional rack server system. Figure 3 is a diagram showing the message interaction of the firmware update method of the rack server system according to the present invention.

參考第2圖所示,假設發送一個封包需要1秒,等待響應需要1S,一共發送10個封包。 Referring to Figure 2, it is assumed that it takes 1 second to send a packet, 1S to wait for a response, and 10 packets to be sent.

步驟S211:經由控制晶片模組發送第一個封包至待更新晶片模組。 Step S211: Send the first packet to the wafer module to be updated via the control chip module.

步驟S212:經由控制晶片模組發送封包驗證訊息命令至待更新晶片模組。 Step S212: Send a packet verification message command to the wafer module to be updated via the control chip module.

步驟S213:經由控制晶片模組接收第一個封包的驗證訊息。 Step S213: Receive a verification message of the first packet via the control chip module.

步驟S214:經由控制晶片模組判斷驗證訊息是否正確,若正確,則發送第二個封包。 Step S214: judging whether the verification message is correct via the control chip module, and if correct, sending the second packet.

步驟S215:經由控制晶片模組發送第N個封包至待更新晶片 模組,其中N為小於10。 Step S215: Send the Nth packet to the chip to be updated via the control chip module Module, where N is less than 10.

步驟S216:經由控制晶片模組發送第N個封包的驗證訊息命令至待更新晶片模組。 Step S216: Send a verification message command of the Nth packet to the wafer module to be updated via the control chip module.

步驟S217:經由控制晶片模組接收第N個封包的驗證訊息。 Step S217: Receive the verification message of the Nth packet via the control chip module.

步驟S218:經由控制晶片模組判斷該第N個封包的驗證訊息是否正確,若不正確,重新發送第N個封包。 Step S218: determining, by the control chip module, whether the verification message of the Nth packet is correct, and if not, resending the Nth packet.

步驟S219:經由控制晶片模組再次判斷第N個封包的驗證訊息是否正確,若正確,則發送第N+1個封包。 Step S219: It is determined again by the control chip module whether the verification message of the Nth packet is correct, and if correct, the N+1th packet is sent.

因此,由上述流程可知,若發送10個封包過程中,未有出錯包的情況下,需花時間約為20秒。當出錯1個封包的情況下,需花時間約為20秒+1秒+1秒(即22秒)。當出錯2個封包的情況下,需花時間約為20秒+2秒+2秒(即24秒)。當出錯3個封包的情況下,需花時間約為20秒+3秒+3秒(即26秒)。當出錯N個封包的情況下,需花時間約為20秒+N秒+N秒(即20秒+2N秒)。 Therefore, as can be seen from the above flow, if there is no error packet in the process of transmitting 10 packets, it takes about 20 seconds. In the case of an error of 1 packet, it takes about 20 seconds + 1 second + 1 second (ie 22 seconds). In the case of an error of 2 packets, it takes about 20 seconds + 2 seconds + 2 seconds (ie 24 seconds). In the case of an error of 3 packets, it takes about 20 seconds + 3 seconds + 3 seconds (ie 26 seconds). In the case of an error of N packets, it takes about 20 seconds + N seconds + N seconds (ie 20 seconds + 2N seconds).

接著,參考第3圖所示,假設序列式地發送10個封包需要1秒,等待響應需要1S,一共發送10個封包。 Next, referring to FIG. 3, it is assumed that it takes 1 second to sequentially transmit 10 packets, 1S for waiting for response, and 10 packets to be transmitted in total.

步驟S311:經由控制晶片模組發送10個封包至待更新晶片模組。 Step S311: Send 10 packets to the wafer module to be updated via the control chip module.

步驟S312:經由控制晶片模組發送10個封包的驗證訊息命令至待更新晶片模組。 Step S312: Send a verification message command of 10 packets to the wafer module to be updated via the control chip module.

步驟S313:經由控制晶片模組接收10個封包的驗證訊息。 Step S313: Receive a verification message of 10 packets via the control chip module.

步驟S314:經由控制晶片模組判斷10個封包的驗證訊息是 否正確,若發現有3個封包不正確,則將其中出錯的3個封包進行第一次的重新發送。 Step S314: determining, by the control chip module, that the verification message of the ten packets is If it is correct, if three packets are found to be incorrect, the three packets that have failed will be resent for the first time.

步驟S315:經由控制晶片模組再次判斷該出錯的3個包的驗證訊息是否正確,若正確,則表示完成更新韌體的傳送,若仍然發現有2個包的驗證訊息不正確,則將出錯的2個封包進行第二次的重新發送。 Step S315: It is determined again by the control chip module whether the verification message of the three packets that are in error is correct. If it is correct, it indicates that the firmware transmission is completed. If the verification message of two packets is still found to be incorrect, an error will occur. The 2 packets are resent for the second time.

步驟S316:經由控制晶片模組再次判斷該出錯的2個包的驗證訊息是否正確,若正確,則表示完成更新韌體的傳送,若仍然發現有1個包的驗證訊息不正確,則將出錯的1個封包進行第三次的重新發送。 Step S316: It is determined again by the control chip module whether the verification message of the two packets that are in error is correct. If it is correct, it indicates that the firmware transmission is completed. If the verification message of one packet is still found to be incorrect, an error will occur. The first packet is resent for the third time.

步驟S317:經由控制晶片模組再次判斷該出錯的1個包的驗證訊息是否正確,若正確,則表示完成更新韌體的傳送。 Step S317: It is determined again by the control chip module whether the verification message of the one packet of the error is correct. If it is correct, it indicates that the transmission of the firmware is completed.

因此,由上述流程可知,若發送10個封包過程中,未有出錯包的情況下,需花時間近似為2秒(假設認為發送1個封包的時間相當於同時發送10個封包的時間。在實務操作中,考慮到封包自身數據的大小以及網路環境,同時發送10個封包的時間應稍大於發送1個封包的時間)。當第1次有封包出錯的情況下,需花時間約為2秒+1秒+1秒(即4秒)。當第2次有封包出錯的情況下,需花時間約為4秒+1秒+1秒(即6秒)。當第3次有封包出錯的情況下,需花時間約為6秒+1秒+1秒(即8秒)。當第N次有封包出錯的情況下,需花時間約為2N秒+1秒+1秒(即2N+2秒)。 Therefore, as can be seen from the above flow, if there is no error packet in the process of transmitting 10 packets, it takes about 2 seconds (assuming that the time for transmitting one packet is equivalent to the time for transmitting 10 packets at the same time. In practice, considering the size of the packet's own data and the network environment, the time to send 10 packets at the same time should be slightly larger than the time to send 1 packet. When the first packet error occurs, it takes about 2 seconds + 1 second + 1 second (that is, 4 seconds). When there is a packet error in the second time, it takes about 4 seconds + 1 second + 1 second (that is, 6 seconds). When there is a packet error in the third time, it takes about 6 seconds + 1 second + 1 second (that is, 8 seconds). When there is a packet error at the Nth time, it takes about 2N seconds + 1 second + 1 second (ie 2N + 2 seconds).

因此,上述內容可知,本發明在將所有出錯的封包一次性地重新發送的過程中,重新發送的封包個數為當前出錯的封包的最大值,並且等待一次響應。而在習知技術中,重新發送封包次數為當前出錯的封包個數的累加值,並且等待多次響應。於是,本發明能夠有效地解決在發送 複數個封包過程中繁瑣地等待該待更新晶片模組響應這一步驟,從而節約大量時間,提升了韌體更新速度。 Therefore, as can be seen from the above, in the process of resending all erroneous packets in one time, the number of retransmitted packets is the maximum value of the currently erroneous packets, and waits for a response. In the prior art, the number of resend packets is the accumulated value of the number of packets currently erroneous, and waits for multiple responses. Thus, the present invention can effectively solve the problem of sending In the process of multiple packets, the module to be updated is cumbersomely responsive to this step, thereby saving a lot of time and improving the firmware update speed.

第4圖顯示一種根據本發明之一較佳實施例之韌體更新裝置所在伺服器之架構示意圖。參見第4圖所示的根據本發明之較佳實施例之韌體更新裝置500,適用於經由一控制晶片模組410更新一待更新晶片模組420的韌體。在本實施例中,該控制晶片模組410為一機架式伺服器系統400的一機架管理控制器,以對待更新晶片模組420所具有韌體的晶片430進行韌體更新。該機架式伺服器系統400包括連接該機架管理控制器的至少一伺服器(圖中未示),該至少一伺服器包含該待更新晶片模組420,該機架管理控制器可控制該至少一伺服器的開機與關機。該機架管理控制器具有一ARM系列晶片且運行著一嵌入式Linux系統,但不以此限定本發明之申請專利範圍。在其他實施例中,該控制晶片模組410也可以為一伺服器(圖中未示)的一基板管理控制器,該基板管理控制器可控制該伺服器的開機與關機,該伺服器包含該待更新晶片模組420。此外,該待更新晶片模組420是一具有韌體的晶片430,該具有韌體的晶片430設置於一伺服器的一主機板(圖中未示)上。 Figure 4 is a block diagram showing the architecture of a server in which a firmware update device is located in accordance with a preferred embodiment of the present invention. The firmware update apparatus 500 according to the preferred embodiment of the present invention, as shown in FIG. 4, is adapted to update a firmware of a wafer module 420 to be updated via a control wafer module 410. In the embodiment, the control chip module 410 is a rack management controller of the rack server system 400, and performs firmware update on the wafer 430 to be updated with the firmware of the wafer module 420. The rack server system 400 includes at least one server (not shown) connected to the rack management controller, and the at least one server includes the wafer module 420 to be updated, and the rack management controller can control The at least one server is powered on and off. The rack management controller has an ARM series of chips and runs an embedded Linux system, but does not limit the scope of the invention. In other embodiments, the control chip module 410 can also be a substrate management controller of a server (not shown), and the substrate management controller can control the startup and shutdown of the server, and the server includes The wafer module 420 to be updated. In addition, the wafer module 420 to be updated is a firmware wafer 430 disposed on a motherboard (not shown) of a server.

第5圖顯示根據本發明之較佳實施例之該韌體更新裝置之架構圖。參見第5圖及第4圖所示,該韌體更新裝置500包括:一封包發送模組510、一驗證訊息請求模組520、一驗證訊息獲取模組530和一驗證訊息判斷模組540。在本發明一實施例中,該韌體更新裝置500可以設置在控制晶片模組內,用於對一伺服器機架系統中的至少一主機板的至少一晶片進行韌體更新。而在其他實施例中,該韌體更新裝置500也可以設置在伺服器機架 系統的其他設備內,以對至少一主機板的至少一晶片進行韌體更新,當然,該韌體更新裝置500也可以是一獨立個體的。 Figure 5 is a block diagram showing the firmware updating apparatus in accordance with a preferred embodiment of the present invention. As shown in FIG. 5 and FIG. 4, the firmware update apparatus 500 includes a packet sending module 510, a verification message requesting module 520, a verification message obtaining module 530, and a verification message determining module 540. In an embodiment of the invention, the firmware updating device 500 can be disposed in the control chip module for performing firmware update on at least one of the at least one motherboard of the server rack system. In other embodiments, the firmware update device 500 can also be disposed in the server rack. In other devices of the system, the firmware is updated on at least one of the at least one motherboard. Of course, the firmware updating device 500 may also be an independent individual.

其中,封包發送模組510,用以經由該控制晶片模組410發送可形成一更新韌體的複數個封包給該待更新晶片模組420。在本發明一實施例中,該韌體更新裝置500會首先發送一更新韌體的命令至該待更新晶片模組420,接著開始連續不中斷的發送複數個包含更新韌體的封包給該待更新晶片模組420。該控制晶片模組410與該待更新晶片模組420之間的傳輸通道頻寬有限,對傳輸資料的大小具有限制,因此需要將更新韌體拆分為複數個封包後進行發送,直至該複數個封包發送完畢。 The packet sending module 510 is configured to send, by the control chip module 410, a plurality of packets that can form a new firmware to the wafer module 420 to be updated. In an embodiment of the present invention, the firmware update apparatus 500 first sends a command to update the firmware to the to-be-updated wafer module 420, and then starts transmitting a plurality of packets containing the updated firmware to the standby without interruption. The wafer module 420 is updated. The bandwidth of the transmission channel between the control chip module 410 and the chip module 420 to be updated is limited, and the size of the transmission data is limited. Therefore, the firmware is split into a plurality of packets and then sent until the complex number The packets have been sent.

該驗證訊息請求模組520,與該封包發送模組510相連,用以經由該控制晶片模組410發送一驗證該複數個封包的命令至該待更新晶片模組420。由於更新韌體被拆分為複數個封包進行傳送,因此需要對所傳送的複數個封包進行CRC驗證,以保證所傳送的更新韌體的完整性和可靠性。 The verification message requesting module 520 is connected to the packet sending module 510 for transmitting a command for verifying the plurality of packets to the to-be-updated wafer module 420 via the control chip module 410. Since the update firmware is split into multiple packets for transmission, it is necessary to perform CRC verification on the transmitted multiple packets to ensure the integrity and reliability of the transmitted firmware.

該驗證訊息獲取模組530,與該驗證訊息請求模組520相連,用以經由該控制晶片模組410從該待更新晶片模組420獲得該複數個封包對應的複數個驗證訊息。 The verification message obtaining module 530 is connected to the verification message requesting module 520 for obtaining a plurality of verification messages corresponding to the plurality of packets from the to-be-updated wafer module 420 via the control chip module 410.

該驗證訊息判斷模組540,與該驗證訊息獲取模組530相連,用以經由該控制晶片模組410判斷該複數個封包對應的複數個驗證訊息是否全部正確,以確認該待更新晶片模組420收到的該複數個封包是否出錯。 The verification message determining module 540 is connected to the verification message obtaining module 530, and is configured to determine, by the control chip module 410, whether the plurality of verification messages corresponding to the plurality of packets are all correct, to confirm the chip module to be updated. The 420 received the plurality of packets is in error.

該韌體更新裝置500進一步包括:封包重發模組551、驗證訊息重獲模組552和驗證訊息重判模組553。其中該封包重發模組551,與該驗證訊息判斷模組540相連,用於在該複數個驗證訊息中有驗證訊息不正確, 經由該控制晶片模組410將出錯的驗證訊息所對應的封包重新發送給該待更新晶片模組420。亦即,當該控制晶片模組410在獲得該複數個封包的複數個驗證訊息後,若發現該複數個封包的驗證訊息存有錯誤,該韌體更新裝置500會將其中所有出錯的封包統一重新發送至該待更新晶片模組420。驗證訊息重獲模組552,與該封包重發模組551相連,用於經由該控制晶片模組410從該待更新晶片模組420獲得重新發送給該待更新晶片模組420的封包對應的驗證訊息。驗證訊息重判模組553,與該驗證訊息重獲模組552相連,用於經由該控制晶片模組410判斷重新發送給該待更新晶片模組420的封包對應的驗證訊息是否正確,當驗證訊息不正確時,調用該封包重發模組。亦即,在將所有出錯的封包統一重新發送的過程中,若其中該複數個封包的複數個驗證訊息仍存有錯誤,則繼續將其中出錯的封包再一次重新發送至該待更新晶片模組420,直至驗證該複數個封包全部正確為止。 The firmware update apparatus 500 further includes: a packet retransmission module 551, a verification message retrieving module 552, and a verification message re-judgment module 553. The packet retransmission module 551 is connected to the verification message determining module 540, and is configured to verify that the verification message is incorrect in the plurality of verification messages. The packet corresponding to the erroneous verification message is resent to the to-be-updated wafer module 420 via the control chip module 410. That is, after the control chip module 410 obtains the plurality of verification messages of the plurality of packets, if the verification message of the plurality of packets is found to have an error, the firmware update device 500 unifies all the erroneous packets. Resend to the wafer module 420 to be updated. The verification message retrieving module 552 is connected to the packet retransmission module 551 for obtaining, by the control chip module 410, the packet that is resent to the to-be-updated wafer module 420 from the to-be-updated wafer module 420. Verify the message. The verification message re-judging module 553 is connected to the verification message re-acquisition module 552, and is configured to determine, via the control chip module 410, whether the verification message corresponding to the packet re-sent to the to-be-updated chip module 420 is correct. When the message is incorrect, the packet retransmission module is called. That is, in the process of uniformly resending all the erroneous packets, if there are still errors in the plurality of verification messages of the plurality of packets, the erroneous packets are continuously resent to the to-be-updated chip module. 420, until it is verified that all of the plurality of packets are correct.

在將其中所有出錯的封包一次性地重新發送的過程中,重新發送的封包個數為當前出錯的封包的最大值,並且等待一次響應。而習知技術是重新發送封包次數為當前出錯的封包個數的累加值,並且等待多次響應。因此本發明能夠有效地解決在發送複數個封包過程中繁瑣地等待響應,從而節省大量時間,提升了韌體更新速度。 In the process of resending all the erroneous packets in one time, the number of retransmitted packets is the maximum value of the currently erroneous packet, and waits for a response. The conventional technique is to resend the accumulated number of packets whose number of packets is currently erroneous, and wait for multiple responses. Therefore, the present invention can effectively solve the cumbersome waiting response in the process of transmitting a plurality of packets, thereby saving a lot of time and improving the firmware update speed.

根據本發明之一較佳實施例,該韌體更新裝置500還可以包括:一更新開始命令發送模組501、一運行狀態獲取模組505和一運行狀態判斷模組506。該更新開始命令發送模組501、運行狀態獲取模組505和運行狀態判斷模組506為可選組件。 According to a preferred embodiment of the present invention, the firmware update apparatus 500 further includes an update start command sending module 501, an operating state obtaining module 505, and an operating state determining module 506. The update start command sending module 501, the running state obtaining module 505, and the running state determining module 506 are optional components.

其中,該更新開始命令發送模組501,用以經由該控制晶片 模組410發送一更新開始命令至該待更新晶片模組420。藉由發送更新開始命令,以嘗試與該待更新晶片模組420建立一物理連結。同時該更新開始命令中包含更新韌體應用程式的首地址、每一封包的大小以及封包的數量等訊息。當發送該更新開始命令後,表示準備開始更新韌體,並且等待該待更新晶片模組420的響應。 The update start command sending module 501 is configured to pass the control chip. The module 410 sends an update start command to the wafer module 420 to be updated. An attempt is made to establish a physical connection with the wafer module 420 to be updated by sending an update start command. At the same time, the update start command includes information such as the first address of the updated firmware application, the size of each packet, and the number of packets. When the update start command is sent, it indicates that it is ready to start updating the firmware, and waits for the response of the wafer module 420 to be updated.

該運行狀態獲取模組505,用以經由該控制晶片模組410從該待更新晶片模組420獲得一運行狀態訊息。在本發明的實施例中,該運行狀態獲取模組505與一重發次數判斷模組504(下文有詳述)相連,而在其他實施例中,該運行狀態獲取模組505可以直接與更新開始命令發送模組501相連(如第5圖中虛線連接所示)。該運行狀態判斷模組506,與該運行狀態獲取模組505相連,用以經由該控制晶片模組410判斷該運行狀態訊息是否為一第一運行狀態,若不是,則該待更新晶片模組420切換為第一運行狀態。 The operating state acquisition module 505 is configured to obtain an operation status message from the to-be-updated wafer module 420 via the control chip module 410. In the embodiment of the present invention, the running state obtaining module 505 is connected to a retransmission number determining module 504 (described in detail below), and in other embodiments, the running state obtaining module 505 can directly update with The start command transmission module 501 is connected (as shown by the dashed line connection in Fig. 5). The operating state determining module 506 is connected to the operating state obtaining module 505 for determining whether the running status message is a first operating state via the control chip module 410, and if not, the chip module to be updated 420 switches to the first operating state.

該韌體更新裝置500進一步可以包括以下可選組件:一等待接收模組502、一更新開始命令重發模組503以及一重發次數判斷模組504。 The firmware update apparatus 500 further includes the following optional components: a wait receiving module 502, an update start command retransmission module 503, and a retransmission count determining module 504.

其中,該等待接收模組502,與更新開始命令發送模組501相連,用以經由該控制晶片模組410從該待更新晶片模組420等待接收一運行狀態訊息。當該待更新晶片模組420接收到更新開始命令後,該待更新晶片模組420返回設置在該待更新晶片模組420中的晶片所屬的主機板的當前運行狀態,包括bootcode和runtime兩種運行狀態,bootcode運行狀態用於更新韌體操作,而runtime運行狀態用於主機板正常工作。該控制晶片模組410會判斷該運行狀態訊息是否為一預設的第一運行狀態(例如bootcode運行狀態)。若設置在待更新晶片模組420中的晶片所屬的主機板的當前運行 狀態為runtime運行狀態,則自動切換至bootcode運行狀態,從而為後續的韌體更新做好準備。 The waiting receiving module 502 is connected to the update start command sending module 501 for waiting to receive an operating status message from the to-be-updated chip module 420 via the control chip module 410. After the wafer module 420 to be updated receives the update start command, the wafer module 420 to be updated returns the current running state of the motherboard to which the wafer set in the wafer module 420 to be updated belongs, including bootcode and runtime. In the running state, the bootcode running state is used to update the firmware operation, and the runtime running state is used for the working of the motherboard. The control chip module 410 determines whether the running status message is a preset first operating state (eg, a bootcode operating state). If the current operation of the motherboard to which the wafer set in the wafer module 420 to be updated belongs When the status is runtime, it automatically switches to the bootcode running state to prepare for subsequent firmware updates.

該更新開始命令重發模組503,與該等待接收模組502相連,用以若等待接收的時間超過一預設的第一時間閾值時,則該控制晶片模組410重新發送一更新開始命令至該待更新晶片模組420,並且記錄重新發送更新開始命令的次數。 The update start command retransmission module 503 is connected to the standby receiving module 502, and the control chip module 410 resends an update start command if the waiting time exceeds a preset first time threshold. The wafer module 420 to be updated is updated, and the number of times the update start command is resent is recorded.

該重發次數判斷模組504,與該更新開始命令重發模組503相連,用以經由該控制晶片模組410判斷重新發送更新開始命令的次數是否大於一預設的重發次數最大值,若是,則停止更新韌體的操作。該韌體更新裝置500嘗試與該待更新晶片模組420建立物理連結,由於可能受環境因素(例如網路環境)的影響,不能保證該韌體更新裝置500首次就能夠與該待更新晶片模組420成功建立物理連結,因此允許該韌體更新裝置500多次地嘗試與該待更新晶片模組420建立物理連結。為了保證更新韌體工作的效率,設有一重發次數最大值,例如3次,若重新發送更新開始命令的次數超過3次後,停止建立物理連結,即停止更新韌體操作。 The retransmission count determination module 504 is connected to the update start command retransmission module 503, and is configured to determine, via the control chip module 410, whether the number of times of resending the update start command is greater than a preset maximum number of retransmission times. If yes, stop updating the firmware. The firmware update device 500 attempts to establish a physical connection with the to-be-updated wafer module 420. Since it may be affected by environmental factors (such as a network environment), the firmware update device 500 cannot be guaranteed to be associated with the wafer module to be updated for the first time. The group 420 successfully establishes a physical connection, thus allowing the firmware update device 500 to attempt to establish a physical connection with the wafer module 420 to be updated multiple times. In order to ensure the efficiency of updating the firmware, a maximum number of retransmissions is set, for example, three times. If the number of re-sends the update start command exceeds three times, the physical connection is stopped, that is, the firmware update operation is stopped.

該韌體更新裝置500還可以包括以下可選組件:一完成更新請求模組561和一完成更新響應模組562。其中,該完成更新請求模組561,用以經由該控制晶片模組410發送一完成更新韌體的命令至該待更新晶片模組420。 The firmware update apparatus 500 may further include the following optional components: a completion update request module 561 and a completion update response module 562. The completion update request module 561 is configured to send a command to complete the firmware update to the to-be-updated wafer module 420 via the control chip module 410.

該完成更新響應模組562,與該完成更新請求模組561相連,經由該控制晶片模組410從該待更新晶片模組420獲得一完成更新韌體的響應,該待更新晶片模組420已標記為一韌體更新成功狀態。亦即,當設置在 該待更新晶片模組420中的晶片接收到完成更新韌體的命令後,該晶片會更新韌體標識(例如flag=1,表示韌體更新成功,同時該標識也用於bootcode/runtime運行狀態的切換,因此該標識也可以被稱為切換模式標識),並且執行韌體更新應用程式,之後返回一完成更新韌體的響應至該控制晶片模組410。 The completion update response module 562 is connected to the completion update request module 561, and obtains a response to complete the firmware update from the wafer module 420 to be updated via the control chip module 410. The wafer module 420 to be updated has been Marked as a firmware update success status. That is, when set in After the wafer in the wafer module 420 to be updated receives the command to update the firmware, the chip updates the firmware identifier (for example, flag=1, indicating that the firmware update is successful, and the identifier is also used for the bootcode/runtime operation state. The switch, so the flag may also be referred to as a switch mode flag, and the firmware update application is executed, after which a response to complete the firmware update is returned to the control die module 410.

以上所述僅是本發明的較佳實施方式,應當指出,對於本技術領域的普通技術人員,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。 The above description is only a preferred embodiment of the present invention, and it should be noted that those skilled in the art can also make some improvements and retouching without departing from the principles of the present invention. It is considered as the scope of protection of the present invention.

S101、S103、S105、S110、S120、S130、S140、S151、S153、S155、S161、S163‧‧‧步驟 Steps S101, S103, S105, S110, S120, S130, S140, S151, S153, S155, S161, S163‧‧

Claims (16)

一種機架式伺服器系統的韌體更新方法,適用於經由一控制晶片模組更新一待更新晶片模組的韌體,其中該控制晶片模組為一機架式伺服器系統的一機架管理控制器,該機架式伺服器系統包括連接該機架管理控制器的至少一伺服器,該至少一伺服器包含該待更新晶片模組,該機架管理控制器可控制該至少一伺服器的開機與關機,該更新方法包括以下步驟:經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組;經由該控制晶片模組發送一驗證該複數個封包的命令至該待更新晶片模組;經由該控制晶片模組從該待更新晶片模組獲得該複數個封包對應的複數個驗證訊息;以及經由該控制晶片模組判斷該複數個封包對應的複數個驗證訊息是否全部正確,以確認該待更新晶片模組收到的該複數個封包是否出錯。 A firmware update method for a rack server system is adapted to update a firmware of a wafer module to be updated via a control chip module, wherein the control chip module is a rack of a rack server system a management controller, the rack server system includes at least one server connected to the rack management controller, the at least one server includes the wafer module to be updated, and the rack management controller can control the at least one servo The method includes the following steps: sending, by the control chip module, a plurality of packets that can form a new firmware to the chip module to be updated; and transmitting, by the control chip module, a verification of the plurality of And a plurality of verification messages corresponding to the plurality of packets are obtained from the to-be-updated chip module by the control chip module; and determining, by the control chip module, the plurality of packets Whether the plurality of verification messages are all correct to confirm whether the plurality of packets received by the wafer module to be updated are in error. 如申請專利範圍第1項之機架式伺服器系統的韌體更新方法,其中在經由該控制晶片模組判斷該複數個封包對應的複數個驗證訊息是否正確的步驟中,包括:若其中有驗證訊息不正確,進一步包括以下步驟:步驟a,經由該控制晶片模組將出錯的驗證訊息所對應的封包重新發送給該待更新晶片模組;步驟b,經由該控制晶片模組從該待更新晶片模組獲得重新發送給該待更新晶片模組的封包對應的驗證訊息;以及 步驟c,經由該控制晶片模組判斷重新發送給該待更新晶片模組的封包對應的驗證訊息是否正確;若正確,則該控制晶片模組重新發送給該待更新晶片模組的封包沒有出錯,若不正確,循環執行a、b、c步驟,直到該控制晶片模組從該待更新晶片模組獲得的驗證訊息中不存在錯誤的驗證訊息。 The firmware update method of the rack server system of claim 1, wherein the step of determining, by the control chip module, whether the plurality of verification messages corresponding to the plurality of packets are correct comprises: if any The verification message is incorrect, and further includes the following steps: Step a, resending the packet corresponding to the error verification message to the to-be-updated wafer module via the control chip module; and step b, from the control chip module Updating the chip module to obtain a verification message corresponding to the packet resent to the chip module to be updated; Step c, determining, by the control chip module, whether the verification message corresponding to the packet resent to the chip module to be updated is correct; if correct, the control chip module resending the packet to the chip module to be updated without error If not, the steps a, b, and c are performed cyclically until there is no erroneous verification message in the verification message obtained by the control chip module from the wafer module to be updated. 如申請專利範圍第1項之機架式伺服器系統的韌體更新方法,其中在經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組的步驟之前,進一步包括經由該控制晶片模組將更新韌體分解成該複數個封包。 The firmware update method of the rack server system of claim 1, wherein before the step of transmitting a plurality of packets forming a new firmware to the wafer module to be updated via the control chip module, Further comprising decomposing the updated firmware into the plurality of packets via the control chip module. 如申請專利範圍第1項之機架式伺服器系統的韌體更新方法,其中在經由該控制晶片模組判斷該複數個封包對應的複數個驗證訊息是否正確的步驟中,包括:若該複數個驗證訊息正確,則待更新晶片模組收到的各封包沒有出錯。 The firmware update method of the rack server system of claim 1, wherein the step of determining, by the control chip module, whether the plurality of verification messages corresponding to the plurality of packets are correct comprises: if the plural If the verification message is correct, there is no error in each packet received by the wafer module to be updated. 如申請專利範圍第1項之機架式伺服器系統的韌體更新方法,其中該待更新晶片模組是一具有韌體的晶片,該具有韌體的晶片設置於一伺服器的一主機板上。 The firmware update method of the rack server system of claim 1, wherein the wafer module to be updated is a firmware wafer, and the firmware wafer is disposed on a motherboard of a server. on. 如申請專利範圍第1項之機架式伺服器系統的韌體更新方法,其中在經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組的步驟之前進一步包括:經由該控制晶片模組發送一更新開始命令至該待更新晶片模組;經由該控制晶片模組從該待更新晶片模組獲得一運行狀態訊息;以及 經由該控制晶片模組判斷該運行狀態訊息是否為一第一運行狀態,若不是,則該待更新晶片模組切換為第一運行狀態。 The method for updating a firmware of a rack server system according to claim 1, wherein before the step of transmitting a plurality of packets forming a new firmware to the wafer module to be updated via the control chip module, The method includes: transmitting, by the control chip module, an update start command to the to-be-updated wafer module; and obtaining, by the control chip module, an operation status message from the to-be-updated wafer module; The control chip module determines whether the running status message is in a first operating state, and if not, the wafer module to be updated is switched to the first operating state. 如申請專利範圍第6項之機架式伺服器系統的韌體更新方法,其中在經由該控制晶片模組發送一更新開始命令至該待更新晶片模組的步驟之後進一步包括:經由該控制晶片模組從該待更新晶片模組等待接收一運行狀態訊息;以及若等待接收的時間超過一預設的第一時間閾值時,則該控制晶片模組重新發送一更新開始命令至該待更新晶片模組,並且記錄重新發送更新開始命令的次數。 The firmware update method of the rack server system of claim 6, wherein after the step of sending an update start command to the to-be-updated wafer module via the control chip module, the method further comprises: via the control chip The module waits to receive an operation status message from the to-be-updated chip module; and if the waiting time exceeds a predetermined first time threshold, the control chip module resends an update start command to the to-be-updated chip Module, and records the number of times the update start command was resent. 如申請專利範圍第7項之機架式伺服器系統的韌體更新方法,其中在該控制晶片模組重新發送一更新開始命令至該待更新晶片模組,並且記錄重新發送更新開始命令的次數的步驟之後,進一步包括:經由該控制晶片模組判斷重新發送更新開始命令的次數是否大於一預設的重發次數最大值;若是,則停止更新韌體的操作。 The firmware updating method of the rack server system of claim 7, wherein the control chip module resends an update start command to the to-be-updated wafer module, and records the number of times of resending the update start command. After the step, the method further includes: determining, by the control chip module, whether the number of times of resending the update start command is greater than a preset maximum number of retransmission times; if yes, stopping the operation of updating the firmware. 如申請專利範圍第2項之機架式伺服器系統的韌體更新方法,其中在該控制晶片模組從該待更新晶片模組獲得的驗證訊息中不存在錯誤的驗證訊息的步驟之後,進一步包括:經由該控制晶片模組發送一完成更新韌體的命令至該待更新晶片模組;以及經由該控制晶片模組從該待更新晶片模組獲得一完成更新韌體的 響應,該待更新晶片模組已標記為一韌體更新成功狀態。 The firmware update method of the rack server system of claim 2, wherein after the step of controlling the chip module from the verification message obtained by the wafer module to be updated does not have an error verification message, further The method includes: transmitting, by the control chip module, a command to complete firmware update to the to-be-updated wafer module; and obtaining, by the control chip module, a firmware for completing the firmware from the to-be-updated wafer module In response, the wafer module to be updated has been marked as a firmware update success state. 一種韌體更新裝置,適用於經由一控制晶片模組更新一待更新晶片模組的韌體,該控制晶片模組為一機架式伺服器系統的一機架管理控制器,該機架式伺服器系統包括連接該機架管理控制器的至少一伺服器,該至少一伺服器包含該待更新晶片模組,該機架管理控制器可控制該至少一伺服器的開機與關機,該韌體更新裝置包括:封包發送模組,用以經由該控制晶片模組發送可形成一更新韌體的複數個封包給該待更新晶片模組;驗證訊息請求模組,與該封包發送模組相連,用以經由該控制晶片模組發送一驗證該複數個封包的命令至該待更新晶片模組;驗證訊息獲取模組,與該驗證訊息請求模組相連,用以經由該控制晶片模組從該待更新晶片模組獲得該複數個封包對應的複數個驗證訊息;以及驗證訊息判斷模組,與該驗證訊息獲取模組相連,用以經由該控制晶片模組判斷該複數個封包對應的複數個驗證訊息是否全部正確,以確認該待更新晶片模組收到的該複數個封包是否出錯。 A firmware update device is configured to update a firmware of a wafer module to be updated via a control chip module, wherein the control chip module is a rack management controller of a rack server system, and the rack controller The server system includes at least one server connected to the rack management controller, the at least one server includes the wafer module to be updated, and the rack management controller can control startup and shutdown of the at least one server, the toughness The body update device includes: a packet sending module, configured to send, by the control chip module, a plurality of packets that can form an updated firmware to the chip module to be updated; and the verification message requesting module is connected to the packet sending module And sending, by the control chip module, a command for verifying the plurality of packets to the to-be-updated chip module; and the verification message acquisition module is connected to the verification message requesting module for using the control chip module to The chip module to be updated obtains a plurality of verification messages corresponding to the plurality of packets; and the verification message determining module is connected to the verification message acquisition module for System chip module determines whether the plurality of packets of a plurality of verification message corresponding to all correct, to confirm that the chip module to be updated, the plurality of received packets for errors. 如申請專利範圍第10項之韌體更新裝置,進一步包括:封包重發模組,與該驗證訊息判斷模組相連,用於在該複數個驗證訊息中有驗證訊息不正確,經由該控制晶片模組將出錯的驗證訊息所對應的封包重新發送給該待更新晶片模組;驗證訊息重獲模組,與該封包重發模組相連,用於經由該控制晶片模組從該待更新晶片模組獲得重新發送給該待更新晶片模組的封包對 應的驗證訊息;以及驗證訊息重判模組,與該驗證訊息重獲模組相連,用於經由該控制晶片模組判斷重新發送給該待更新晶片模組的封包對應的驗證訊息是否正確,當驗證訊息不正確時,調用該封包重發模組。 The firmware update device of claim 10, further comprising: a packet retransmission module, connected to the verification message judging module, configured to verify that the verification message is incorrect in the plurality of verification messages, via the control chip The module resends the packet corresponding to the error verification message to the to-be-updated chip module; the verification message retrieving module is connected to the packet retransmission module for receiving the chip to be updated via the control chip module The module obtains a packet pair that is resent to the wafer module to be updated And the verification message re-judging module is connected to the verification message re-sending module, and is configured to determine, by the control chip module, whether the verification message corresponding to the packet re-sent to the to-be-updated chip module is correct, When the verification message is incorrect, the packet retransmission module is called. 如申請專利範圍第10項之韌體更新裝置,其中該待更新晶片模組是一具有韌體的晶片,該具有韌體的晶片設置於一伺服器的一主機板上。 The firmware update device of claim 10, wherein the wafer module to be updated is a firmware wafer, and the firmware wafer is disposed on a motherboard of a server. 如申請專利範圍第10項之韌體更新裝置,進一步包括:更新開始命令發送模組,用以經由該控制晶片模組發送一更新開始命令至該待更新晶片模組;運行狀態獲取模組,與該更新開始命令發送模組相連,用以經由該控制晶片模組從該待更新晶片模組獲得一運行狀態訊息;以及運行狀態判斷模組,與該運行狀態獲取模組相連,用以經由該控制晶片模組判斷該運行狀態訊息是否為一第一運行狀態,若不是,則該待更新晶片模組切換為第一運行狀態。 The firmware update device of claim 10, further comprising: an update start command sending module, configured to send an update start command to the to-be-updated wafer module via the control chip module; and an operation state acquisition module, And the update start command sending module is configured to obtain an operation status message from the to-be-updated wafer module via the control chip module; and the operation state determination module is connected to the operation state acquisition module for The control chip module determines whether the running status message is in a first operating state, and if not, the wafer module to be updated is switched to the first operating state. 如申請專利範圍第13項之韌體更新裝置,進一步包括:等待接收模組,用以經由該控制晶片模組從該待更新晶片模組等待接收一運行狀態訊息;以及更新開始命令重發模組,與該等待接收模組相連,用以若等待接收的時間超過一預設的第一時間閾值時,則該控制晶片模組重新發送一更新開始命令至該待更新晶片模組,並且記錄重新發送更新開始命令的次數。 The firmware update device of claim 13 further includes: a waiting receiving module for waiting to receive an operation status message from the to-be-updated wafer module via the control chip module; and updating the start command retransmission mode The control chip module re-sends an update start command to the to-be-updated chip module, and records the time when the waiting for receiving time exceeds a preset first time threshold. The number of times the update start command was resent. 如申請專利範圍第14項之韌體更新裝置,進一步包括: 重發次數判斷模組,用以經由該控制晶片模組判斷重新發送更新開始命令的次數是否大於一預設的重發次數最大值,若是,則停止更新韌體的操作。 For example, the firmware update device of claim 14 further includes: The retransmission count determining module is configured to determine, by the control chip module, whether the number of times of resending the update start command is greater than a preset maximum number of retransmission times, and if so, to stop the operation of updating the firmware. 如申請專利範圍第11項之韌體更新裝置,進一步包括:完成更新請求模組,用以經由該控制晶片模組發送一完成更新韌體的命令至該待更新晶片模組;以及完成更新響應模組,與該完成更新請求模組相連,用以經由該控制晶片模組從該待更新晶片模組獲得一完成更新韌體的響應,該待更新晶片模組已標記為一韌體更新成功狀態。 The firmware update device of claim 11, further comprising: completing an update request module, configured to send a command to update the firmware to the to-be-updated wafer module via the control chip module; and complete the update response The module is connected to the completion update request module for obtaining a response to complete the firmware update from the wafer module to be updated via the control chip module, and the wafer module to be updated has been marked as a firmware update success. status.
TW103127324A 2014-08-08 2014-08-08 Device and method for updating firmware of rack mountable server system TW201606649A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW103127324A TW201606649A (en) 2014-08-08 2014-08-08 Device and method for updating firmware of rack mountable server system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103127324A TW201606649A (en) 2014-08-08 2014-08-08 Device and method for updating firmware of rack mountable server system

Publications (1)

Publication Number Publication Date
TW201606649A true TW201606649A (en) 2016-02-16

Family

ID=55810076

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103127324A TW201606649A (en) 2014-08-08 2014-08-08 Device and method for updating firmware of rack mountable server system

Country Status (1)

Country Link
TW (1) TW201606649A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI548234B (en) * 2015-08-26 2016-09-01 神雲科技股份有限公司 Method for updating firmware of server racks
TWI602056B (en) * 2016-09-30 2017-10-11 強弦科技股份有限公司 Firmware code checking system and method thereof
TWI684914B (en) * 2018-12-25 2020-02-11 技嘉科技股份有限公司 Electronic device for updating on-board data of power off status and electronic device package assembly

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI548234B (en) * 2015-08-26 2016-09-01 神雲科技股份有限公司 Method for updating firmware of server racks
TWI602056B (en) * 2016-09-30 2017-10-11 強弦科技股份有限公司 Firmware code checking system and method thereof
TWI684914B (en) * 2018-12-25 2020-02-11 技嘉科技股份有限公司 Electronic device for updating on-board data of power off status and electronic device package assembly

Similar Documents

Publication Publication Date Title
US9430221B2 (en) Device and method for updating firmware of a rackmount server system
US10474451B2 (en) Containerized upgrade in operating system level virtualization
CN110535692B (en) Fault processing method and device, computer equipment, storage medium and storage system
US20050160257A1 (en) System and method for updating device firmware
US20100228960A1 (en) Virtual memory over baseboard management controller
CN101605189B (en) System and method for upgrading intelligent platform management controller (IPMC) on line
US10819611B2 (en) Dynamic timeout-based fault detection
WO2020232859A1 (en) Distributed storage system, data writing method, device, and storage medium
CN103823708B (en) The method and apparatus that virtual machine read-write requests are processed
US10102088B2 (en) Cluster system, server device, cluster system management method, and computer-readable recording medium
WO2010006529A1 (en) Operation mode switching of data card and its control method, device and data card
US7499987B2 (en) Deterministically electing an active node
TW201606649A (en) Device and method for updating firmware of rack mountable server system
WO2020185435A1 (en) Firmware update system
KR101063720B1 (en) Automated Firmware Recovery for Peer Programmable Hardware Devices
CN117687664A (en) Online upgrade configuration method and device for DSP
JP2020021313A (en) Data processing device and diagnostic method
WO2010135966A1 (en) Upgrade method and device for components in paired redundancy structure
CN111090537A (en) Cluster starting method and device, electronic equipment and readable storage medium
CN116069373A (en) BMC firmware upgrading method, device and medium thereof
CN112612653A (en) Service recovery method, device, arbitration server and storage system
CN114518972B (en) Memory error processing method and device, memory controller and processor
KR102575524B1 (en) Distributed information processing device for virtualization based combat system and method for allocating resource thereof
CN116996505B (en) File exchange control method and system based on scheduling engine
CN107451035B (en) Error state data providing method for computer device