Method and circuit for updating firmware based on BMC

By introducing redundant BMC design into the liquid-cooled system, automatic update of the liquid-cooled chip firmware is achieved, solving the problems of cumbersome update process and business interruption in the existing technology, and improving the update efficiency and system stability.

CN114237658BActive Publication Date: 2025-04-25ZHONGKE SUGUANG INFORMATION IND CHENGDU CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111423623.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-26
Publication Date
2025-04-25
Estimated Expiration
2041-11-26

AI Technical Summary

Technical Problem

The method of updating the liquid-cooled chip firmware in the prior art requires specialized personnel to manually plug in the serial port line, resulting in large labor and time consumption, and the update process requires power outage, affecting business continuity.

Method used

Through a redundant design based on BMC, the working BMC is determined and connected to the liquid-cooled chip through the switching interface to achieve automatic firmware update. The working BMC is responsible for sending firmware files and transmitting and controlling data through I2C and UART interfaces to ensure the stability and efficiency of the update process.

Benefits of technology

Automatic firmware update without human intervention is realized, reducing labor and time costs, and ensuring the stability of the system through redundant design and avoiding business interruptions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114237658B_ABST
    Figure CN114237658B_ABST
Patent Text Reader

Abstract

The present invention discloses a method and circuit for updating firmware based on BMC, including: determining a working BMC based on two mutually redundant BMCs, and connecting the working BMC to a liquid cooling chip of which the firmware is to be updated; sending a firmware file to the working BMC; and the working BMC updating the firmware of the liquid cooling chip based on the firmware file. The technical solution of the present invention ensures the stability of the circuit through two mutually redundant BMCs. If one of the BMCs is abnormal, the entire liquid cooling system can still work normally. The liquid cooling chip firmware can also be remotely updated through the network of the server management chip, and batch firmware updates can be realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of firmware update, and in particular to a method and circuit for updating firmware based on BMC. Background Art

[0002] With the rapid development of the information society, human beings have higher and higher requirements for information processing capabilities, and more powerful servers are needed to provide computing power. As computing power increases, server power consumption becomes particularly large, requiring a lot of electricity costs. In order to better dissipate heat and save costs, immersion liquid cooling technology came into being.

[0003] In order to better control the liquid cooling system, a special chip is designed on the motherboard of the server to manage the liquid cooling system. The liquid cooling system often has functional updates, so the firmware needs to be updated. Currently, the firmware is updated by connecting the laptop through the liquid cooling chip's (Universal Asynchronous Receiver / Transmitter, referred to as UART) serial port; if you want to operate the liquid cooling chip, such as controlling the working mode of the liquid cooling chip, you also need to plug in the serial port line to input commands. However, when there are a large number of liquid cooling chips, you need to move the laptop to multiple places to plug in and out, which is time-consuming and labor-intensive.

[0004] The current method for updating the firmware of the liquid cooling chip is to insert a serial cable through the rear compartment of the server. However, this method requires specialized personnel to insert the serial cable into each server and update it. When the server scale is large, it will consume a lot of manpower and time. In addition, the server must be powered off when the serial cable is updated, which will interrupt the business and affect customer use. Summary of the invention

[0005] The present invention aims to solve one of the technical problems in the related art at least to a certain extent. To this end, one object of the present invention is to provide a method and circuit for updating firmware based on BMC.

[0006] In order to solve the above technical problems, the embodiments of the present invention provide the following technical solutions:

[0007] A method for updating firmware based on BMC, comprising:

[0008] Based on two mutually redundant BMCs, determining a working BMC, and connecting the working BMC to a liquid cooling chip of the firmware to be updated;

[0009] Sending the firmware file to the working BMC;

[0010] The working BMC updates the firmware of the liquid cooling chip based on the firmware file.

[0011] Optionally, the determining a working BMC based on two mutually redundant BMCs, and connecting the working BMC to a liquid cooling chip of the firmware to be updated includes:

[0012] Based on the switching interface, determining the working BMC; wherein the working BMC is provided with a first working interface, the liquid cooling chip is provided with a second working interface, and the first working interface and the second working interface are connected through the switching interface;

[0013] The working BMC is connected to the liquid cooling chip based on the first working interface and the second working interface.

[0014] Optionally, the working BMC updates the firmware of the liquid cooling chip based on the firmware file, including:

[0015] The working BMC sends the first control information to the liquid cooling chip; wherein the working BMC is provided with a first control interface, and the liquid cooling chip is provided with a second control interface; the first control interface sends the first control information to the second control interface;

[0016] The liquid cooling chip enters a burning mode based on the first control information;

[0017] The working BMC updates the firmware file to the liquid cooling chip through the first working interface.

[0018] Optionally, after the working BMC updates the firmware file to the liquid cooling chip through the first working interface, the method further includes:

[0019] The working BMC reads and writes each sector of the liquid cooling chip based on the first working interface to obtain a reading and writing result;

[0020] Verifying the read and write results to obtain verification results;

[0021] Based on the verification result, the firmware update result is obtained.

[0022] Optionally, verifying the read and write results to obtain verification results includes:

[0023] Generate a first verification code based on the read and write results;

[0024] Obtaining a second verification code of the firmware file corresponding to each sector;

[0025] The first verification code is compared with the second verification code to obtain a comparison result.

[0026] Optionally, obtaining the firmware update result based on the verification result includes:

[0027] If the comparison result of each sector is consistent, the firmware of each sector is updated successfully;

[0028] If the comparison result of any of the sectors is inconsistent, the firmware update of the liquid cooling chip fails, and the firmware of the liquid cooling chip is updated again until the firmware update of each of the sectors is successful.

[0029] An embodiment of the present invention further provides a circuit for updating firmware based on BMC, comprising:

[0030] Two mutually redundant BMCs, based on the two mutually redundant BMCs, determine a working BMC;

[0031] A liquid cooling chip, wherein the liquid cooling chip is respectively connected to the two mutually redundant BMCs;

[0032] The liquid cooling chip is connected to the working BMC via a working interface to form a working circuit.

[0033] Optionally, the working interface includes a first working interface and a second working interface; the working BMC is provided with the first working interface, the liquid cooling chip is provided with the second working interface, and the first working interface and the second working interface are connected via a switching interface.

[0034] Optionally, the first working interface includes a first UART interface and a first I2C interface, the second working interface includes a second UART interface and a second I2C interface; the switching interface includes a first switching interface and a second switching interface;

[0035] The first UART interface is connected to the second UART interface via the first switching interface;

[0036] The first I2C interface is connected to the second I2C interface via a second switching interface.

[0037] Optionally, the working BMC is provided with a first control interface, the liquid cooling chip is provided with a second control interface, and the first control interface is connected to the second control interface.

[0038] An embodiment of the present invention further provides an electronic device, comprising a processor, a memory, and a computer program stored in the memory and configured to be executed by the processor, wherein the processor implements the method described above when executing the computer program.

[0039] An embodiment of the present invention further provides a computer-readable storage medium, wherein the computer-readable storage medium includes a stored computer program, wherein when the computer program is executed, the device where the computer-readable storage medium is located is controlled to execute the method described above.

[0040] The embodiments of the present invention have the following technical effects:

[0041] The above technical solution of the present invention, 1) ensures the stability of the circuit through two mutually redundant BMCs, and if one of the host computers (BMC) is abnormal, the entire liquid cooling system can still work normally.

[0042] 2) The liquid cooling chip firmware can also be updated remotely through the server management chip network, and batch firmware updates can be achieved.

[0043] 3) The working BMC controls the GPIO interface to control the liquid cooling chip to enter the burning mode or complete the restart of the liquid cooling chip.

[0044] 4) The liquid cooling chip can also be restarted and reset through IPMI, and can be used as a debugging port for the liquid cooling chip to debug the liquid cooling chip.

[0045] Additional aspects and advantages of the present invention will be given in part in the following description and in part will be obvious from the following description, or will be learned through practice of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0046] Figure 1 It is a structural schematic diagram of a circuit for updating firmware based on BMC provided in an embodiment of the present invention;

[0047] Figure 2 It is a flowchart of a method for updating firmware based on BMC provided by an embodiment of the present invention;

[0048] Figure 3 It is a BMC WEB page for firmware update provided by an embodiment of the present invention;

[0049] Figure 4 It is another BMC WEB page for firmware update provided by an embodiment of the present invention;

[0050] Figure 5 The figure is a block diagram of a method for updating firmware based on BMC provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0051] Embodiments of the present invention are described in detail below, examples of which are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are intended to be used to explain the present invention, and should not be construed as limiting the present invention.

[0052] In order to facilitate the understanding of those skilled in the art, some terms of the present invention are first explained:

[0053] 1) BMC: Baseboard Management Controller, running Linux system;

[0054] 2)UART MUX: multiplexing chip of UART interface;

[0055] 3)I2C MUX: multiplexing chip of I2C interface;

[0056] 4) RESTFUL: A design style and development method for network applications based on HTTP, which can be defined in XML format or JSON format;

[0057] 5) IPMI: Intelligent Platform Management Interface;

[0058] 6)ISP PIN: In-System Programming Pin is the pin for entering online programming;

[0059] 7)RESET PIN: The pin used to restart the liquid cooling chip;

[0060] 8) Liquid cooling chip: a chip that controls and manages the liquid cooling system;

[0061] 9)GPIO: General Purpose Input Output, standard input and output port;

[0062] 10) UART (Universal Asynchronous Receiver / Transmitter, UART interface: used to transfer firmware files between BMC and liquid cooling chip.

[0063] 11) I2C interface: used to transmit control and data information. This interface can be used to obtain relevant information such as the liquid level, air pressure, working status, version number, etc. of the liquid cooling chip, and can also write the liquid cooling chip register and control the working mode of the liquid cooling chip.

[0064] To facilitate understanding of the embodiment of the present invention, a circuit for updating firmware based on BMC, on which the embodiment of the present invention is based, is described below.

[0065] like Figure 1 As shown, an embodiment of the present invention provides a circuit for updating firmware based on BMC, including:

[0066] Two mutually redundant BMCs, based on the two mutually redundant BMCs, determine a working BMC;

[0067] Specifically, when working, IPMI sends commands to BMC to implement functions, and the commands use instructions specified in the IPMI specification; wherein, BMC is provided with a file module for storing files received by BMC.

[0068] A liquid cooling chip, wherein the liquid cooling chip is respectively connected to the two mutually redundant BMCs;

[0069] Specifically, the liquid cooling chip has 8 fixed sectors that need to be updated with firmware one by one;

[0070] The liquid cooling chip can be connected to any BMC for data transmission.

[0071] The liquid cooling chip is connected to the working BMC via a working interface to form a working circuit.

[0072] Specifically, this embodiment of the present invention may specifically include a working circuit and a standby circuit, and each component of the working circuit and the standby circuit can work normally after the connection is established, thereby ensuring the stability of the firmware update process.

[0073] This embodiment of the present invention ensures the stability of the circuit through two redundant BMCs. Even if one of the host computers (BMC) is abnormal, the entire liquid cooling system can still operate normally. The liquid cooling chip firmware can be remotely updated through the network of the server management chip, and batch firmware updates can be achieved.

[0074] In an optional embodiment of the present invention, the working interface includes a first working interface and a second working interface; the working BMC is provided with the first working interface, the liquid cooling chip is provided with the second working interface, and the first working interface and the second working interface are connected via a switching interface.

[0075] Specifically, the standby BMC is provided with a third working interface, and the third working interface is connected to the second working interface via a switching interface;

[0076] The switching interface receives the control command of the IPMI, and selects to establish a connection with the first working interface or the second working interface based on the control command, thereby forming a first working circuit or a second working circuit, and the first working circuit and the second working circuit are backup circuits for each other.

[0077] In this embodiment of the present invention, a plurality of working interfaces are provided so that a working circuit and a standby circuit can be formed based on two BMCs and a liquid cooling chip, thereby ensuring the stability of the update process.

[0078] In an optional embodiment of the present invention, the first working interface includes a first UART interface and a first I2C interface, the second working interface includes a second UART interface and a second I2C interface; the switching interface includes a first switching interface and a second switching interface;

[0079] The first UART interface is connected to the second UART interface via the first switching interface;

[0080] The first I2C interface is connected to the second I2C interface via a second switching interface.

[0081] Specifically, the third working interface includes a third UART interface and a third I2C interface;

[0082] The third UART interface is connected to the second UART interface via the first switching interface;

[0083] The third I2C interface is connected to the second I2C interface via a second switching interface.

[0084] The working circuit includes:

[0085] The working BMC, the first UART interface, the first switching interface, the second UART interface, and the liquid cooling chip are connected in sequence; the path is used for the transmission of firmware files.

[0086] The working BMC, the first I2C interface, the first switching interface, the second I2C interface, and the liquid cooling chip are connected in sequence; the channel is used for controlling the transmission of information or the transmission of read data.

[0087] The standby circuit includes: a standby BMC, a third UART interface, a first switching interface, a second UART interface, and a liquid cooling chip connected in sequence;

[0088] A standby BMC, a third I2C interface, a first switching interface, a second I2C interface, and a liquid cooling chip connected in sequence;

[0089] Among them, the first switching interface can be UART MUX; the second switching interface can be I2C MUX.

[0090] This embodiment of the present invention realizes the establishment of the working circuit and the standby circuit based on the selection of the BMC by the first switching interface and the second switching interface, and can realize the alternating operation of the working circuit and the standby circuit.

[0091] In an optional embodiment of the present invention, the working BMC is provided with a first control interface, the liquid cooling chip is provided with a second control interface, and the first control interface is connected to the second control interface.

[0092] Specifically, a connection between the working BMC and the liquid cooling chip can be established based on the GPIO interface. In this embodiment of the present invention, the working BMC controls the GPIO interface to control the liquid cooling chip to enter the burning mode or complete the restart action of the liquid cooling chip.

[0093] In an optional embodiment of the present invention, when the BMC cannot read the information of the liquid cooling chip through I2C for a long time, the BMC will think that the liquid cooling chip has entered a deadlock or downtime state. At this time, the server management chip controls the BMC to reset the liquid cooling chip to restore the liquid cooling chip to a normal working state.

[0094] This embodiment of the present invention can perform operations such as restarting and resetting the liquid cooling chip through the server management chip, and can serve as a debugging port of the liquid cooling chip to debug the liquid cooling chip.

[0095] like Figure 2 As shown, an embodiment of the present invention provides a method for updating firmware based on BMC, including:

[0096] Step S1: Based on two mutually redundant BMCs, a working BMC is determined, and the working BMC is connected to a liquid cooling chip of a firmware to be updated;

[0097] Specifically, when the firmware of the liquid cooling chip needs to be updated, the IPMI controls the UART MUX to select a BMC with a better working status, and determines the BMC with a better working status as the working BMC;

[0098] When the UART MUX establishes a connection with the first UART of the working BMC, the working circuit for firmware file transmission is formed;

[0099] When the working BMC is determined, the I2C MUX establishes a connection with the working BMC, and the working circuit for controlling information transmission is formed.

[0100] Step S2: Send the firmware file to the working BMC;

[0101] Specifically, IPMI sends the firmware file to the file module of the working BMC for standby.

[0102] Step S3: the working BMC updates the firmware of the liquid cooling chip based on the firmware file.

[0103] This embodiment of the present invention can realize batch firmware update through the network out-of-band burning method, saving a lot of manpower and material resources; by setting two mutually redundant BMCs, the stability of the working circuit is guaranteed.

[0104] In an optional embodiment of the present invention, in step S1, determining a working BMC based on two mutually redundant BMCs, and connecting the working BMC to a liquid cooling chip of a firmware to be updated includes:

[0105] Step S11: determining the working BMC based on the switching interface; wherein the working BMC is provided with a first working interface, the liquid cooling chip is provided with a second working interface, and the first working interface and the second working interface are connected through the switching interface;

[0106] Step S12: connecting the working BMC to the liquid cooling chip based on the first working interface and the second working interface.

[0107] In an optional embodiment of the present invention, in step S3, the working BMC updates the firmware of the liquid cooling chip based on the firmware file, including:

[0108] Step S31: the working BMC sends the first control information to the liquid cooling chip; wherein the working BMC is provided with a first control interface, and the liquid cooling chip is provided with a second control interface; the first control interface sends the first control information to the second control interface;

[0109] Step S32: the liquid cooling chip enters a burning mode based on the first control information;

[0110] Step S33: the working BMC updates the firmware file to the liquid cooling chip through the first working interface.

[0111] In this embodiment of the present invention, two BMCs are respectively connected to the liquid cooling chip through I2C MUX, and both BMCs can read the data of the liquid cooling chip by switching I2CMUX; two BMCs are respectively connected to the liquid cooling chip through UART MUX, and both BMCs can burn the liquid cooling chip firmware by switching UART MUX; both BMCs have GPIO interfaces connected to the liquid cooling chip to enable the liquid cooling chip to enter the burning mode and complete actions such as restarting the liquid cooling chip.

[0112] In an optional embodiment of the present invention, in step S33, after the working BMC updates the firmware file to the liquid cooling chip through the first working interface, the following steps are included:

[0113] Step S331: the working BMC reads and writes each sector of the liquid cooling chip based on the first working interface to obtain a reading and writing result;

[0114] Specifically, the second working interface includes a first I2C interface and a second I2C interface; the third working interface includes a third I2C interface;

[0115] The working BMC establishes a connection with the I2C MUX based on the first I2C interface, thereby realizing the reading and writing of the liquid cooling chip sector data;

[0116] After receiving the post-firmware file, the working BMC will generate a corresponding check code for the part of the firmware file corresponding to each sector of the liquid cooling chip, for example, a cyclic redundancy check code.

[0117] Step S332: verifying the read and write results to obtain verification results;

[0118] Specifically, the working BMC obtains the read and write results based on the first I2C interface, and generates corresponding cyclic redundancy check codes for the read and write results.

[0119] Step S333: Based on the verification result, the firmware update result is obtained.

[0120] In this embodiment of the present invention, corresponding cyclic redundancy check codes are generated for the firmware file and the data of the updated sector, and then checked to ensure the correctness of the firmware update.

[0121] In an optional embodiment of the present invention, in step S332, verifying the read and write results to obtain the verification results includes:

[0122] Step S3321: Generate a first verification code based on the read and write results;

[0123] Step S3322: Obtain a second verification code of the firmware file corresponding to each sector;

[0124] Step S3323: Compare the first verification code with the second verification code to obtain a comparison result.

[0125] In this embodiment of the present invention, the first verification code is compared with the second verification code to obtain a comparison result, and the comparison result is used as a criterion for judging whether the update is successful or not, thereby adding a reliable guarantee for ensuring the success of the firmware update.

[0126] In an optional embodiment of the present invention, in step S333, obtaining the update result of the firmware based on the verification result includes:

[0127] Step S3331: If the comparison result of each sector is consistent, the firmware of each sector is updated successfully;

[0128] Step S3332: If the comparison result of any of the sectors is inconsistent, the firmware update of the liquid cooling chip fails, and the firmware of the liquid cooling chip is updated again until the firmware update of each of the sectors is successful.

[0129] Specifically, when the comparison result shows inconsistency, it indicates that the firmware update of the sector has failed. Then, the above steps are repeated to repeatedly update the firmware of the sectors where the firmware update failed multiple times. The number of firmware updates can be flexibly preset according to actual needs until all sectors have successfully updated their firmware. In this case, the firmware update of the liquid cooling chip is successful.

[0130] Among them, when a sector fails to update its firmware after multiple times of re-update, it will directly enter the firmware update of the next sector. When all sectors have completed the firmware update, it will prompt that the firmware update of the liquid cooling chip has failed, and the information of the failure of the liquid cooling chip firmware update will be fed back to the working BMC, and the firmware of all sectors of the liquid cooling chip will be re-updated. If the firmware update of the same sector still fails, it can be basically concluded that there is an abnormality with the liquid cooling chip.

[0131] Generally speaking, the probability of sector firmware update failure is low, and the number of sector re-updates can be set based on actual conditions in actual operations.

[0132] This embodiment of the present invention verifies the success or failure of the firmware update of each sector through a cyclic redundancy check code. When there is inconsistency, the sector where the firmware update failed is re-updated multiple times before entering the firmware update of the next sector, thereby ensuring the correctness of the firmware update of each sector and improving the efficiency of the firmware update.

[0133] Combination Figure 3 and Figure 4 In an optional embodiment of the present invention, the BMC WEB page for firmware update is updated. Various operation buttons can be intuitively seen through the updated WEB page, and various functions can be triggered by one button. The operation is simple, convenient and fast.

[0134] Specifically, each step of the WEB page operation has a corresponding underlying RESETFUL interface. When there are multiple servers in the computer room, write a script to call the RESETFUL interface for firmware update and pass in the IP addresses of the BMCs of different machines.

[0135] For example, you can view the update progress on the updated page and view detailed information about the current update process, which facilitates debugging and problem location.

[0136] When you see the words "sync failed", it can be determined that there is an error in entering the burning mode, and it can be determined that there is an error in the UART link.

[0137] In this embodiment of the present invention, detailed update progress and logs can be viewed through a network browser, which facilitates debugging.

[0138] Combination Figure 5 The above embodiments of the present invention can be implemented by the following implementation methods:

[0139] The first BMC is used as the working BMC, the I2C MUX is connected to the first I2C interface, and the UART MUX is connected to the first UART interface.

[0140] 1) The user logs in to the BMC WEB page through his laptop (or other terminals), finds the page for updating the liquid cooling chip function, and chooses to upload the liquid cooling chip firmware.

[0141] 2) Click Start Firmware Update, BMC will pull down the ISP PIN to put the liquid cooling chip into burning mode, and then read and write each sector of the liquid cooling chip. The read and written data are cyclically redundancy checked. If a sector fails to be flashed, it will be re-flashed three times.

[0142] Among them, if a sector fails to be refreshed three times, it will enter the next sector refresh. Finally, if the firmware update fails, the liquid cooling chip can be flashed again according to the prompt of the flash failure. If the same sector fails again, it basically means that there is an abnormality in the liquid cooling chip.

[0143] 3) If all 8 sectors are flashed, pull up the ISP PIN and then pull down and then pull up the REST PIN to make the new firmware effective. If it fails, remind the user that the flash failed and reset the liquid cooling chip to restore the chip to normal mode. Among them, 8 sectors are fixed sectors, each storing different code segments.

[0144] 4) The working BMC reads the version number of the liquid cooling chip information through I2C and UART respectively, and verifies the version number at multiple levels to determine whether the firmware is updated to the expected version;

[0145] If the expected version is reached, the update is successful. If the expected version is not reached, it is necessary to check whether the updated firmware version is normal.

[0146] An embodiment of the present invention further provides a device for updating firmware based on BMC, comprising:

[0147] A determination module, used to determine a working BMC based on two mutually redundant BMCs, and connect the working BMC to a liquid cooling chip of a firmware to be updated;

[0148] A sending module, used for sending the firmware file to the working BMC;

[0149] An update module is used for the working BMC to update the firmware of the liquid cooling chip based on the firmware file.

[0150] Optionally, the determining a working BMC based on two mutually redundant BMCs, and connecting the working BMC to a liquid cooling chip of the firmware to be updated includes:

[0151] Based on the switching interface, determining the working BMC; wherein the working BMC is provided with a first working interface, the liquid cooling chip is provided with a second working interface, and the first working interface and the second working interface are connected through the switching interface;

[0152] The working BMC is connected to the liquid cooling chip based on the first working interface and the second working interface.

[0153] Optionally, the working BMC updates the firmware of the liquid cooling chip based on the firmware file, including:

[0154] The working BMC sends the first control information to the liquid cooling chip; wherein the working BMC is provided with a first control interface, and the liquid cooling chip is provided with a second control interface; the first control interface sends the first control information to the second control interface;

[0155] The liquid cooling chip enters a burning mode based on the first control information;

[0156] The working BMC updates the firmware file to the liquid cooling chip through the first working interface.

[0157] Optionally, after the working BMC updates the firmware file to the liquid cooling chip through the first working interface, the method further includes:

[0158] The working BMC reads and writes each sector of the liquid cooling chip based on the first working interface to obtain a reading and writing result;

[0159] Verifying the read and write results to obtain verification results;

[0160] Based on the verification result, the firmware update result is obtained.

[0161] Optionally, verifying the read and write results to obtain verification results includes:

[0162] Generate a first verification code based on the read and write results;

[0163] Obtaining a second verification code of the firmware file corresponding to each sector;

[0164] The first verification code is compared with the second verification code to obtain a comparison result.

[0165] Optionally, obtaining the firmware update result based on the verification result includes:

[0166] If the comparison result of each sector is consistent, the firmware of each sector is updated successfully;

[0167] If the comparison result of any of the sectors is inconsistent, the firmware update of the liquid cooling chip fails, and the firmware of the liquid cooling chip is updated again until the firmware update of each of the sectors is successful.

[0168] An embodiment of the present invention further provides an electronic device, comprising a processor, a memory, and a computer program stored in the memory and configured to be executed by the processor, wherein the processor implements the method described above when executing the computer program.

[0169] An embodiment of the present invention further provides a computer-readable storage medium, wherein the computer-readable storage medium includes a stored computer program, wherein when the computer program is executed, the device where the computer-readable storage medium is located is controlled to execute the method described above.

[0170] In addition, other structures and functions of the circuits in the embodiments of the present invention are known to those skilled in the art and are not described herein in detail to reduce redundancy.

[0171] It should be noted that the logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a sequenced list of executable instructions for implementing logical functions, and can be specifically implemented in any computer-readable medium for use by an instruction execution system, device or apparatus (such as a computer-based system, a system including a processor, or other system that can fetch instructions from an instruction execution system, device or apparatus and execute instructions), or in combination with these instruction execution systems, devices or apparatuses. For the purposes of this specification, "computer-readable medium" can be any device that can contain, store, communicate, propagate or transmit a program for use by an instruction execution system, device or apparatus, or in combination with these instruction execution systems, devices or apparatuses. More specific examples of computer-readable media (a non-exhaustive list) include the following: an electrical connection portion with one or more wirings (electronic device), a portable computer disk box (magnetic device), a random access memory (RAM), a read-only memory (ROM), an erasable and programmable read-only memory (EPROM or flash memory), an optical fiber device, and a portable compact disk read-only memory (CDROM). In addition, the computer-readable medium may even be paper or other suitable medium on which the program is printed, since the program may be obtained electronically, for example, by optically scanning the paper or other medium and then editing, interpreting or processing in other suitable ways if necessary, and then stored in a computer memory.

[0172] It should be understood that the various parts of the present invention can be implemented by hardware, software, firmware or a combination thereof. In the above-mentioned embodiments, a plurality of steps or methods can be implemented by software or firmware stored in a memory and executed by a suitable instruction execution system. For example, if implemented by hardware, as in another embodiment, it can be implemented by any one of the following technologies known in the art or their combination: a discrete logic circuit having a logic gate circuit for implementing a logic function for a data signal, a dedicated integrated circuit having a suitable combination of logic gate circuits, a programmable gate array (PGA), a field programmable gate array (FPGA), etc.

[0173] In the description of this specification, the description with reference to the terms "one embodiment", "some embodiments", "examples", "specific examples", or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present invention. In this specification, the schematic representation of the above terms does not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner.

[0174] In the description of the present invention, it is to be understood that the terms “center”, “longitudinal”, “lateral”, “length”, “width”, “thickness”, “up”, “down”, “front”, “back”, “left”, “right”, “vertical”, “horizontal”, “top”, “bottom”, “inside”, “outside”, “clockwise”, “counterclockwise”, “axial”, “radial”, “circumferential”, etc., indicating orientations or positional relationships based on the orientations or positional relationships shown in the accompanying drawings, are only for the convenience of describing the present invention and simplifying the description, and do not indicate or imply that the referred device or element must have a specific orientation, be constructed and operated in a specific orientation, and therefore should not be understood as limiting the present invention.

[0175] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, the features defined as "first" and "second" may explicitly or implicitly include at least one of the features. In the description of the present invention, the meaning of "plurality" is at least two, such as two, three, etc., unless otherwise clearly and specifically defined.

[0176] In the present invention, unless otherwise clearly specified and limited, the terms "installed", "connected", "connected", "fixed" and the like should be understood in a broad sense, for example, it can be a fixed connection, a detachable connection, or an integral connection; it can be a mechanical connection or an electrical connection; it can be a direct connection or an indirect connection through an intermediate medium, it can be the internal connection of two elements or the interaction relationship between two elements, unless otherwise clearly defined. For ordinary technicians in this field, the specific meanings of the above terms in the present invention can be understood according to specific circumstances.

[0177] In the present invention, unless otherwise clearly specified and limited, a first feature being "above" or "below" a second feature may mean that the first and second features are in direct contact, or the first and second features are in indirect contact through an intermediate medium. Moreover, a first feature being "above", "above" or "above" a second feature may mean that the first feature is directly above or obliquely above the second feature, or simply means that the first feature is higher in level than the second feature. A first feature being "below", "below" or "below" a second feature may mean that the first feature is directly below or obliquely below the second feature, or simply means that the first feature is lower in level than the second feature.

[0178] Although the embodiments of the present invention have been shown and described above, it is to be understood that the above embodiments are exemplary and are not to be construed as limitations of the present invention. A person skilled in the art may change, modify, replace and vary the above embodiments within the scope of the present invention.

Claims

1. A method for updating firmware based on BMC, characterized in that: Applied to IPMI, including: Based on two mutually redundant BMCs, determining a working BMC, and connecting the working BMC to a liquid cooling chip of the firmware to be updated; Sending the firmware file to the working BMC; The working BMC updates the firmware of the liquid cooling chip based on the firmware file; The method of determining a working BMC based on two mutually redundant BMCs and connecting the working BMC to a liquid cooling chip of a firmware to be updated includes: Based on the switching interface, the working BMC is determined; wherein the working BMC is provided with a first working interface, the liquid cooling chip is provided with a second working interface, the first working interface includes a first UART interface and a first I2C interface, and the second working interface includes a second UART interface and a second I2C interface; the switching interface includes a first switching interface and a second switching interface; the first UART interface and the second UART interface are connected through the first switching interface; the first I2C interface and the second I2C interface are connected through the second switching interface; The working BMC updates the firmware of the liquid cooling chip based on the firmware file, including: Transmitting the firmware file to the working BMC based on the working BMC, the first UART interface, the first switching interface, the second UART interface, and the liquid cooling chip that are connected in sequence, so that the working BMC updates the firmware of the liquid cooling chip; It also includes: based on the sequentially connected working BMC, the first I2C interface, the first switching interface, the second I2C interface, and the liquid cooling chip controlling the transmission of information or the transmission of read data; The working BMC is provided with a first control interface, and the liquid cooling chip is provided with a second control interface, and the first control interface is connected to the second control interface; the first control interface is a GPIO interface, and the method further includes: establishing a connection between the working BMC and the liquid cooling chip based on the GPIO interface to control the liquid cooling chip to enter a burning mode or complete a restart of the liquid cooling chip.

2. The method according to claim 1, characterized in that The working BMC updates the firmware of the liquid cooling chip based on the firmware file, including: The working BMC sends the first control information to the liquid cooling chip; wherein the working BMC is provided with a first control interface, and the liquid cooling chip is provided with a second control interface; the first control interface sends the first control information to the second control interface; The liquid cooling chip enters a burning mode based on the first control information; The working BMC updates the firmware file to the liquid cooling chip through the first working interface.

3. The method according to claim 2, characterized in that After the working BMC updates the firmware file to the liquid cooling chip through the first working interface, the method further includes: The working BMC reads and writes each sector of the liquid cooling chip based on the first working interface to obtain a reading and writing result; Verifying the read and write results to obtain verification results; Based on the verification result, the firmware update result is obtained.

4. The method according to claim 3, characterized in that The step of verifying the read and write results to obtain the verification results includes: Generate a first verification code based on the read and write results; Obtaining a second verification code of the firmware file corresponding to each sector; The first verification code is compared with the second verification code to obtain a comparison result.

5. The method according to claim 4, characterized in that The obtaining the firmware update result based on the verification result includes: If the comparison result of each sector is consistent, the firmware of each sector is updated successfully; If the comparison result of any of the sectors is inconsistent, the firmware update of the liquid cooling chip fails, and the firmware of the liquid cooling chip is updated again until the firmware update of each of the sectors is successful.

6. A circuit for updating firmware based on BMC, characterized in that: The circuit is used to implement the method according to any one of claims 1 to 5, comprising: Two mutually redundant BMCs, based on the two mutually redundant BMCs, determine a working BMC; A liquid cooling chip, wherein the liquid cooling chip is respectively connected to the two mutually redundant BMCs; The liquid cooling chip is connected to the working BMC through a working interface to form a working circuit; The working interface includes a first working interface and a second working interface; the working BMC is provided with the first working interface, the liquid cooling chip is provided with the second working interface, and the first working interface and the second working interface are connected via a switching interface; The first working interface includes a first UART interface and a first I2C interface, the second working interface includes a second UART interface and a second I2C interface; the switching interface includes a first switching interface and a second switching interface; The first UART interface is connected to the second UART interface via the first switching interface; The first I2C interface is connected to the second I2C interface via a second switching interface; The working BMC is provided with a first control interface, the liquid cooling chip is provided with a second control interface, and the first control interface is connected to the second control interface.

Citation Information

Patent Citations

  • Remote upgrading method, system and device for BMC firmware

    CN112130876A

  • Apparatus, system, and method for firmware update of redundant controllers

    CN1996254A