Method of updating baseboard management controller firmware for fan speed control

When a baseboard management controller (BMC) is used to control a fan speed of a fan unit of a server by executing a firmware with fan parameter data stored in one temporary storage region, the fan parameter data is updated by receiving fan parameter update data and storing the fan parameter update data in another temporary storage region, and updating the fan parameter data using the fan parameter update data after determining that the received fan parameter update data is valid.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority of Taiwanese Patent Application No. 106102030, filed on Jan. 20, 2017.

FIELD

The disclosure relates to a baseboard management controller firmware updating method, and more particularly to a method of updating baseboard management controller firmware for fan speed control.

BACKGROUND

A baseboard management controller (BMC) is a specialized service processor that monitors the physical state of a server using sensors mounted in the server. Among all types of physical state monitoring, the monitoring of heat dissipation is very important to the operation of a server. Generally, a BMC controls the rotary speed(s) of one or more fans that are installed in a server according to a fan speed control algorithm which is included in a BMC firmware in the form of a software program.

Server products of the same series may include several stock keeping units (SKUs) with different hardware configurations, which may require different fan speed control algorithms. For a single BMC firmware to be applicable to different SKUs, multiple fan speed control algorithms corresponding to the different SKUs must be packaged in multiple programs and included in the single BMC firmware, which would thus occupy considerable storage space in a storage device, such as a flash memory device. The BMC firmware generally includes core software codes and fan setting parameters, and either the core software codes or the fan setting parameters may be updated frequently during product development. To edit or adjust the BMC firmware, for instance, with respect to fan setting parameters of the fan speed control algorithm, the BMC firmware must be updated through a burning process and reboot operation, which are quite inconvenient.

Particularly, during development of the server products, the BMC firmware update may be required frequently for optimizing the fan setting parameters of the fan speed control algorithm which are associated with heat dissipation. For trial of a new set of fan setting parameters, update of the BMC firmware would be required to generate a corresponding new version of the BMC firmware by going through the burning process and the reboot operation, consuming significant amount of manpower and time.

SUMMARY

Therefore, an object of the disclosure is to provide a method of updating baseboard management controller firmware for fan speed control that can alleviate at least one of the drawbacks of the prior art.

According to the disclosure, the method of updating baseboard management controller firmware is implemented by a baseboard management control system that includes a storage device, a temporary storage device, and a baseboard management controller. The storage device is for storing therein a firmware associated with operation of a fan unit. The firmware contains fan parameter data that is associated with control of a rotary speed of the fan unit. The temporary storage device is used to store the firmware received from the storage device, and has a first temporary storage region, and a second temporary storage region for storing therein the fan parameter data. The baseboard management controller is coupled to the fan unit, the storage device and the temporary storage device. The baseboard management controller controls the rotary speed of the fan unit by executing the firmware stored in the temporary storage device. The method includes: starting to receive, by the baseboard management controller in response to receipt of an instruction indicating a firmware update operation, fan parameter update data associated with control of the rotary speed of the fan unit, and storing the fan parameter update data thus received in the first temporary storage region of the temporary storage device; determining, by the baseboard management controller after completion of receipt and storage of the fan parameter update data in the first temporary storage region of the temporary storage device, whether or not the fan parameter update data stored in the first temporary storage region of the temporary storage device is valid; and updating, by the baseboard management controller after determining that the fan parameter update data stored in the first temporary storage region of the temporary storage device is valid, the fan parameter data stored in the second temporary storage region using the fan parameter update data stored in the first temporary storage region.

DETAILED DESCRIPTION

Referring toFIG. 1, the embodiment of the method of updating baseboard management controller firmware for fan speed control according to this disclosure is implemented by a baseboard management control system100. In this embodiment, the baseboard management control system100is applied to a server (a computer device, not shown) that includes a fan unit200for heat dissipation of the server. In this embodiment, the fan unit200includes multiple fans; each fan might be controlled to rotate at different speeds. The baseboard management control system100controls operation of the fan unit200to ensure normal operation of the server when the server is in use. The baseboard management control system100includes a temporary storage device2, a storage device3, and a baseboard management controller1coupled to the temporary storage device2, the storage device3and the fan unit200. The baseboard management controller1may operate in an update mode or a normal operation mode, and may be integrated with the temporary storage module2on a management mother board to serve as a management control platform.

The temporary storage device2may for example be, but not limited to, a random access memory (RAM) module, and has a first temporary storage region21and a second temporary storage region22. The temporary storage device2stores therein a state flag that indicates whether or not the baseboard management controller1is in a data receiving state.

The storage device3may for example be, but not limited to, a flash memory module, and stores therein a firmware associated with server motherboard monitoring and operation of the fan unit200. In this embodiment, the firmware contains software codes for fan speed control (FSC) and also fan parameter data (FSC parameter data) that is associated with control of a rotary speed of the fan unit200.

