TWI776579B - Processing method and device of firmware updating - Google Patents
Processing method and device of firmware updating Download PDFInfo
- Publication number
- TWI776579B TWI776579B TW110124860A TW110124860A TWI776579B TW I776579 B TWI776579 B TW I776579B TW 110124860 A TW110124860 A TW 110124860A TW 110124860 A TW110124860 A TW 110124860A TW I776579 B TWI776579 B TW I776579B
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- source information
- backplane
- tree source
- device tree
- Prior art date
Links
Images
Landscapes
- Stored Programmes (AREA)
- Small-Scale Networks (AREA)
Abstract
Description
關於一種韌體更新方法與裝置,特別有關一種伺服器與其週邊設備的韌體更新的處理方法與裝置。A method and device for updating firmware, in particular, a method and device for updating firmware of a server and its peripheral devices.
隨著各式的運算需求的增加,也帶動伺服器的快速發展。在佈建伺服器時除了要求處理器的運算能力外,也要考量伺服器的擴充能力。一般而言,伺服器可以透過背板(backplane)擴充各式的週邊設備。例如:伺服器透過背板連接外接的儲存裝置、風扇或感應器等。With the increase of various computing demands, it also drives the rapid development of servers. When deploying a server, in addition to the computing power of the processor, the expansion capability of the server should also be considered. Generally speaking, a server can expand various peripheral devices through a backplane. For example, the server is connected to external storage devices, fans or sensors through the backplane.
由於伺服器與各種週邊設備的組合搭配樣式繁多。舉例來說,相同型號的伺服器可能為因應不同數量的刀鋒主機板,所以會配置不同數量的背板、風扇與感應器。如果對每一種主機板與週邊設備提出相應的裝置樹源資訊(Device Tree Source)的開發,這將會大幅提高後端人員的開發與維護的成本。Due to the combination of the server and various peripheral devices, there are many styles. For example, servers of the same model may have different numbers of backplanes, fans, and sensors for different numbers of blade motherboards. If the development of the corresponding device tree source information (Device Tree Source) is proposed for each motherboard and peripheral devices, this will greatly increase the development and maintenance costs of back-end personnel.
有鑑於此,韌體更新的處理方法包括獲取主機板的設備清單,設備清單記錄至少一週邊設備;根據主機板產生核心裝置樹源資訊;根據設備清單產生每一週邊設備的設備裝置樹源資訊與至少一背板裝置樹源資訊;將核心裝置樹源資訊、設備裝置樹源資訊與所述背板裝置樹源資訊封裝為目標文件。所述的韌體更新的處理方法可以對同一系列的伺服器提供相同的目標文件,並且根據增設的週邊設備部署相應的硬體描述資訊。除了方便客戶端獲取欲更新的目標文件外,後端開發人員可以降低重複維護的成本。In view of this, the processing method of firmware update includes obtaining a device list of the motherboard, and the device list records at least one peripheral device; generating core device tree source information according to the motherboard; generating device device tree source information of each peripheral device according to the device list and at least one backplane device tree source information; the core device tree source information, the equipment device tree source information and the backplane device tree source information are encapsulated into object files. The processing method of the firmware update can provide the same target file to the same series of servers, and deploy the corresponding hardware description information according to the added peripheral devices. In addition to facilitating the client to obtain the target file to be updated, the back-end developer can reduce the cost of repeated maintenance.
在一些實施例中,在將核心裝置樹源資訊、設備裝置樹源資訊與所述背板裝置樹源資訊封裝為目標文件之步驟包括將所述設備裝置樹源資訊編譯為設備中間文件;根據主機板的背板數量資訊產生相應數量的所述背板裝置樹源資訊;將所述背板裝置樹源資訊編譯為背板中間文件;將核心裝置樹源資訊編譯為核心文件;將設備中間文件、背板中間文件與核心文件封裝為目標文件。In some embodiments, the step of encapsulating the core device tree source information, the equipment device tree source information and the backplane device tree source information into object files includes compiling the equipment device tree source information into a device intermediate file; according to The backplane quantity information of the motherboard generates a corresponding amount of the backplane device tree source information; compiling the backplane device tree source information into a backplane intermediate file; compiling the core device tree source information into a core file; Files, backplane intermediate files and core files are encapsulated as object files.
在一些實施例中,在封裝目標文件之步驟後包括由第一計算機發送目標文件至第二計算機;判斷第二計算機的當前描述文件與目標文件的校驗和值;若當前描述文件的校驗和值相異於目標文件的校驗和值,根據目標文件更新當前描述文件。In some embodiments, after the step of encapsulating the target file, the first computer includes sending the target file to the second computer; judging the checksum value of the current description file and the target file of the second computer; The sum value is different from the checksum value of the target file, and the current description file is updated according to the target file.
在一些實施例中,韌體更新的處理方法包括獲取主機板的第一設備清單與第二設備清單,第一設備清單具有至少一第一週邊設備,第二設備清單具有至少一第二週邊設備;根據主機板產生核心裝置樹源資訊;根據第一設備清單產生每一第一週邊設備的第一設備裝置樹源資訊與至少一第一背板裝置樹源資訊;根據第二設備清單產生每一第二週邊設備的第二設備裝置樹源資訊與至少一第二背板裝置樹源資訊;將核心裝置樹源資訊、第一設備裝置樹源資訊、第一背板裝置樹源資訊、第二設備裝置樹源資訊與第二背板裝置樹源資訊封裝為目標文件。In some embodiments, the firmware update processing method includes acquiring a first device list and a second device list of the motherboard, the first device list having at least one first peripheral device, and the second device list having at least one second peripheral device ; Generate core device tree source information according to the motherboard; generate first equipment device tree source information and at least one first backplane device tree source information of each first peripheral device according to the first equipment list; A second equipment device tree source information and at least one second backplane device tree source information of a second peripheral device; the core device tree source information, the first equipment device tree source information, the first backplane device tree source information, the first The source information of the second equipment device tree and the source information of the second backplane device tree are encapsulated into object files.
在一些實施例中,在封裝為目標文件之步驟包括將所述第一設備裝置樹源資訊與所述第二設備裝置樹源資訊分別編譯為第一設備中間文件與第二設備中間文件;根據主機板的第一背板數量資訊與第二背板數量資訊分別產生相應數量的所述第一背板裝置樹源資訊與所述第二背板裝置樹源資訊;將所述第一背板裝置樹源資訊與所述第二背板裝置樹源資訊分別編譯為第一背板中間文件與第二背板中間文件;將核心裝置樹源資訊編譯為核心文件;將第一設備中間文件與第一背板中間文件封裝為第一文件群;將第二設備中間文件與第二背板中間文件封裝為第二文件群;將該核心文件、第一文件群與第二文件群封裝為目標文件。In some embodiments, the step of encapsulating into an object file includes compiling the first equipment device tree source information and the second equipment device tree source information into a first equipment intermediate file and a second equipment intermediate file, respectively; according to The first backplane quantity information and the second backplane quantity information of the motherboard respectively generate corresponding quantities of the first backplane device tree source information and the second backplane device tree source information; The device tree source information and the second backplane device tree source information are compiled into a first backplane intermediate file and a second backplane intermediate file respectively; the core device tree source information is compiled into a core file; the first device intermediate file and The first backplane intermediate file is encapsulated into a first file group; the second device intermediate file and the second backplane intermediate file are encapsulated into a second file group; the core file, the first file group and the second file group are encapsulated as targets document.
在一些實施例中,將第一文件群與第二文件群封裝為目標文件之步驟後包括由第一計算機發送目標文件至第二計算機;判斷第二計算機的當前描述文件與目標文件的校驗和值;若當前描述文件的校驗和值相異於目標文件的校驗和值,根據第二計算機的主機板與版本資訊從目標文件中選擇第一文件群或第二文件群。In some embodiments, the step of encapsulating the first file group and the second file group into target files includes sending the target file from the first computer to the second computer; judging the verification between the current description file of the second computer and the target file Sum value; if the checksum value of the current description file is different from the checksum value of the target file, select the first file group or the second file group from the target file according to the motherboard and version information of the second computer.
在一些實施例中,韌體更新的處理裝置包括第一傳輸單元、第一儲存單元與第一處理器;第一傳輸單元獲取主機板的設備清單,設備清單記錄至少一週邊設備;第一儲存單元儲存處理程式、設備清單與目標文件;第一處理器耦接於第一傳輸單元與第一儲存單元,第一處理器執行處理程式,第一處理器根據主機板產生核心裝置樹源資訊,第一處理器根據設備清單產生至少一設備裝置樹源資訊與至少一背板裝置樹源資訊,第一處理器將核心裝置樹源資訊、所述設備裝置樹源資訊與所述背板裝置樹源資訊封裝為目標文件。In some embodiments, the firmware update processing device includes a first transmission unit, a first storage unit, and a first processor; the first transmission unit acquires a device list of the motherboard, and the device list records at least one peripheral device; the first storage unit The unit stores the processing program, the device list and the target file; the first processor is coupled to the first transmission unit and the first storage unit, the first processor executes the processing program, and the first processor generates the core device tree source information according to the motherboard, The first processor generates at least one equipment device tree source information and at least one backplane device tree source information according to the equipment list, and the first processor generates the core device tree source information, the equipment device tree source information and the backplane device tree Source information is packaged into object files.
在一些實施例中,第二計算機具有第二傳輸單元、第二儲存單元與第二處理器,第二處理器耦接於第二傳輸單元與第二儲存單元,第二傳輸單元連接於第一計算機,第二儲存單元儲存更新程式、導引程式與當前描述文件,第二處理器執行更新程式與導引程式,更新程式透過第二傳輸單元通過第一傳輸單元向第一儲存單元獲取目標文件,導引程式根據目標文件更新第二計算機,導引程式根據目標文件更新第二計算機。In some embodiments, the second computer has a second transmission unit, a second storage unit and a second processor, the second processor is coupled to the second transmission unit and the second storage unit, and the second transmission unit is connected to the first transmission unit The computer, the second storage unit stores the update program, the guide program and the current description file, the second processor executes the update program and the guide program, and the update program obtains the target file from the first storage unit through the second transmission unit through the first transmission unit , the bootstrap program updates the second computer according to the target file, and the bootstrap program updates the second computer according to the target file.
在一些實施例中,導引程式判斷當前描述文件與目標文件的校驗和值是否相同,若當前描述文件的校驗和值相異於目標文件的校驗和值,導引程式根據目標文件更新當前描述文件。In some embodiments, the bootstrap program determines whether the checksum value of the current description file and the target file are the same. If the checksum value of the current description file is different from the checksum value of the target file Update the current description file.
所述的韌體更新的處理方法與系統提供彈性化的設備韌體的封裝與更新,使得同一目標文件可以支援多組不同的伺服器與相應週邊設備。開發人員可以將核心文件任意搭配設備韌體與背板韌體,藉以符合伺服器的不同版本資訊。The firmware update processing method and system provide flexible packaging and update of device firmware, so that the same target file can support multiple sets of different servers and corresponding peripheral devices. Developers can arbitrarily match the core files with the device firmware and backplane firmware to match the information of different versions of the server.
請參考圖1所示,其係為一實施例的硬體架構示意圖。韌體更新的處理系統001包括處理裝置(對應於圖1的第一計算機100)與外部伺服器200。為能方便說明,以下將處理裝置稱為第一計算機100。第一計算機100包括第一傳輸單元110、第一儲存單元120與第一處理器130。第一處理器130耦接於該第一傳輸單元110與第一儲存單元120。第一傳輸單元110獲取主機板的設備清單210。第一傳輸單元110可以透過乙太網路連接至外部伺服器200或存取通訊匯流排的儲存設備以獲取一設備清單210。所述的通訊匯流排可以是通用序列匯流排(Universal Serial Bus,USB)、序列先進技術通訊協議(Serial Advanced Technology Attachment,SATA)、外部連結標準匯流排(Peripheral Component Interconnect,PCI)或快捷外設組件互連標準(Peripheral Component Interconnect Express,PCIE)。Please refer to FIG. 1 , which is a schematic diagram of a hardware structure of an embodiment. The firmware
設備清單210中記錄主機板的版本資訊214與主機板所連接的週邊設備。版本資訊214可以是但不限定為主機板的型號、當前描述文件的版本、產品專案或第一計算機100的產品型號等。所述週邊設備可以是但不限定為背板(backplane)、風扇、感測器、連接埠、訊號燈或控制晶片等。此外,設備清單210所載的背板數量係以同一系列產品的伺服器所連接的最大值與所連接的種類為主。舉例來說,採用相同主機板的伺服器存在兩系列產品,其係分別為伺服器A與伺服器B。伺服器A可連接10組背板,而伺服器B可連接5組背板。設備清單210中將會記錄該主機板的可連接背板數量為10組。The
在一些實施例中,第一計算機100可以選擇性連接至外部伺服器200。外部伺服器200根據各開發專案的物料表(bill of materials,BOM)產生相應的設備清單210。第一計算機100透過第一傳輸單元110獲取開發專案的設備清單210。設備清單210記錄開發專案的伺服器型號、背板種類與數量、週邊設備的種類與數量。不同的開發專案可能採用相同的伺服器,但伺服器所屬的背板與週邊設備會有所差異。In some embodiments, the
第一儲存單元120儲存處理程式121、設備清單210、目標文件123與作業系統(無標號)。第一處理器130執行作業系統與處理程式121。以下為方便說明將以處理程式121為主,但在實際運算中仍是以第一處理器130作為實體處理的核心。作業系統的種類係為Linux作業系統、UNIX作業系統或其他BSD的作業系統。處理程式121用於產生裝置樹源資訊(Device Tree Source,DTS)與目標文件123。處理程式121根據設備清單210的週邊設備產生相應的裝置樹源資訊,並將裝置樹源資訊編譯裝置樹塊(Device Tree Blob,DTB)或裝置樹疊加塊(Device Tree Blob Overlay,DTBO)的輸出結果。The first storage unit 120 stores the
在此實施例中,處理程式121可以根據設備清單210所載的主機板與週邊設備產生對應的裝置樹源資訊。處理程式121根據主機板與版本資訊214產生核心裝置樹源資訊211。處理程式121根據週邊設備產生設備裝置樹源資訊212。處理程式121根據背板的種類與數量產生背板裝置樹源資訊213。處理程式121可以根據週邊設備的種類分別產生多種的設備裝置樹源資訊212,並根據相同種類的週邊設備產生相應數量的設備裝置樹源資訊212。In this embodiment, the
為進一步說明伺服器與所屬週邊設備的硬體描述文件的更新的處理方法,請配合圖2所示。伺服器與所屬週邊設備的硬體描述文件的更新方法包括以下步驟: 步驟S310:第一計算機獲取主機板的設備清單,設備清單記錄至少一週邊設備; 步驟S320:根據主機板產生核心裝置樹源資訊; 步驟S330:根據設備清單產生每一週邊設備的設備裝置樹源資訊與至少一背板裝置樹源資訊;以及 步驟S340:將核心裝置樹源資訊、設備裝置樹源資訊與所述背板裝置樹源資訊封裝為目標文件。 To further illustrate the processing method for updating the hardware description files of the server and the peripheral devices to which it belongs, please refer to FIG. 2 . The method for updating the hardware description files of the server and its peripheral devices includes the following steps: Step S310: the first computer obtains a device list of the motherboard, and the device list records at least one peripheral device; Step S320: Generate core device tree source information according to the motherboard; Step S330 : generating equipment device tree source information and at least one backplane device tree source information of each peripheral device according to the equipment list; and Step S340: Encapsulate the core device tree source information, the equipment device tree source information and the backplane device tree source information into target files.
首先,第一計算機100透過第一傳輸單元110獲取主機板的設備清單210。第一計算機100執行處理程式121,處理程式121根據設備清單210所記錄的主機板產生核心裝置樹源資訊211。處理程式121根據設備清單210所記錄週邊設備產生設備裝置樹源資訊212與背板裝置樹源資訊213。First, the
接著,處理程式121將設備裝置樹源資訊212編譯為設備中間文件412。處理程式121可以使用裝置樹編譯器(Device Tree Compiler,DTC)對設備裝置樹源資訊212進行編譯。處理程式121根據設備裝置樹源資訊212的種類與數量逐一產生設備中間文件412。換言之,每一個設備中間文件412係對應一個設備裝置樹源資訊212。Next, the
處理程式121從設備清單210中獲取背板的數量或種類的資訊。處理程式121根據背板數量資訊產生相應數量的背板裝置樹源資訊213。處理程式121根據背板的種類與數量對背板裝置樹源資訊213進行編譯,並產生相應種類與數量的背板中間文件413。The
在一實施例中,處理程式121可以對背板裝置樹源資訊213使用裝置樹疊加(Device Tree Overlay)或裝置樹塊疊加(Device Tree Blob Overlay)的呼叫處理。處理程式121可以透過前述的疊加處理,藉以在現有的裝置樹源資訊的基礎上,增加新週邊設備的裝置樹源資訊。疊加處理可用於協調各背板的硬體資源共享,例如:背板對於接腳的優先權、記憶體區段、中斷處理或暫存器。In one embodiment, the
接著,處理程式121對主機板的核心裝置樹源資訊211編譯為核心中間文件411。請參考圖3所示,其係為一實施例的裝置樹源資訊與對應的中間文件的示意圖。處理程式121完成前述的核心中間文件411、設備中間文件412與背板中間文件413後,處理程式121將主機板的版本資訊214、核心中間文件411、設備中間文件412與背板中間文件413進行封裝,而封裝結果係為目標文件123。Next, the
處理程式121根據核心中間文件411、設備中間文件412與背板中間文件413進行封裝,例如圖4所示。處理程式121將目標文件123儲存於第一儲存單元120。此外,在目標文件123於封裝的過程中,處理程式121也可以計算目標文件123的校驗和值(checksum)。處理程式121封裝目標文件123時,處理程式121也會將校驗和值一併加入。The
在一實施例中,韌體更新的處理系統001更包括第二計算機500。第二計算機500包括主機板540、第二傳輸單元510、第二儲存單元520與第二處理器530,請配合圖5所示。第二計算機500可以是但不限定為伺服器、個人電腦或筆記型電腦的X86架構計算機,也可以是進階精簡指令集機器(Advanced RISC Machine,ARM)的計算設備。第二處理器530耦接於第二傳輸單元510與第二儲存單元520。第二傳輸單元510連接於第一計算機100,第二傳輸單元510用於傳輸目標文件123。第二儲存單元520儲存更新程式521、導引程式522與當前描述文件523。當前描述文件523係為第二計算機500運行中所使用的硬體描述檔案。In one embodiment, the firmware
第二處理器530執行更新程式521與導引程式522。第二處理器530可以是基板控制管理器(Board Management Controller,BMC)或中央處理器(Central Processing Unit,CPU),其係根據第二計算機500的硬體架構所決定。更新程式521根據第二計算機500的主機板540的版本資訊214向第一計算機100獲取相應的目標文件123。亦或者,使用者透過更新程式521向第一計算機100獲取特定版號的目標文件123。導引程式522根據目標文件123更新第二計算機500的當前描述文件523。導引程式522可以是Linux作業系統的Uboot或是UNIX作業系統的啟動程式(bootloader)所實現。主機板540可以根據版本資訊214擴充週邊設備550或背板560。The
導引程式522更新目標文件123時,導引程式522將進行以下的處理步驟,並請配合圖6所示。導引程式522的更新目標文件123包括:
步驟S610:導引程式判斷當前描述文件與目標文件的校驗和值是否相同;
步驟S620:若當前描述文件的校驗和值相異於目標文件的校驗和值,導引程式根據目標文件更新當前描述文件;以及
步驟S630:若當前描述文件的校驗和值等同於目標文件的校驗和值,導引程式發送提示訊息。
When the
導引程式522於更新目標文件123時,導引程式522會判斷目標文件123的校驗和值與當前描述文件523的校驗和值是否相同。校驗和值可以根據目標文件123與雜湊函數所得到的數值結果。一般而言,兩相同內容檔案才會得到相同的校驗和值。因此,導引程式522於更新前會判斷當前描述文件523的校驗和值與目標文件123的校驗和值兩者是否相同。若當前描述文件523的校驗和值相異於目標文件123的校驗和值時,導引程式522才會進入硬體資源文件的更新處理。反之,導引程式522將目標文件123與當前描述文件523視為相同版本的硬體資源文件,並且發出提示訊息藉以提示使用者。例如:於作業系統的顯示畫面中跳現對話框(意即提示訊息)。When the
首先,導引程式522載入核心中間文件411至記憶體區段。接著,導引程式522根據版本資訊214確認設備中間文件412的種類與數量。導引程式522將各設備中間文件412載入記憶體區段中。導引程式522可以根據設備中間文件412的編號或裝置樹疊加等方式逐一導入週邊設備的裝置樹源資訊。最後,導引程式522將各背板中間文件413載入至記憶體區段。同理,導引程式522也可以透過裝置樹疊加的方式添加背板560與所屬的裝置(例如:感應器或風扇)。First, the
對於同一系列產品的伺服器而言,伺服器的主機板540可搭配不同的週邊設備或背板560。對於此實施例可以配合圖1或圖5的系統架構示意圖,並且同時配合圖7所示。圖7為此實施例的伺服器的目標文件的封裝處理流程示意圖,其係包括以下步驟:
步驟S710:獲取第一設備清單與第二設備清單,第一設備清單具有至少一第一週邊設備,第二設備清單具有至少一第二週邊設備;
步驟S720:根據主機板產生核心裝置樹源資訊;
步驟S730:根據第一設備清單產生每一第一週邊設備的第一設備裝置樹源資訊與至少一第一背板裝置樹源資訊;
步驟S740:根據第二設備清單產生每一第二週邊設備的第二設備裝置樹源資訊與至少一第二背板裝置樹源資訊;以及
步驟S750:將核心裝置樹源資訊、第一設備裝置樹源資訊、第一背板裝置樹源資訊、第二設備裝置樹源資訊與第二背板裝置樹源資訊封裝為目標文件。
For servers of the same series, the
第一計算機100獲取主機板540的第一設備清單210與第二設備清單210。第一設備清單210與第二設備清單210係為同一主機板540且不同系列之產品。第一設備清單210記錄第一週邊設備。第二設備清單210記錄第二週邊設備。第一週邊設備的數量或種類可以不完全等同於第二週邊設備的數量或種類。第一處理器130執行處理程式121。The
處理程式121根據第一設備清單210產生核心裝置樹源資訊211、第一設備裝置樹源資訊212與第一背板裝置樹源資訊213。處理程式121根據核心裝置樹源資訊211、第二設備清單210產生第二設備裝置樹源資訊212與第一背板裝置樹源資訊213。處理程式121根據所產生的前述裝置樹源資訊進行目標文件123的相關處理,請配合圖8所示:
步驟S810:將第一設備裝置樹源資訊與第二設備裝置樹源資訊分別編譯為第一設備中間文件與第二設備中間文件;
步驟S820:根據第一設備清單的第一背板數量資訊與第二設備清單的第二背板數量資訊分別產生相應數量的第一背板裝置樹源資訊與第二背板裝置樹源資訊;
步驟S830:將第一背板裝置樹源資訊與第二背板裝置樹源資訊分別編譯為第一背板中間文件與第二背板中間文件;
步驟S840:將核心裝置樹源資訊編譯為核心文件;
步驟S850:將第一設備中間文件與第一背板中間文件封裝為第一文件群;
步驟S860:將第二設備中間文件與第二背板中間文件封裝為第二文件群;以及
步驟S870:將核心文件、第一文件群與第二文件群封裝為目標文件。
The
處理程式121將第一設備裝置樹源資訊(無標號)與第二設備裝置樹源資訊(無標號)分別編譯為第一設備中間文件911與第二設備中間文件921。其中,第一設備中間文件911的數量相應於第一設備樹源資訊的數量;第二設備中間文件921的數量也相應於第二設備樹源資訊的數量。The
處理程式121根據第一設備清單210的背板數量(以下稱為第一背板數量)產生第一背板裝置樹源資訊(無標號)。處理程式121根據第二設備清單210的背板數量(以下稱為第二背板數量)產生第二背板裝置樹源資訊213。接著,處理程式121將第一背板裝置樹源資訊213與第二背板裝置樹源資訊213分別編譯為第一背板中間文件912與第二背板中間文件922。其中,第一背板中間文件912的數量等於第一背板數量,第二背板中間文件922的數量等於第二背板數量。The
處理程式121將核心裝置樹源資訊211編譯為核心中間文件411。由於第一設備清單210與第二設備清單210均採用相同的主機板540,因此處理程式121編譯前可以根據版本資訊214判斷兩設備清單210。處理程式121可以以最新版本資訊214作為選擇核心裝置樹源資訊211的依據。The
處理程式121將第一設備中間文件412與第一背板中間文件413封裝為第一文件群910。處理程式121也將第二設備中間文件412與第二背板中間文件413封裝為第二文件群920。最後,處理程式121將核心中間文件411、第一文件群910與第二文件群920封裝為目標文件123,如圖9所示。圖9中係以虛線框所圈選的多筆文件為同一群組的文件群。若第一計算機100接獲第三設備清單210時,第一計算機100根據前述動作產生第三文件群(無標號)。處理程式121將第一文件群910、第二文件群920與第三文件群封裝於目標文件123中。The
第一計算機100將目標文件123發送至第二計算機500。第二計算機500判斷自身的當前描述文件523與所接收的目標文件123的校驗和值是否相同。若當前描述文件523的校驗和值相異於目標文件123的校驗和值,第二計算機500與導引程式522才會進行更新目標文件123的處理。在此實施例中,導引程式522根據主機板540的版本資訊214從目標文件123中選擇第一文件群910或第二文件群920。或者,使用者由目標文件123中選擇其中之一,並由導引程式522進行韌體的更新處理。The
為清楚說明此實施例,係以兩設備清單210與所生成的目標文件作為示例,但並非僅侷限於此硬體資源的分配。舉例來說,設備清單I與設備清單II分別記錄兩組伺服器,且兩伺服器係採用相同的主機板,其係分別為伺服器A與伺服器B。伺服器A與伺服器B分別搭載的不同數量的週邊設備550與背板560。請參考表1與圖10,其係為此實施例的設備清單與各項裝置樹源資訊之示意圖。表1中的設備清單記載各週邊設備550與背板560之種類與數量。其中,週邊設備550係為積體匯流排電路(Inter-Integrated Circuit,簡稱I2C),I2C的後綴詞表示設備編號。表1中背板560係為「BP」以示意,BP的後綴詞係為背板編號,每一個背板560可連接不同的設備,所連接設備如表1所示。
處理程式121根據設備清單I與設備清單II分別產生主機板a的核心裝置樹源資訊211、設備裝置樹源資訊212與背板裝置樹源資訊213。由於兩設備清單I、II使用相同的主機板a,因此處理程式121將產生一組核心裝置樹源資訊211。處理程式121根據設備清單I所載的週邊設備550與背板560,處理程式121產生具有I2C_4與I2C_5的設備裝置樹源資訊212,處理程式121產生具有BP_1與BP_2的背板裝置樹源資訊213。同理,處理程式121根據設備清單II產生相應的設備裝置樹源資訊212與背板裝置樹源資訊213。The
接著,處理程式121根據設備清單I與設備清單II編譯相應的中間文件,如圖3所示。處理程式121根據設備清單I將各中間文件封裝為對應的第一文件群910,處理程式121根據設備清單II將各中間文件封裝為對應的第二文件群920,如圖9所示。Next, the
所述的韌體更新的處理方法與系統提供彈性化的設備韌體的封裝與更新,使得同一目標文件123可以支援多組不同的伺服器與相應週邊設備550。開發人員可以將核心文件任意搭配週邊設備550的硬體描述文件與背板560的硬體描述文件,藉以符合伺服器的不同版本資訊214。
The firmware update processing method and system provide flexible packaging and update of device firmware, so that the
001:韌體更新的處理系統 100:第一計算機 110:第一傳輸單元 120:第一儲存單元 121:處理程式 123:目標文件 130:第一處理器 200:外部伺服器 210:設備清單 211:核心裝置樹源資訊 212:設備裝置樹源資訊 213:背板裝置樹源資訊 214:版本資訊 411:核心中間文件 412:設備中間文件 413:背板中間文件 500:第二計算機 510:第二傳輸單元 520:第二儲存單元 521:更新程式 522:導引程式 523:當前描述文件 530:第二處理器 540:主機板 550:週邊設備 560:背板 910:第一文件群 911:第一設備中間文件 912:第一背板中間文件 920:第二文件群 921:第二設備中間文件 922:第二背板中間文件 S310、S320、S330、S340:步驟 S610、S620、S630:步驟 S710、S720、S730、S740、S750:步驟 S810、S820、S830、S840、S850、S860、S870:步驟 001: Processing system for firmware update 100: First Computer 110: The first transmission unit 120: The first storage unit 121: Handler 123: target file 130: The first processor 200: External server 210: Equipment List 211: Core device tree source information 212: Device device tree source information 213: Backplane device tree source information 214: Version Information 411: core intermediate file 412: Device intermediate file 413: Backplane intermediate file 500: Second Computer 510: Second transmission unit 520: Second storage unit 521: Updater 522: Bootstrap 523: Current description file 530: Second processor 540: Motherboard 550: Peripherals 560: Backplane 910: The first file group 911: First device intermediate file 912: First backplane intermediate file 920: The second file group 921: Second device intermediate file 922: Second backplane intermediate file S310, S320, S330, S340: Steps S610, S620, S630: Steps S710, S720, S730, S740, S750: Steps S810, S820, S830, S840, S850, S860, S870: Steps
[圖1]係為一實施例的硬體架構示意圖。 [圖2]為一實施例的伺服器與所屬週邊設備的硬體描述文件的更新流程示意圖。 [圖3]為一實施例的裝置樹源資訊與對應的中間文件的示意圖。 [圖4]為一實施例的目標文件的架構示意圖。 [圖5]為一實施例的第一計算機與第二計算機的系統架構示意圖。 [圖6]為一實施例的導引程式更新目標文件的運作流程示意圖。 [圖7]為一實施例的伺服器的目標文件的封裝處理流程示意圖。 [圖8]為一實施例的目標文件編譯的流程示意圖。 [圖9]係為一實施例的目標文件之架構示意圖。 [圖10]係為一實施例的裝置樹源資訊的程式碼示意圖。 [FIG. 1] is a schematic diagram of a hardware architecture of an embodiment. [ FIG. 2 ] is a schematic diagram of an update flow of the hardware description files of the server and the peripheral devices to which it belongs according to an embodiment. 3 is a schematic diagram of device tree source information and corresponding intermediate files according to an embodiment. FIG. 4 is a schematic diagram of the structure of an object file according to an embodiment. [ FIG. 5 ] is a schematic diagram of a system architecture of a first computer and a second computer according to an embodiment. FIG. 6 is a schematic diagram of the operation flow of the boot program updating the target file according to an embodiment. FIG. 7 is a schematic diagram of a process flow of packaging a target file of a server according to an embodiment. [ FIG. 8 ] is a schematic flowchart of object file compilation according to an embodiment. [FIG. 9] is a schematic diagram of the structure of an object file of an embodiment. FIG. 10 is a schematic diagram of the code of the source information of the device tree according to an embodiment.
001:韌體更新的處理系統 001: Processing system for firmware update
100:第一計算機 100: First Computer
110:第一傳輸單元 110: The first transmission unit
120:第一儲存單元 120: The first storage unit
121:處理程式 121: Handler
123:目標文件 123: target file
130:第一處理器 130: The first processor
200:外部伺服器 200: External server
210:設備清單 210: Equipment List
211:核心裝置樹源資訊 211: Core device tree source information
212:設備裝置樹源資訊 212: Device device tree source information
213:背板裝置樹源資訊 213: Backplane device tree source information
214:版本資訊 214: Version Information
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110124860A TWI776579B (en) | 2021-07-06 | 2021-07-06 | Processing method and device of firmware updating |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110124860A TWI776579B (en) | 2021-07-06 | 2021-07-06 | Processing method and device of firmware updating |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI776579B true TWI776579B (en) | 2022-09-01 |
TW202303385A TW202303385A (en) | 2023-01-16 |
Family
ID=84957895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110124860A TWI776579B (en) | 2021-07-06 | 2021-07-06 | Processing method and device of firmware updating |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI776579B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI826211B (en) * | 2022-12-28 | 2023-12-11 | 神雲科技股份有限公司 | Gpio setting method of embedded system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100403836C (en) * | 2005-06-10 | 2008-07-16 | 华为技术有限公司 | Terminal device software/firmware downloading updating method |
US20190026022A1 (en) * | 2017-07-20 | 2019-01-24 | Dell Products, Lp | System and Method to Detect Storage Controller Workloads and to Dynamically Split a Backplane |
TW201911045A (en) * | 2017-08-09 | 2019-03-16 | 廣達電腦股份有限公司 | Server system, computer-implemented method and non-transitory computer-readable medium |
CN110799942A (en) * | 2017-06-13 | 2020-02-14 | 思科技术公司 | Detecting and managing recurring patterns in device and service configuration data |
US20200257518A1 (en) * | 2020-04-24 | 2020-08-13 | Intel Corporation | Device firmware update techniques |
-
2021
- 2021-07-06 TW TW110124860A patent/TWI776579B/en active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100403836C (en) * | 2005-06-10 | 2008-07-16 | 华为技术有限公司 | Terminal device software/firmware downloading updating method |
CN110799942A (en) * | 2017-06-13 | 2020-02-14 | 思科技术公司 | Detecting and managing recurring patterns in device and service configuration data |
US20190026022A1 (en) * | 2017-07-20 | 2019-01-24 | Dell Products, Lp | System and Method to Detect Storage Controller Workloads and to Dynamically Split a Backplane |
TW201911045A (en) * | 2017-08-09 | 2019-03-16 | 廣達電腦股份有限公司 | Server system, computer-implemented method and non-transitory computer-readable medium |
US20200257518A1 (en) * | 2020-04-24 | 2020-08-13 | Intel Corporation | Device firmware update techniques |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI826211B (en) * | 2022-12-28 | 2023-12-11 | 神雲科技股份有限公司 | Gpio setting method of embedded system |
Also Published As
Publication number | Publication date |
---|---|
TW202303385A (en) | 2023-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144306B2 (en) | Scheduling upgrades in distributed computing systems | |
US10031993B1 (en) | Application store model for dynamic reconfiguration of a field-programmable gate array (FPGA) | |
US9720704B2 (en) | Data driven hardware chips initialization via hardware procedure framework | |
CN115605844A (en) | Microcode (microcode) hot upgrading method for bare computer cloud deployment | |
US10268628B2 (en) | Method for extracting BIOS attributes for BIOS management and system therefor | |
US10929149B2 (en) | Method and system for updating firmware | |
CN108898230A (en) | A kind of device management method and management server | |
CN101777005B (en) | Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller | |
US11513786B2 (en) | Method and system for server firmware update framework | |
US10459742B2 (en) | System and method for operating system initiated firmware update via UEFI applications | |
US20210240491A1 (en) | System and method for runtime synchronization and authentication of pre-boot device drivers for a rescue operating system | |
CN101833470A (en) | Injecting transactions to support the virtualization of a physical device controller | |
TWI776579B (en) | Processing method and device of firmware updating | |
US10838471B2 (en) | System for estimating airflow exiting an information handling system and method therefor | |
US10558453B1 (en) | System and method to achieve shared drive firmware version consistency via ESRT update | |
CN114756290A (en) | Operating system installation method, device and readable storage medium | |
US11915029B2 (en) | System and method of managing available memory of an information handling system | |
US10572151B2 (en) | System and method to allocate available high bandwidth memory to UEFI pool services | |
US10996942B1 (en) | System and method for graphics processing unit firmware updates | |
US20240103836A1 (en) | Systems and methods for topology aware firmware updates in high-availability systems | |
CN115576577A (en) | Firmware update processing method and device | |
US11372653B1 (en) | Runtime access to firmware platform configuration data | |
US20240232364A9 (en) | Systems and methods for bmc firmware identity based access control | |
US11314455B2 (en) | Mapping of RAID-CLI requests to vSAN commands by an out-of-band management platform using NLP | |
US20240232363A9 (en) | Systems and methods to securely configure a factory firmware in a bmc |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |