Method and apparatus for updating server firmware in server, and server

The present disclosure discloses a method and apparatus for updating server firmware in a server. The server is based on a Purley platform, a South Bridge chip of the server is electrically connected to a BMC through an ESPI bus, and the BMC is electrically connected to a firmware memory storing server firmware and a BMC memory through the ESPI bus. An embodiment of the method includes: performing a read operation on an image file for updating the server firmware stored in the BMC memory by using the BMC, when a preset upgrading condition is satisfied; and updating the server firmware stored in the firmware memory based on information read from the read operation. This embodiment achieves an updating of server firmware without additional hardware.

CROSS-REFERENCE TO RELATED APPLICATION

This application is related to and claims priority from Chinese Application No. 201710330722.7, filed on May 11, 2017 and entitled “Method and Apparatus for Updating Server Firmware in Server, and Server”, the entire disclosure of which is hereby incorporated by reference.

TECHNICAL FIELD

The present application relates to the field of computer technology, specifically to the field of server technology, and more specifically to a method and apparatus for updating server firmware in a server, and a server.

BACKGROUND

Firmware refers to software that is embedded in hardware. It stores the most basic parameters of hardware devices in the computer system, in order to provide the most basic and direct hardware control to the system. In the server, it is also necessary to provide hardware control to the system through the firmware. In order to enable the server firmware to provide new functionality or to solve problems associated with the previous version, the server firmware needs to be updated to keep the server in a more stable and secure state.

Existing firmware updating methods may be referred to the schematic structural diagrams shown inFIG. 1andFIG. 2. The Baseboard Management Controller (BMC) is shown inFIG. 1andFIG. 2, which is a dedicated service processor usually used to monitor physical variables of the server such as the temperature, humidity, power supply voltage, fan speed, communication parameters and operation system functions, to enable functions such as diagnostics, console support, configuration management, hardware management and troubleshooting. In the architecture shown inFIG. 1, an image file for updating the firmware is stored in the BMC memory104, and the image file must be loaded into the firmware memory102through the BMC103and the South Bridge chip101to complete the firmware update, so that the updating process must rely on the server's operation to be completed, however, updating the firmware when the server is in operation may affect other functions when the server executes. In the architecture shown inFIG. 2, an image file for updating the firmware is stored in the BMC memory203, and the switching circuit204is connected to the South Bridge chip201when the firmware is not updated. When firmware update is needed, the switching circuit204is switched to be connected to the BMC202. Then, the image file stored in the BMC memory203may be loaded into the main firmware memory205and the backup firmware memory206through the switching circuit204, to complete the update process for the server firmware. This method must depend on the completion of the switching the components connected to the switching circuit204between the Southbridge201and the BMC202, relying on an additional switching circuit. The hardware cost needs to be increased. Therefore, there is a need to improve the existing server firmware update solution.

SUMMARY

The present disclosure provides an improved method and apparatus for updating server firmware in a server, in order to solve the technical problem mentioned in the foregoing Background section.

In a first aspect, an embodiment of the present disclosure provides a method for updating server firmware in a server. The server is based on a Purley platform, a South Bridge chip of the server is electrically connected to a BMC through an ESPI bus, the BMC is electrically connected to a firmware memory storing server firmware and a BMC memory through the ESPI bus, and the method comprises: performing a read operation on an image file for updating the server firmware stored in the BMC memory by using the BMC, when a preset upgrading condition is satisfied; and updating the server firmware stored in the firmware memory based on information read from the read operation.

In some embodiments, before the performing a read operation on an image file for updating the server firmware stored in the BMC memory by using the BMC, the method further comprises: receiving the image file for updating the server firmware remotely uploaded by a user by using a network interface and a serial interface of the BMC, and storing the image file in the BMC memory.

In some embodiments, the upgrading condition comprises restarting the server.

In a second aspect, an embodiment of the present disclosure provides an apparatus for updating server firmware in a server, wherein the server is based on a Purley platform, a South Bridge chip of the server is electrically connected to a BMC through an ESPI bus, the BMC is electrically connected to a firmware memory storing server firmware and a BMC memory through the ESPI bus, and the apparatus comprises: a reading unit, configured to perform a read operation on an image file for updating the server firmware stored in the BMC memory by using the BMC, when a preset upgrading condition is satisfied; and an updating unit, configured to update the server firmware stored in the firmware memory based on information read from the read operation.

In some embodiments, the apparatus further comprises: a receiving unit, configured to receive the image file for updating the server firmware remotely uploaded by a user by using a network interface and a serial interface of the BMC and store the image file in the BMC memory.

In some embodiments, the upgrading condition comprises restarting the server.

In a third aspect, an embodiment of the present disclosure provides a server. The server is based on a Purley platform, and comprises a South Bridge chip, a BMC, a firmware memory storing server firmware and a BMC memory, the South Bridge chip is electrically connected to the BMC through an ESPI bus, and the BMC is electrically connected to the firmware memory and the BMC memory through the ESPI bus, wherein the BMC memory is configured to store an image file for updating server firmware; and the BMC is configured to perform a read operation on the image file for updating server firmware stored in the BMC memory, when a preset upgrading condition is satisfied, and update the server firmware stored in the firmware memory based on information read from the read operation.

In some embodiments, the BMC is further configured to: receive the image file for updating the server firmware remotely uploaded by a user by using a network interface and a serial interface of the BMC and store the image file in the BMC memory.

In some embodiments, the upgrading condition comprises restarting the server.

In a fourth aspect, an embodiment of the present disclosure provides a computer readable storage medium storing a computer program, wherein the computer program, when executed by a processor, causes the processor to perform the method as described in the first aspect.

The method and apparatus for updating server firmware in a server provided by the present disclosure use the Purley platform as a server architecture and use the ESPI bus as a bus for connecting components, so that the BMC only needs to be directly mounted on the South Bridge chip of the server and at the same time electrically connected to the firmware memory storing the server firmware and the BMC memory, to update the server firmware in the firmware memory by using the image file for updating server firmware in the firmware memory when the upgrading condition is satisfied, without using an additional hardware circuit, and achieving an out-of-band upgrading of the server firmware with low cost.

DETAILED DESCRIPTION OF EMBODIMENTS

FIG. 3shows an exemplary system architecture300to which a method or apparatus for updating server firmware in a server of an embodiment of the application may be applied.

As shown inFIG. 3, the system architecture300may include a server301with firmware to be updated, a network302and a firmware server303. The network302is a medium used to provide a communication link between the server301with firmware to be updated and the firmware server303. The network302may include various types of connections, such as wired or wireless communication links or optical fiber cables.

The server301with firmware to be updated may interact with the firmware server303through the network302, to receive an image file for updating server firmware. The firmware server303may be a server that provides a firmware service, for example, a backend server that provides the support for the image file for updating required by the server with firmware to be updated. The backend server may send, based on a request or automatically, the image file for updating to the server301with firmware to be updated.

It needs to be noted that the method for updating server firmware in a server provided by embodiments of the present disclosure is generally executed by the server301with firmware to be updated, and accordingly, the apparatus for updating server firmware in a server is generally provided in the server301with firmware to be updated.

It should be understood that the numbers of the servers with firmware to be updated, the networks and the firmware servers inFIG. 3are merely illustrative. Any number of servers with firmware to be updated, networks and firmware servers may be provided based on the implementation requirements.

With further reference toFIG. 4, a flow400of an embodiment of a method for updating server firmware in a server according to the present disclosure is shown. The server is based on a Purley platform, a South Bridge chip of the server is electrically connected to a BMC through an ESPI bus, and the BMC is electrically connected to a firmware memory and a BMC memory respectively through the ESPI bus. Here, the Purley platform is a server platform newly launched by the Intel Corporation, with a 6-channel and 12-slot DDR4 and a 48-channel PCIe. In addition, the Purley platform also supports QAT (QuickAssist technology). The firmware memory may be a memory storing firmware used by the above server. In practice, the firmware memory may be a read-only memory (ROM), a flash memory (flash), or other types of memories. The BMC (Baseboard Management Controller) is a dedicated service processor that is typically used to monitor physical variables of a server, such as the temperature, humidity, power supply voltage, fan speed, communication parameters and operation system functions, to enable functions such as diagnostics, console support, configuration management, hardware management and troubleshooting. The BMC memory is a memory for providing storage support for the BMC. Types of the BMC memories may also include, but not limited to, ROM, Flash, and the like. The method for updating server firmware in a server comprises the following steps.

Step401, performing a read operation on an image file for updating the server firmware stored in the BMC memory by using the BMC, when a preset upgrading condition is satisfied.

In the present embodiment, an image file for server updating may be pre-stored in the BMC memory, and the image file for server updating may be received by the BMC through the network architecture shown inFIG. 3from a remote device.

In addition, a certain upgrading condition may be preset in an electronic device. When the step401is performed, the electronic device may continuously detect whether the upgrading condition is satisfied, and perform a subsequent step when the upgrading condition is satisfied. Here, the subsequent step is to perform a read operation on an image file for updating the server firmware stored in the BMC memory by using the BMC. The above upgrading condition may be set as needed.

Step402, updating the server firmware stored in the firmware memory based on information read from the read operation.

In the present embodiment, based on the information read from the read operation performed on the image file for updating server firmware in the step401, the electronic device updates the server firmware stored in the firmware memory by using the information.

In some alternative implementations of the present embodiment, before the step401, the method further includes: receiving the image file for updating the server firmware remotely uploaded by a user by using a network interface and a serial interface of the BMC, and storing the image file in the BMC memory. In this implementation, the image file for updating may be remotely obtained through the network interface and the serial interface of the BMC in advance, such that the subsequent firmware updating process may be successfully performed.

In some alternative implementations of the present embodiment, the upgrading condition comprises restarting the server. In this implementation, the upgrading condition is set to be the server restart, so that the firmware updating may be performed while the server is not in full operation. Thus, it may be avoided that other functions will be impacted by the updating of the firmware in the operation of the server, and no additional time is required to update the firmware.

In the method provided in the above embodiment of the present disclosure, since the Purley platform is selected as the server architecture and the ESPI bus is used as the bus for connecting components, the BMC only needs to be directly mounted on the South Bridge chip of the server and electrically connected to both of the firmware memory storing the server firmware and the BMC memory. Then, the server firmware in the firmware memory can be updated by using the image file for updating server firmware in the firmware memory, when the upgrading condition is satisfied, without using an additional hardware circuit, thereby achieving an out-of-band upgrading of the server firmware with a low cost.

With further reference toFIG. 5, the present disclosure provides an embodiment of an apparatus for updating server firmware in a server, as an implementation to the method illustrated in the aboveFIG. 2. The apparatus embodiment corresponds to the method embodiment shown inFIG. 2, and the apparatus may be specifically applied to various servers with firmware upgrading. The server is based on the Purley platform, a South Bridge chip of the server is electrically connected to the BMC through the ESPI bus, and the BMC is electrically connected to the firmware memory storing server firmware and the BMC memory through the ESPI bus. Here, the firmware memory is a memory in the server used to store server firmware. The firmware memory includes but is not limited to a BIOS flash.

As shown inFIG. 5, an apparatus500for updating server firmware in a server of the present embodiment includes: a reading unit501and an updating unit502. Here, the reading unit501is configured to perform a read operation on an image file for updating the server firmware stored in the BMC memory by using the BMC, when a preset upgrading condition is satisfied; and the updating unit502is configured to update the server firmware stored in the firmware memory based on information read from the read operation.

In the present embodiment, the specific processing of the reading unit501and the updating unit502may refer to the step401and the step402in the corresponding embodiment inFIG. 4, and thus the detailed description thereof will be omitted.

In some alternative implementations of the present embodiment, the apparatus500further includes: a receiving unit (not shown), configured to receive the image file for updating the server firmware remotely uploaded by a user by using a network interface and a serial interface of the BMC and store the image file in the BMC memory. The specific processing of this implementation may refer to the related implementation in the corresponding embodiment inFIG. 4, and thus the detailed description thereof will be omitted.

In some alternative implementations of the present embodiment, the upgrading condition comprises restarting the server. The specific processing of this implementation may refer to the related implementation in the corresponding embodiment inFIG. 4, and thus the detailed description thereof will be omitted.

The present disclosure also provides a server. With reference toFIG. 6, a schematic structural diagram of a server600adapted to implement embodiments of the present disclosure is illustrated. The server shown inFIG. 6is merely an example and should not impose any restriction on the functions and the scope of the embodiments of the present disclosure.

As shown inFIG. 6, the server is based on a Purley platform and comprises a South Bridge chip, a Baseboard Management Controller (BMC), a firmware memory storing server firmware and a BMC memory. The South Bridge chip is electrically connected with the BMC through an ESPI bus, and the BMC is electrically connected with the firmware memory and the BMC memory through the ESPI bus. The BMC memory is configured to store an image file for updating server firmware. The BMC is configured to perform a read operation on the image file for updating server firmware stored in the BMC memory, when a preset upgrading condition is satisfied, and update the server firmware stored in the firmware memory based on information read from the read operation.

In particular, according to embodiments of the present disclosure, the process described above with reference to the flow chart may be implemented in a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which comprises a computer program that is tangibly embedded in a machine-readable medium. The computer program comprises program codes for executing the method as illustrated in the flow chart. It should be noted that the computer readable medium in the present disclosure may be computer readable signal medium or computer readable storage medium or any combination of the above two. An example of the computer readable storage medium may include, but not limited to: electric, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, elements, or a combination any of the above. A more specific example of the computer readable storage medium may include but is not limited to: electrical connection with one or more wire, a portable computer disk, a hard disk, a random access memory (RAM), a read only memory (ROM), an erasable programmable read only memory (EPROM or flash memory), a fibre, a portable compact disk read only memory (CD-ROM), an optical memory, a magnet memory or any suitable combination of the above. In the present disclosure, the computer readable storage medium may be any physical medium containing or storing programs which can be used by a command execution system, apparatus or element or incorporated thereto. In the present disclosure, the computer readable signal medium may include data signal in the base band or propagating as parts of a carrier, in which computer readable program codes are carried. The propagating signal may take various forms, including but not limited to: an electromagnetic signal, an optical signal or any suitable combination of the above. The signal medium that can be read by computer may be any computer readable medium except for the computer readable storage medium. The computer readable medium is capable of transmitting, propagating or transferring programs for use by, or used in combination with, a command execution system, apparatus or element. The program codes contained on the computer readable medium may be transmitted with any suitable medium including but not limited to: wireless, wired, optical cable, RF medium etc., or any suitable combination of the above.

The units or modules involved in the embodiments of the present disclosure may be implemented by means of software or hardware. The described units or modules may also be provided in a processor, for example, described as: a processor, comprising a reading unit and an updating unit, where the names of these units or modules do not in some cases constitute a limitation to such units or modules themselves. For example, the updating unit may also be described as “a unit for updating the server firmware stored in the firmware memory based on information read from the read operation.”

In another aspect, the present disclosure further provides a computer-readable storage medium. The computer-readable storage medium may be the computer storage medium included in the apparatus in the above described embodiments, or a stand-alone computer-readable storage medium not assembled into the apparatus. The computer-readable storage medium stores one or more programs. The one or more programs, when executed by a device, cause the device to: perform a read operation on an image file for updating the server firmware stored in the BMC memory by using the BMC, when a preset upgrading condition is satisfied; and update the server firmware stored in the firmware memory based on information read from the read operation.