When the server is in use (i.e., being online), the temporary storage device2receives the firmware from the storage device3and stores the same therein (not shown inFIG. 1) for execution. In this embodiment, the fan parameter data is stored in the second temporary storage region22, but this disclosure is not limited thereto. In other embodiments, the fan parameter data may be stored in the first temporary storage region21. In the normal operation mode, the baseboard management controller1controls the rotary speed of the fan unit200by executing the firmware stored in the temporary storage device2.

Further referring toFIG. 2, the embodiment of the method of updating baseboard management controller firmware for fan speed control includes steps S21-S30as described hereinafter.

In step S21, when a user intends to update the fan parameter data of the firmware, the user may operate the server to transmit a first instruction (C1, e.g., an IPMI OEM command indicating a firmware update operation) to the baseboard management controller1through an operating system (not shown) of the server. It is noted that, the user may either directly or remotely operate the server to issue the first instruction (C1).

In step S22, the baseboard management controller1enters the data receiving state in response to receipt of the first instruction (C1), and updates the state flag to a first flag value (e.g., TRUE, but not limited thereto) indicating that the baseboard management controller1is in the data receiving state.

In step S23, the baseboard management controller1starts to receive user desired fan parameter update data associated with control of the rotary speed of the fan unit200from a computer device, which may, but not necessarily, be the server being operating by the user. In this embodiment, the baseboard management controller1stores the fan parameter update data thus received in the first temporary storage region21of the temporary storage device2. In other embodiments where the fan parameter data has been stored in the first temporary storage region21, the fan parameter update data may be stored in the second temporary storage region22. In one embodiment, a direct user may manually operate the server to transmit the fan parameter update data to the baseboard management controller1through the operating system of the server, while in another embodiment, a remote user may transmit the fan parameter update data to the server via network communication, and then remotely operate the server to transmit the same to the baseboard management controller1through the operating system of the server.

In step S24, the baseboard management controller1determines that the fan parameter update data has been received in full thereby upon receipt of the second instruction, and the flow goes to step S25. If the baseboard management controller1does not receive the second instruction, which means that the transmission of the fan parameter update data has not yet finished, the flow goes back to step S23to receive the remaining portion of the fan parameter update data.

It is noted that, in steps S21to S25, the baseboard management controller1operates in the normal operation mode, and controls the rotary speed of the fan unit200by executing the firmware stored in the temporary storage device2with the fan parameter data stored in the second temporary storage region22.

In step S26, the baseboard management controller1switches to operating in the update mode where the baseboard management controller1controls the fan unit200to operate at a predetermined rotary speed (e.g., a maximum rotary speed).

In step S27, the baseboard management controller1updates the fan parameter data stored in the second temporary storage region22using the fan parameter update data stored in the first temporary storage region21by way of, for example, overwriting the fan parameter data with the fan parameter update data, but this disclosure is not limited thereto. After completion of updating the fan parameter data stored in the second temporary storage region22, the baseboard management controller1further updates the firmware stored in the storage device3using the firmware which is stored in the temporary storage device2and which has the updated fan parameter data (i.e., the fan parameter update data). In this embodiment, the fan parameter data which has been updated using the fan parameter update data is stored in the second temporary storage region22in a form of a parameter table, but this disclosure is not limited thereto.

In step S28, the baseboard management controller1updates the state flag stored in the temporary storage device2to a second flag value (e.g., FALSE) which is different from the first flag value and which indicates that the baseboard management controller1is not in the data receiving state.

In step S29, the baseboard management controller1switches back to operating in the normal operation mode, and controls the rotary speed of the fan unit200by executing the firmware which is stored in the temporary storage device2and which has the fan parameter data thus updated and stored in the second temporary storage region22.

In summary, in the method of updating baseboard management controller firmware for fan speed control according to this disclosure, when core software codes of the firmware need no change and only a modification of the fan parameter data of the firmware is required, the baseboard management controller1may be triggered using the first instruction (C1) to enter the data receiving state and the update mode, enabling the user to update the fan parameter data of the firmware at any time as desired without re-burning the whole firmware, even if the server is in use (i.e., being online). After completion of the update of (the fan parameter data of) the firmware, the baseboard management controller1may directly control the rotary speed of the fan unit200using the firmware having the updated fan parameter data without re-initialization. Accordingly, when the user intends to update the fan parameter data of the baseboard management controller1, the conventional burning process which may require rebooting the server may be omitted. In addition, during the updating process of the firmware, the baseboard management controller1controls the fan unit200to temporarily operate at the predetermined rotary speed, and thus operation of the server would not be affected by the update operation, ensuring unaffected use of the server while attempting to optimize the firmware, and minimizing time and manpower required for the update of the fan parameter data of the firmware.