Firmware update method, computer device, storage medium and program product

By sending target requests in the substrate management controller and switching the working mode after receiving wake-up notifications, the problem of delay in firmware update tasks in the low-power mode is solved, and the efficiency and timeliness of firmware updates are improved.

CN119225784BActive Publication Date: 2025-05-13INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411737173.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-29
Publication Date
2025-05-13
Estimated Expiration
2044-11-29

AI Technical Summary

Technical Problem

The firmware update task is delayed in the low power mode of the substrate management controller.

Method used

By periodically sending target requests to the firmware update platform, receiving wake-up notifications switch to a working mode with higher power consumption, performing self-tests and firmware updates when conditions are met.

Benefits of technology

Reduces the resource consumption and preparation time required by the substrate management controller before firmware updates, and improves the efficiency and timeliness of firmware updates.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119225784B_ABST
    Figure CN119225784B_ABST
Patent Text Reader

Abstract

The present invention relates to the field of server technology, and discloses a firmware update method, a computer device, a storage medium, and a program product, including: a baseboard management controller periodically sends a target request to a firmware update platform. The firmware update platform obtains the second version information according to the identification information in the target request, and when it is determined to perform a firmware update operation according to the first version information and the second version information in the target request, a wake-up notification is generated and sent to the baseboard management controller. When the baseboard management controller itself is in the first working mode, it switches to the second working mode, performs a self-check operation in the second working mode, and when the timing time meets the first time indication information in the wake-up notification, obtains the operation result of the self-check operation, and when the operation result is successful and the target file is received, performs the firmware update operation. The present invention can complete the firmware update task in a timely manner.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of servers, and in particular to a firmware updating method, a computer device, a storage medium and a program product. Background Art

[0002] In the field of server technology, the Baseboard Management Controller (BMC) is responsible for managing and monitoring the physical status of the server. These functions can be implemented by the firmware on the BMC. The technicians will fix the vulnerabilities of the firmware or add new functions to the firmware. At this time, in order for the BMC to apply the latest firmware, it is generally necessary to update the firmware.

[0003] In order to reduce resource waste, BMC is usually in low power mode. In low power mode, BMC gives priority to other tasks and the firmware update task will be delayed. Summary of the invention

[0004] In view of this, the present invention provides a firmware update method, apparatus, computer equipment, storage medium and program product to solve the problem of firmware update task being delayed.

[0005] In a first aspect, the present invention provides a firmware update method, the method being executed by a baseboard management controller, the method comprising:

[0006] Periodically sending a target request to a firmware update platform, wherein the target request is used to instruct the firmware update platform to determine whether the baseboard management controller performs a firmware update operation;

[0007] When receiving the wake-up notification sent by the firmware update platform, parsing the wake-up notification to obtain the wake-up operation indication information and the first time indication information, and starting timing;

[0008] When it is determined that the current working mode is the first working mode, according to the wake-up operation instruction information, the baseboard management controller is switched to the second working mode, wherein the power consumption of the first working mode is lower than the power consumption of the second working mode;

[0009] In the second working mode, performing a self-test operation according to preset self-test operation instruction information;

[0010] When it is determined that the timing time meets the first time indication information, obtaining the operation result of the self-check operation;

[0011] When the operation result is successful and the target file sent by the firmware update platform is received, a firmware update operation is performed according to the target file.

[0012] The firmware update method provided by the present invention has the following advantages:

[0013] The baseboard management controller only needs to periodically send target requests to the firmware update platform to allow the firmware update platform to determine whether the firmware update operation needs to be performed. It does not need to perform the judgment operation itself, which can save its own resources. In addition, in the related art, the judgment operation performed by the baseboard management controller may also be delayed due to insufficient resources, resulting in a greater degree of firmware update delay. This solution only requires the baseboard management control to send a target request, which reduces the amount of tasks to be prepared on the baseboard management controller and can reduce the delay problem. Furthermore, when the baseboard management controller receives a wake-up notification, it can perform a wake-up operation and switch to a second working mode with higher power consumption. In this way, in the second working mode, the baseboard management controller can use sufficient resources to complete the firmware update operation as quickly as possible, which is more efficient.

[0014] In an optional implementation, when it is determined that the timing time matches the first time indication information, obtaining the operation result of the self-check operation includes:

[0015] When it is determined that the timing time meets the first time indication information, determining whether the self-check operation is completed;

[0016] When it is determined that the self-check operation is completed and it is determined that no component included in the baseboard management controller fails during the self-check operation, the operation result of the self-check operation is determined to be a successful operation.

[0017] Specifically, by comparing the timing time with the first time indication information, it is ensured that the self-check operation is completed within the predetermined time. Only when the self-check operation is completed and all components are not faulty, the self-check operation is determined to be successful, which can reduce the risk of update failure caused by incomplete self-check.

[0018] In an optional implementation, when it is determined that the self-check operation is not completed, the method further includes:

[0019] Obtaining a first fault code corresponding to a timeout fault;

[0020] generating first fault indication information according to the first fault code;

[0021] The first fault indication information is sent to the firmware update platform to instruct the firmware update platform to execute a fault resolution strategy.

[0022] Specifically, the fault indication information can enable the firmware update platform to solve related faults in a timely manner to improve the firmware update efficiency.

[0023] In an optional implementation, when it is determined that at least one component included in the baseboard management controller fails during the self-check operation, the method further includes:

[0024] Obtain identification information and a fault type corresponding to each faulty component of at least one faulty component;

[0025] Acquire a fault code corresponding to each of the faulty components according to the identification information and the fault type corresponding to each of the faulty components;

[0026] generating second fault indication information according to the fault code corresponding to each of the faulty components;

[0027] The second fault indication information is sent to the firmware update platform to instruct the firmware update platform to execute a fault resolution strategy.

[0028] Specifically, the fault indication information can enable the firmware update platform to solve related faults in a timely manner to improve the firmware update efficiency.

[0029] In an optional implementation, the wake-up operation indication information includes status indication information corresponding to at least one operation object;

[0030] When it is determined that the current working mode is the first working mode, switching the baseboard management controller to the second working mode according to the wake-up operation instruction information includes:

[0031] According to the status indication information corresponding to each of the operation objects, the status of each of the operation objects is set to switch the baseboard management controller to the second operation mode.

[0032] Specifically, by performing a state setting operation through the state indication information of the operation object, only the operation object related to the firmware update operation can be enabled, which can save resources.

[0033] In a second aspect, the present invention provides a firmware update method, which is performed by a firmware update platform, and the method includes:

[0034] receiving a target request sent by a baseboard management controller;

[0035] Parsing the target request to obtain identification information of the baseboard management controller and first version information of the installation firmware;

[0036] Acquire the second version information of the latest firmware according to the identification information of the baseboard management controller;

[0037] Compare the first version information with the second version information to determine whether to perform a firmware update operation;

[0038] When it is determined to perform a firmware update operation, obtaining first time indication information;

[0039] Generate a wake-up notification according to the first time indication information and preset wake-up operation indication information;

[0040] Sending the wake-up notification to the baseboard management controller, and starting timing, wherein the wake-up notification is used to instruct the baseboard management controller to perform a mode switching operation;

[0041] When it is determined that the timing time matches the first time indication information and the fault indication information sent by the baseboard management controller is not received, acquiring a target file matching the second version information according to the second version information;

[0042] The target file is sent to the baseboard management controller so that the baseboard management controller performs a firmware update operation.

[0043] The firmware update method provided by the present invention has the following advantages:

[0044] When the firmware update platform receives the target request, it obtains the second version information of the corresponding latest firmware according to the identification information of the baseboard management controller carried in the target request, and then can compare the first version information and the second version information in the target request to determine whether to perform the firmware update operation. When it is determined to perform the firmware update operation, the baseboard management controller is immediately awakened to perform preparation work, and then the firmware update task is performed. In this way, the baseboard management controller can perform the firmware update operation in a timely manner, which is more efficient.

[0045] In addition, in the related art, the baseboard management controller generally sends a notification to the firmware update platform after the preparation work is completed, and the firmware update platform sends the target file to the baseboard management controller after receiving the notification. However, this solution uses a pre-set rule, that is, when the timing time meets the first time indication information and no fault indication information is received, the target file is directly sent to the baseboard management controller. In this way, in this solution, the baseboard management controller does not need to specifically notify the firmware update platform that the preparation operation has been completed, which can save the resources of the baseboard management controller.

[0046] In an optional implementation, the first version information and the second version information both include a version number and a source code update date;

[0047] The comparing the first version information with the second version information to determine whether to perform a firmware update operation includes:

[0048] Determine whether the first version number in the first version information is consistent with the second version number in the second version information;

[0049] When it is determined that the first version number and the second version number are consistent, it is determined whether to perform a firmware update operation according to a source code update date in the first version information and a source code update date in the second version information.

[0050] Specifically, through layer-by-layer comparison, it can be more accurately determined whether to perform a firmware update operation, thereby avoiding the problem of resource waste caused by recognition errors.

[0051] In an optional implementation, the determining whether the first version number in the first version information is consistent with the second version number in the second version information includes:

[0052] Splitting the first version number according to a preset version number splitting rule to obtain multiple codes corresponding to the first version number and the position of each of the multiple codes corresponding to the first version number in the first version number;

[0053] And, according to the preset version number splitting rule, split the second version number to obtain multiple codes corresponding to the second version number, and the position of each of the multiple codes corresponding to the second version number in the second version number;

[0054] Traversing the multiple codes corresponding to the first version number according to the position of each of the multiple codes corresponding to the first version number in the first version number;

[0055] Each time a code is traversed, a second code is determined from among the multiple codes corresponding to the second version number according to the position of the traversed first code in the first version number and the position of each of the multiple codes corresponding to the second version number in the second version number;

[0056] Determining whether the first encoding and the second encoding are consistent;

[0057] When it is determined that the first encoding is consistent with the second encoding, and the first encoding is the last encoding of the traversal, it is determined that the first version number is consistent with the second version number, and the traversal is stopped.

[0058] Specifically, in the related art, the comparison is generally performed by the string corresponding to the version number, which takes up a lot of resources. However, this solution can improve the accuracy and efficiency of the comparison by splitting the version number into multiple codes and then comparing them separately.

[0059] In an optional embodiment, the method further includes:

[0060] When receiving the fault indication information sent by the baseboard management controller, parsing the fault indication information to obtain a fault code;

[0061] According to the fault code, determining the fault type corresponding to the fault code;

[0062] According to the fault type, a fault resolution strategy corresponding to the fault type is executed.

[0063] Specifically, according to different fault types, corresponding fault resolution strategies are adopted to eliminate faults in a timely manner and complete the firmware update operation with higher efficiency.

[0064] In an optional implementation manner, the fault type includes a hardware fault and / or a timeout fault. When the fault type is a hardware fault, executing a fault resolution strategy corresponding to the fault type according to the fault type includes:

[0065] Acquiring fault indication information corresponding to the fault code;

[0066] Alarm information is generated according to the fault indication information, wherein the alarm information is used to indicate that a fault occurs on the baseboard management controller.

[0067] Specifically, for hardware failures, the alarm information can be used to directly prompt the technicians to solve the problem, so that the failure can be solved in time and the subsequent firmware update operation can be performed as soon as possible, which is more efficient.

[0068] In an optional implementation, when the fault type is the timeout fault, the method further includes:

[0069] Obtaining second time indication information;

[0070] Sending the second time indication information to the baseboard management controller, and starting timing, wherein the second time indication information is used to instruct the baseboard management controller to continue to perform a self-check operation;

[0071] When it is determined that the timing time matches the second time indication information and the fault indication information sent by the baseboard management controller is not received, the target file matching the second version information is obtained according to the second version information and sent to the baseboard management controller.

[0072] Specifically, when a baseboard management controller times out, the firmware update platform can synchronize the time points at which the two (firmware update platform and baseboard management controller) process events by resending the second time indication information to the baseboard management controller. That is, there is no need for the baseboard management controller to send a corresponding notification to the firmware update platform after successfully completing the preparation work, which can save the resources of the baseboard management controller.

[0073] In an optional implementation, acquiring the second version information of the latest firmware according to the identification information of the baseboard management controller includes:

[0074] Determining a target model of the baseboard management controller according to the identification information of the baseboard management controller;

[0075] According to the target model, the second version information of the latest firmware corresponding to the target model is obtained.

[0076] Specifically, the specific model of the baseboard management controller is accurately identified through the identification information of the baseboard management controller. According to the determined target model, the latest firmware version information corresponding to the model is obtained to ensure that each baseboard management controller can obtain the latest firmware that best suits its model.

[0077] In a third aspect, the present invention provides a firmware update device, the device comprising:

[0078] A first sending module, used for periodically sending a target request to a firmware update platform, wherein the target request is used to instruct the firmware update platform to determine whether the baseboard management controller performs a firmware update operation;

[0079] A first parsing module is used for parsing the wake-up notification sent by the firmware update platform, obtaining the wake-up operation indication information and the first time indication information, and starting timing when receiving the wake-up notification sent by the firmware update platform;

[0080] A switching module, configured to switch the baseboard management controller to a second working mode according to the wake-up operation instruction information when the current working mode is determined to be the first working mode, wherein the power consumption of the first working mode is lower than the power consumption of the second working mode;

[0081] An execution module, used for executing a self-test operation according to preset self-test operation instruction information in the second working mode;

[0082] A first acquisition module, configured to acquire an operation result of a self-check operation when it is determined that the timing time meets the first time indication information;

[0083] The execution module is further configured to execute a firmware update operation according to the target file when the operation result is successful and the target file sent by the firmware update platform is received.

[0084] In a fourth aspect, the present invention provides a firmware update device, the device comprising:

[0085] A receiving module, used for receiving a target request sent by a baseboard management controller;

[0086] A second parsing module is used to parse the target request to obtain the identification information of the baseboard management controller and the first version information of the installation firmware;

[0087] A second acquisition module, used to acquire second version information of the latest firmware according to the identification information of the baseboard management controller;

[0088] A determination module, used to compare the first version information with the second version information to determine whether to perform a firmware update operation;

[0089] The second acquisition module is further used to acquire the first time indication information when it is determined to perform the firmware update operation;

[0090] A generating module, configured to generate a wake-up notification according to the first time indication information and preset wake-up operation indication information;

[0091] A second sending module is used to send the wake-up notification to the baseboard management controller, and start timing, wherein the wake-up notification is used to instruct the baseboard management controller to perform a mode switching operation;

[0092] The second acquisition module is further configured to acquire a target file matching the second version information according to the second version information when it is determined that the timing time matches the first time indication information and the fault indication information sent by the baseboard management controller is not received;

[0093] The second sending module is further used to send the target file to the baseboard management controller so that the baseboard management controller performs a firmware update operation.

[0094] In a fifth aspect, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor are communicatively connected to each other, computer instructions are stored in the memory, and the processor executes the firmware update method of the above-mentioned first aspect or any corresponding embodiment thereof by executing the computer instructions.

[0095] In a sixth aspect, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the firmware update method of the above-mentioned second aspect or any corresponding embodiment thereof by executing the computer instructions.

[0096] In a seventh aspect, the present invention provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the firmware update method of the first aspect or any corresponding embodiment thereof.

[0097] In an eighth aspect, the present invention provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the firmware update method of the second aspect or any corresponding embodiment thereof.

[0098] In a ninth aspect, the present invention provides a computer program product, comprising computer instructions, wherein the computer instructions are used to enable a computer to execute the firmware update method of the first aspect or any corresponding embodiment thereof.

[0099] In a tenth aspect, the present invention provides a computer program product, comprising computer instructions, wherein the computer instructions are used to enable a computer to execute the firmware update method of the above-mentioned second aspect or any corresponding embodiment thereof. BRIEF DESCRIPTION OF THE DRAWINGS

[0100] In order to more clearly illustrate the specific embodiments of the present invention or the technical solutions in the related technologies, the drawings required for use in the specific embodiments or the related technical descriptions will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0101] Figure 1 is a schematic diagram of a system architecture according to an embodiment of the present invention;

[0102] Figure 2 is a flowchart of a firmware update method according to an embodiment of the present invention;

[0103] Figure 3 is a schematic diagram of state changes of a baseboard management controller according to an embodiment of the present invention;

[0104] Figure 4 is a flowchart of a firmware update method performed by a baseboard management controller according to an embodiment of the present invention;

[0105] Figure 5is a flowchart of a firmware update method performed by a firmware update platform according to an embodiment of the present invention;

[0106] Figure 6 is a structural block diagram of a firmware updating device according to an embodiment of the present invention;

[0107] Figure 7 is a structural block diagram of another firmware updating device according to an embodiment of the present invention;

[0108] Figure 8 It is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. DETAILED DESCRIPTION

[0109] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present invention.

[0110] The present invention can be implemented by a system consisting of at least one baseboard management controller (BMC) and a firmware update platform. The system architecture can be as follows: Figure 1 As shown, the firmware update platform may be a server or a cluster of servers.

[0111] The embodiment of the present invention provides a firmware update method, which can complete the firmware update task in time by switching the baseboard management controller to a second working mode with higher power consumption to perform the firmware update operation when it is determined that the firmware update operation needs to be performed.

[0112] According to an embodiment of the present invention, a firmware update method embodiment is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.

[0113] In this embodiment, a firmware update method is provided, which can be implemented through information interaction between the above-mentioned baseboard management controller and the firmware update platform. Figure 2 is a flowchart of a firmware update method according to an embodiment of the present invention. Figure 2 As shown, the process includes the following steps:

[0114] Step S201: The baseboard management controller periodically sends a target request to the firmware update platform.

[0115] Specifically, the baseboard management controller can periodically read the metadata of its own installed firmware, and extract the first version information of the installed firmware from the metadata. Among them, the first version information may include the version number, the source code update date, and the source code build number. At the same time, the baseboard management control can obtain its own identification information through the built-in hardware information, wherein the identification information may be a serial number. Further, the baseboard management controller can generate a target request based on the first version information and the serial number. For example, the target request may include: version number (for example: 1.2.3), source code update date (for example: 2024-01-15), source code build number (for example: Build 1234), serial number (for example: SN123456). In addition, the baseboard management controller can also add its own communication address and port information to the target request and send it to the firmware update platform.

[0116] Step S202: the firmware update platform parses the target request to obtain identification information of the baseboard management controller and first version information of the installed firmware.

[0117] Specifically, after receiving the target request, the firmware update platform may parse the target request to obtain identification information, communication address, port information, first version information, etc. of the baseboard management controller.

[0118] In other optional implementations, the firmware update platform may verify whether the target request is complete by checking the digital signature or hash value verification, and perform subsequent operations when it is determined that the target request is complete.

[0119] Step S203: the firmware update platform obtains the second version information of the latest firmware according to the identification information of the baseboard management controller.

[0120] Specifically, the firmware update platform may pre-build a target database, wherein the target database may include a first correspondence table of identification information, model and latest firmware version information, and files corresponding to the latest firmware, etc. Accordingly, the firmware update platform may obtain the second version information according to the following steps:

[0121] Step 1: determining a target model of the baseboard management controller according to identification information of the baseboard management controller.

[0122] Step 2: According to the target model, obtain the second version information of the latest firmware corresponding to the target model.

[0123] Specifically, the firmware update platform determines the target model corresponding to the identification information in the first correspondence table according to the identification information of the baseboard management controller, and then determines the corresponding second version information in the first correspondence table according to the target model.

[0124] Step S204: the firmware update platform compares the first version information with the second version information to determine whether to perform a firmware update operation.

[0125] Specifically, since the update of the version number generally refers to the firmware being operated to fix vulnerabilities, add functions, etc., the source code build number and source code update date indicate not only the vulnerability fixes, the function additions, etc., but also the optimization of the source code, that is, only the source code is modified, but no function changes are involved. Therefore, the firmware update platform can determine whether to perform the firmware update operation in the following manner:

[0126] Step 1: Determine whether the first version number in the first version information and the second version number in the second version information are consistent.

[0127] Specifically, the firmware update platform can split the first version number according to the preset version number splitting rule to obtain multiple codes corresponding to the first version number and the position of each of the multiple codes corresponding to the first version number in the first version number. In addition, the firmware update platform can split the second version number according to the preset version number splitting rule to obtain multiple codes corresponding to the second version number and the position of each of the multiple codes corresponding to the second version number in the second version number. Then, the firmware update platform can traverse the multiple codes corresponding to the first version number according to the position of each of the multiple codes corresponding to the first version number in the first version number (for example, from left to right). For each code traversed, according to the position of the traversed first code in the first version number and the position of each of the multiple codes corresponding to the second version number in the second version number, the second code is determined in the multiple codes corresponding to the second version number (that is, the codes at the same position are determined, for example, the first codes at the leftmost in the version number), and it is determined whether the first code and the second code are consistent. When it is determined that the first code and the second code are consistent, and the first code is the last code traversed, it is determined that the first version number and the second version number are consistent, and the traversal is stopped.

[0128] When it is determined that the first code is inconsistent with the second code, the firmware update platform can determine that the first version number is inconsistent with the second version number and stop traversing. At the same time, the firmware update platform can determine whether the first code is less than the second code, and when it is determined that the first code is less than the second code, determine to perform the firmware update operation, or when it is determined that the first code is greater than or equal to the second code, determine not to perform the firmware update operation.

[0129] When it is determined that the first code is consistent with the second code, and the first code is not the last code to be traversed, the firmware update platform can traverse the next code corresponding to the first version number. And so on, until it is determined that the codes at the same position in the first version number and the second version number are inconsistent, or after traversing all the codes in the first version number, the traversal is stopped. Among them, the preset version number splitting rule can include the composition format of the version number, and the composition format can be XYZ, where X is the major version number, Y is the minor version number, and Z is the revision number.

[0130] The above traversal operation may also be performed based on multiple codes corresponding to the second version number.

[0131] Example 1: The first version number is "1.2.3" and the second version number is "1.3.0", which means that the first version number and the second version number are inconsistent and the second version number is newer.

[0132] Example 2: The first version number is "1.2.3" and the second version number is "2.0.0", indicating that the first version number and the second version number are inconsistent and the second version number is newer.

[0133] Step 2: When it is determined that the first version number and the second version number are consistent, determine whether to perform a firmware update operation according to the source code update date in the first version information and the source code update date in the second version information.

[0134] Specifically, when it is determined that the first version number and the second version number are consistent, the firmware update platform can determine whether the source code update date in the first version information is earlier than the source code update date in the second version information, and if so, determine to perform the firmware update operation, and if not, determine not to perform the firmware update operation. Alternatively, the firmware update platform can determine whether the source code build number in the first version information is less than the source code build number in the second version information, and if so, determine to perform the firmware update operation, and if not, determine not to perform the firmware update operation.

[0135] Step S205: When the firmware update platform determines to execute the firmware update operation, first time indication information is obtained.

[0136] The first time indication information may be a timing duration or a time point.

[0137] Specifically, when the firmware update platform determines to perform a firmware update operation, the first time indication information can be obtained. At the same time, a piece of firmware update information can be generated and recorded according to the identification information, communication address and port information of the baseboard management controller and the second version information.

[0138] Step S206: The firmware update platform generates a wake-up notification according to the first time indication information and the preset wake-up operation indication information.

[0139] Among them, the wake-up operation indication information may include the type of operation instruction, the wake-up operation instruction, and the status indication information corresponding to at least one operation object. The wake-up notification may also include the size, download address or push address of the target file corresponding to the second version information. The firmware update platform can communicate with the baseboard management controller through the Intelligent Platform Management Interface (IPMI) protocol, and accordingly, the wake-up notification can be an IPMI type instruction. The IPMI type instruction mainly includes four parts, namely the Remote Management Control Protocol (RMCP) + message header, IPMI header, IPMI data area and message tail, as shown in Table 1.

[0140] Table 1

[0141]

[0142] The data in the IPMI data area is the wake-up operation instruction information, "Chassis Command" is the type of operation instruction, "Chassis Control Action" is the wake-up operation instruction, and "Wake-on-LAN" is the status indication information of the operation object.

[0143] Step S207: the firmware update platform sends a wake-up notification to the baseboard management controller, and starts timing.

[0144] Specifically, after generating the wake-up notification, the firmware update platform can send the wake-up notification to the corresponding baseboard management controller according to the identification information and port information of the baseboard management controller. The firmware update platform can use an encryption protocol to transmit the wake-up notification, for example, a Secure Sockets Layer (SSL) protocol, a Transport Layer Security (TLS) protocol, etc.

[0145] The firmware update platform may start timing after sending the wake-up notification.

[0146] Step S208: the baseboard management controller analyzes the wake-up notification, obtains the wake-up operation indication information and the first time indication information, and starts timing.

[0147] Specifically, after receiving the wake-up notification, the baseboard management controller may parse the wake-up notification, obtain the wake-up operation indication information and the first time indication information, and start timing.

[0148] Step S209: when the baseboard management controller determines that the current working mode is the first working mode, the baseboard management controller is switched to the second working mode according to the wake-up operation instruction information.

[0149] The power consumption of the first working mode is lower than that of the second working mode. The first working mode may be a low power consumption mode of the baseboard management controller, that is, in the first working mode, the working power consumption of the baseboard management controller is less than a preset power consumption threshold, which can save resources.

[0150] Specifically, the baseboard management controller can determine whether the current mode is the first working mode. If yes, a mode switching operation can be performed, which can be divided into the following two cases:

[0151] Case 1: When the wake-up operation instruction information only includes the type of operation instruction and the wake-up operation instruction, the restart operation can be performed directly, and during the restart operation, all modules of the baseboard management controller can be started. For example, the following operations can be performed: First, start the clock and power management module of the operating system (which can be implemented through the IPMIChassis Power Control instruction), and adjust the clock frequency and voltage of the operating system to ensure that the baseboard management controller can smoothly transition from the first working mode to the second working mode. Then, activate the processor and memory. In addition, the baseboard management controller can start the network interface to ensure that it can communicate with the outside world, and start the power interface to ensure a stable power supply. Start the interface for connecting peripheral devices, such as the Universal Serial Bus (USB) interface. In this case, the relevant code examples are as follows:

[0152] " / / Switch to the second working mode

[0153] void enter_firmware_update_mode() {

[0154] / / Wake up the network interface to ensure communication with the firmware update platform

[0155] ipmi_activate_module(NETWORK_MODULE);

[0156] / / Wake up the memory to ensure that the new firmware can be written

[0157] ipmi_activate_module(STORAGE_MODULE);

[0158] / / Adjust I / O bandwidth to ensure smooth update process

[0159] configure_io_bandwidth();

[0160] }

[0161] }”

[0162] In case 2, when the wake-up operation indication information also includes status indication information corresponding to an operation object, the IPMI Set Power Restore Policy instruction can be used during the restart operation to set the status of each operation object according to the status indication information corresponding to each operation object, so as to switch the baseboard management controller to the second working mode. The operation object may include one or more of the clock and power management module of the operating system, the processor, the memory, the network interface, the power interface, the peripheral interface device (for example, a USB device), etc. The status indication information may be started or shut down. In this case, the relevant code examples are as follows:

[0163] "void ipmi_activate_module(int module){

[0164] switch (module) {

[0165] case NETWORK_MODULE:

[0166] / / Activate the network interface

[0167] ipmi_send_command(IPMI_CHASSIS_CONTROL, NETWORK_POWER_ON);

[0168] break;

[0169] case STORAGE_MODULE:

[0170] / / Activate the memory

[0171] ipmi_send_command(IPMI_CHASSIS_CONTROL, STORAGE_POWER_ON);

[0172] break;

[0173] default:

[0174] break;

[0175] }

[0176] }”

[0177] In some other optional implementations, during the process of switching to the second working mode, the baseboard management controller may enable the network bandwidth adjustment function and the storage I / O bandwidth adjustment function, and the relevant code examples may be as follows:

[0178] " / / Adjust storage I / O bandwidth

[0179] void configure_io_bandwidth() {

[0180] / / Adjust network bandwidth

[0181] system("tc qdisc add dev eth0 root handle 1: htb default 12");

[0182] system("tc class add dev eth0 parent 1: classid 1:1 htb rate 1000mbitburst 15k")

[0183] system("tc class add dev eth0 parent 1:1 classid 1:12 htb rate500mbit burst 10k");

[0184] / / Adjust storage I / O bandwidth

[0185] system("echo '500000'> / sys / class / block / sda / queue / read_bps_limit");

[0186] system("echo '500000'> / sys / class / block / sda / queue / write_bps_limit");

[0187] }”

[0188] Step S210: the baseboard management controller performs a self-check operation in the second working mode according to preset self-check operation instruction information.

[0189] Specifically, the baseboard management controller can, in the second working mode, perform the self-check operation instruction information according to the preset self-check operation instruction information, on the key hardware components such as the processor, memory, power supply, the communication link with the firmware update platform, the log check operation, etc. The memory can include an electrically erasable programmable read-only memory (EEPROM), a memory, a serial peripheral interface (SPI) flash memory, etc.

[0190] During the self-checking operation, the progress information of the self-checking operation will be updated in real time as the self-checking operation is executed, and relevant information of the faulty component, such as identification information of the faulty component, fault type, etc., will be recorded.

[0191] The following are some code examples for performing self-check operations:

[0192] “ / / Perform a self-test

[0193] if (self_test()) {

[0194] / / Start waiting for firmware push

[0195] wait_for_firmware();

[0196] } else {

[0197] / / Send fault indication information

[0198] send_error_signal();

[0199] ”

[0200] Step S211 : when the baseboard management controller determines that the timing time is consistent with the first time indication information, the operation result of the self-check operation is obtained.

[0201] Specifically, when the baseboard management controller determines that the timing duration reaches the self-test timing duration included in the first time indication information, or determines that the current time point is the time point included in the first time indication information, the operation result of the self-test operation can be obtained, and the specific operation is as follows:

[0202] The baseboard management controller can determine whether the self-check operation is completed according to the progress information. When it is determined that the self-check operation is completed and no component included in the baseboard management controller fails during the self-check operation, the operation result of the self-check operation is determined to be successful.

[0203] In some optional implementations, when it is determined that the self-check operation is not completed, the baseboard management controller may perform the following operations:

[0204] A first fault code corresponding to the timeout fault is obtained. A first fault indication information is generated according to the first fault code. The first fault indication information is sent to the firmware update platform to instruct the firmware update platform to execute a fault resolution strategy.

[0205] Specifically, a second correspondence table of fault codes and fault event names may be recorded in the baseboard management controller. Thus, when it is determined that a timeout fault occurs, the fault code corresponding to the timeout fault may be determined in the second correspondence table.

[0206] In some optional implementations, when it is determined that at least one component included in the baseboard management controller fails during the self-check operation, the baseboard management controller may perform the following operations:

[0207] Obtain identification information and a fault type corresponding to each faulty component of at least one faulty component. Obtain a fault code corresponding to each faulty component based on the identification information and the fault type corresponding to each faulty component. Generate second fault indication information based on the fault code corresponding to each faulty component. Send the second fault indication information to the firmware update platform to instruct the firmware update platform to execute a fault resolution strategy.

[0208] Specifically, the baseboard management controller may record a third correspondence table of fault codes, component identification information, and fault types. Therefore, the baseboard management controller may determine the fault code that matches both the identification information and the fault type in the third correspondence table according to the identification information and the fault type of the faulty component.

[0209] In addition to the fault code, the fault indication information may also include relevant information of the fault. For example, the fault indication information may be as follows:

[0210] Platform Event Trap (PET) Message:

[0211] Trap OID: 1.3.6.1.4.1.3183.1.1.1.2

[0212] Sensor Type: 0x07 (Processor)

[0213] Sensor Number: 0x02

[0214] Event Type: 0x03 (Critical Error)

[0215] Event Data: 0x010203 (Processor POST failure)

[0216] Among them, "Platform Event Trap (PET) Message" indicates that the fault indication information is a platform event trap message, "Trap OID" indicates the fault code, "Sensor Type" indicates the type of sensor that detects the fault, "Sensor Number" indicates the number of the sensor that detects the fault, "Event Type" indicates the level of the fault, and "Event Data" indicates the specific information of the fault.

[0217] Step S212: when it is determined that the timing time matches the first time indication information and the fault indication information sent by the baseboard management controller is not received, the firmware update platform obtains a target file matching the second version information according to the second version information.

[0218] The first time indication information may also include a waiting timing duration, where the waiting timing duration is the sum of the self-check timing duration, the information transmission duration and the reserved duration.

[0219] Specifically, when the firmware update platform determines that the timing duration reaches the waiting timing duration in the first time indication information, or determines that the current time is a time point included in the first time indication information, and no fault indication information sent by the baseboard management controller is received during this period of time, it is determined that the baseboard management controller has completed the self-test operation and the firmware update operation can be executed. At this time, the firmware update platform can determine the target file that matches the second version information in the target database based on the second version information.

[0220] In some optional implementations, when the firmware update platform receives the fault indication information sent by the baseboard management controller, the following operations may be performed:

[0221] Parse the fault indication information to obtain the fault code. According to the fault code, determine the fault type corresponding to the fault code. According to the fault type, execute the fault resolution strategy corresponding to the fault type.

[0222] The fault type includes hardware fault and / or timeout fault.

[0223] Specifically, when the fault type is a hardware fault, the firmware update platform can obtain fault indication information corresponding to the fault code. According to the fault indication information, an alarm message is generated, wherein the alarm message is used to indicate that a fault occurs in the baseboard management controller. In this way, the technician can solve the fault in time and reduce the impact on the firmware update task. At the same time, the firmware update platform can obtain the second time indication information, send the second time indication information to the baseboard management controller, and start timing. Among them, the second time indication information may include the self-test timing duration or time point. Similarly, after receiving the second time indication information, the baseboard management controller can continue to perform the self-test operation and perform timing until the timing time meets the second time indication information, and re-acquire the self-test result. When the firmware update platform determines that the timing time meets the second time indication information and does not receive the fault indication information sent by the baseboard management controller, it obtains the target file matching the second version information according to the second version information and sends it to the baseboard management controller. The baseboard management controller can continue to perform the firmware update operation.

[0224] In some other optional implementations, when the first fault indication information is generated in step S211, the latest progress information of the baseboard management controller can be added. The progress information may include the execution progress (which may be expressed as a percentage) of multiple stages (e.g., the processor startup stage, the memory startup stage, etc.). In this way, after receiving the first fault indication information, the firmware update platform can determine the self-check timing duration according to the execution progress indication information corresponding to each stage and the preset time calculation rule, and then generate the second time indication information according to the re-determined self-check timing duration.

[0225] According to the execution progress indication information corresponding to each stage and the preset time calculation rule, the self-check timing duration can be determined by using the following expression:

[0226]

[0227]

[0228] Among them, T is the self-check timing duration, is the estimated processing time of the i-th stage among multiple stages, To implement progress, is the preset basic processing time of the i-th stage, is the preset weight value corresponding to the i-th stage, is the delay factor, The determination method may be: according to the execution progress of the i-th stage, determine the delay factor corresponding to the execution progress of the i-th stage in a preset progress and delay factor correspondence table. For example, when the execution progress is 1, the delay factor is 0.

[0229] In this way, the second time indication information can be re-determined according to the actual execution status of the self-check operation, so that the timing can be made more flexible and in line with the actual situation.

[0230] Step S213: the firmware update platform sends the target file to the baseboard management controller.

[0231] Step S214: When the operation result is successful and the target file sent by the firmware update platform is received, the baseboard management controller performs a firmware update operation according to the target file.

[0232] Specifically, during the firmware update process, the baseboard management controller can use the IPMI Sensor and EventLog command to perform monitoring operations to ensure the stability of the update process. After the baseboard management controller completes the firmware update operation, it can switch back to the first working mode again. Corresponding to the first case in step S209, the relevant code example for switching the first working mode is as follows:

[0233] “ / / Switch to the first working mode

[0234] void restore_low_power_mode() {

[0235] / / Close the network interface module

[0236] ipmi_deactivate_module(NETWORK_MODULE);

[0237] / / Close the storage module

[0238] ipmi_deactivate_module(STORAGE_MODULE);

[0239] }

[0240] Corresponding to the second situation in step S209, the relevant code examples for switching to the first working mode are as follows:

[0241] / / Switch to the first working mode

[0242] void ipmi_deactivate_module(int module) {

[0243] switch (module) {

[0244] case NETWORK_MODULE:

[0245] / / Close the network interface

[0246] ipmi_send_command(IPMI_CHASSIS_CONTROL, NETWORK_POWER_OFF);

[0247] break;

[0248] case STORAGE_MODULE:

[0249] / / Close the memory

[0250] ipmi_send_command(IPMI_CHASSIS_CONTROL, STORAGE_POWER_OFF);

[0251] break;

[0252] default:

[0253] break;

[0254] }

[0255] }”

[0256] like Figure 3 As shown, the baseboard management controller works in the first working mode, and when receiving the wake-up notification, it switches to the second working mode and performs a self-check operation. After the self-check operation is successful, it enters the firmware update, and after the firmware update is completed, it can automatically restore to the first working mode. After the self-check operation fails, the baseboard management controller can automatically restore to the first working mode and wait for the arrival of new time indication information.

[0257] In the firmware update method provided in this embodiment, the firmware update platform in this solution takes on all firmware update pre-operation tasks originally performed by the baseboard management controller except for sending the first version information, which can greatly reduce the workload of the baseboard management controller. Moreover, this division of labor and cooperation method not only improves efficiency, but also ensures that the baseboard management controller only needs to send the first version information in the first working mode, which can save resources. When the baseboard management controller receives the wake-up notification, it immediately performs the wake-up operation, changes its own working mode, and completes the self-test operation within a limited time, and prepares to receive the latest firmware pushed by the firmware update platform. In this way, the firmware update operation can be completed in time, avoiding problems caused by not completing the firmware update operation in time.

[0258] In this embodiment, a firmware update method is provided, which can be executed by the baseboard management controller mentioned above. Figure 4 is a flowchart of a firmware update method according to an embodiment of the present invention. Figure 4 As shown, the process includes the following steps:

[0259] Step S401: periodically sending a target request to the firmware update platform.

[0260] The target request is used to instruct the firmware update platform to determine whether the baseboard management controller performs a firmware update operation.

[0261] The specific processing of step S401 is similar to that of step S201 and will not be repeated here.

[0262] Step S402: when receiving the wake-up notification sent by the firmware update platform, the wake-up notification is parsed to obtain the wake-up operation indication information and the first time indication information, and start timing.

[0263] Step S403: when it is determined that the current working mode is the first working mode, the baseboard management controller is switched to the second working mode according to the wake-up operation instruction information.

[0264] The power consumption of the first working mode is lower than the power consumption of the second working mode.

[0265] Step S404: in the second working mode, a self-check operation is performed according to preset self-check operation instruction information.

[0266] Step S405: when it is determined that the timing time is consistent with the first time indication information, the operation result of the self-check operation is obtained.

[0267] Step S406: When the operation result is successful and the target file sent by the firmware update platform is received, the firmware update operation is performed according to the target file.

[0268] The specific processing from step S402 to step S406 is similar to the specific processing from step S207 to step S211, and will not be repeated here.

[0269] In the firmware update method provided in this embodiment, the baseboard management controller only needs to periodically send a target request to the firmware update platform, so that the firmware update platform can determine whether the firmware update operation needs to be performed. It does not need to perform the judgment operation by itself, which can save its own resources. In addition, in the related art, the judgment operation performed by the baseboard management controller may also be delayed due to insufficient resources of its own, resulting in a greater degree of firmware update delay. This solution only requires the baseboard management controller to send a target request, which reduces the amount of tasks to be prepared on the baseboard management controller and can reduce the delay problem. Furthermore, when the baseboard management controller receives a wake-up notification, it can perform a wake-up operation and switch to a second working mode with higher power consumption. In this way, in the second working mode, the baseboard management controller can use sufficient resources to complete the firmware update operation as quickly as possible, which is more efficient.

[0270] In this embodiment, a firmware update method is provided, which can be executed by the baseboard management controller mentioned above. Figure 5 is a flowchart of a firmware update method according to an embodiment of the present invention. Figure 5 As shown, the process includes the following steps:

[0271] Step S501: receiving a target request sent by a baseboard management controller.

[0272] Step S502: parse the target request to obtain identification information of the baseboard management controller and first version information of the installed firmware.

[0273] Step S503: acquiring the second version information of the latest firmware according to the identification information of the baseboard management controller.

[0274] Step S504: compare the first version information with the second version information to determine whether to perform a firmware update operation.

[0275] Step S505: when it is determined to execute the firmware update operation, first time indication information is obtained.

[0276] Step S506: Generate a wake-up notification according to the first time indication information and the preset wake-up operation indication information.

[0277] Step S507, sending a wake-up notification to the baseboard management controller, and starting timing.

[0278] The wake-up notification is used to instruct the baseboard management controller to perform a mode switching operation.

[0279] Step S508: when it is determined that the timing time matches the first time indication information and the fault indication information sent by the baseboard management controller is not received, a target file matching the second version information is acquired according to the second version information.

[0280] Step S509: sending the target file to the baseboard management controller so that the baseboard management controller performs a firmware update operation.

[0281] The specific processing of steps S501 to S509 is similar to the specific processing of steps S202 to S207 and step S213, and will not be repeated here.

[0282] In the firmware update method provided in this embodiment, when the firmware update platform receives the target request, it obtains the second version information of the corresponding latest firmware according to the identification information of the baseboard management controller carried in the target request, and then, it can compare the first version information and the second version information in the target request to determine whether to perform the firmware update operation. When it is determined to perform the firmware update operation, the baseboard management controller is immediately awakened to perform the preparation work, and then the firmware update task is performed. In this way, the baseboard management controller can perform the firmware update operation in time, which is more efficient. In addition, in the related art, the baseboard management controller generally sends a notification to the firmware update platform after the preparation work is completed, and the firmware update platform sends the target file to the baseboard management controller after receiving the notification. However, this scheme uses a pre-set rule, that is, when the timing time meets the first time indication information and no fault indication information is received, the target file is directly sent to the baseboard management controller. In this way, the baseboard management controller does not need to specifically notify the firmware update platform that the preparation operation has been completed in this scheme, which can save the resources of the baseboard management controller.

[0283] In this embodiment, a firmware update device is also provided, which is used to implement the above-mentioned embodiments and preferred implementation modes, and the descriptions that have been made will not be repeated. As used below, the term "module" can implement a combination of software and / or hardware of a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, the implementation of hardware, or a combination of software and hardware, is also possible and conceivable.

[0284] This embodiment provides a firmware update device, such as Figure 6 As shown, including:

[0285] The first sending module 601 is used to periodically send a target request to the firmware update platform, wherein the target request is used to instruct the firmware update platform to determine whether the baseboard management controller performs a firmware update operation;

[0286] The first parsing module 602 is used to parse the wake-up notification sent by the firmware update platform, obtain the wake-up operation indication information and the first time indication information, and start timing when receiving the wake-up notification sent by the firmware update platform;

[0287] The switching module 603 is used to switch the baseboard management controller to the second working mode according to the wake-up operation instruction information when it is determined that the current working mode is the first working mode, wherein the power consumption of the first working mode is lower than the power consumption of the second working mode;

[0288] The execution module 604 is used to perform a self-check operation according to preset self-check operation instruction information in the second working mode;

[0289] A first acquisition module 605, configured to acquire an operation result of a self-check operation when it is determined that the timing time meets the first time indication information;

[0290] The execution module 604 is further configured to execute the firmware update operation according to the target file when the operation result is successful and the target file sent by the firmware update platform is received.

[0291] In an optional implementation manner, the first acquisition module 605 is specifically configured to:

[0292] When it is determined that the timing time meets the first time indication information, determining whether the self-checking operation is completed;

[0293] When it is determined that the self-check operation is completed and it is determined that no component included in the baseboard management controller fails during the self-check operation, the operation result of the self-check operation is determined to be successful.

[0294] In an optional implementation manner, the first acquisition module 605 is specifically configured to:

[0295] When it is determined that the self-check operation is not completed, obtaining a first fault code corresponding to the timeout fault;

[0296] generating first fault indication information according to the first fault code;

[0297] The first fault indication information is sent to the firmware update platform to instruct the firmware update platform to execute the fault resolution strategy.

[0298] In an optional implementation manner, the first acquisition module 605 is specifically configured to:

[0299] When it is determined that at least one component included in the baseboard management controller fails during the self-check operation, obtaining identification information and a failure type respectively corresponding to each of the at least one failed component;

[0300] Obtaining a fault code corresponding to each faulty component according to identification information and a fault type corresponding to each faulty component;

[0301] generating second fault indication information according to the fault code corresponding to each faulty component;

[0302] The second fault indication information is sent to the firmware update platform to instruct the firmware update platform to execute the fault resolution strategy.

[0303] In an optional implementation, the wake-up operation indication information includes status indication information corresponding to at least one operation object;

[0304] The switching module 603 is specifically used for:

[0305] According to the status indication information corresponding to each operation object, the status of each operation object is set to switch the baseboard management controller to the second operation mode.

[0306] This embodiment provides a firmware update device, such as Figure 7 As shown, including:

[0307] The second parsing module 701 is used to parse the target request to obtain the identification information of the baseboard management controller and the first version information of the installation firmware;

[0308] The second acquisition module 702 is used to acquire the second version information of the latest firmware according to the identification information of the baseboard management controller;

[0309] A determination module 703, configured to compare the first version information with the second version information to determine whether to perform a firmware update operation;

[0310] The second acquisition module 702 is further used to acquire the first time indication information when it is determined to perform the firmware update operation;

[0311] A generating module 704, configured to generate a wake-up notification according to the first time indication information and the preset wake-up operation indication information;

[0312] The second sending module 705 is used to send a wake-up notification to the baseboard management controller and start timing, wherein the wake-up notification is used to instruct the baseboard management controller to perform a mode switching operation;

[0313] The second acquisition module 702 is further configured to acquire a target file matching the second version information according to the second version information when it is determined that the timing time matches the first time indication information and the fault indication information sent by the baseboard management controller is not received;

[0314] The second sending module 705 is further used to send the target file to the baseboard management controller so that the baseboard management controller performs a firmware update operation.

[0315] In an optional implementation, both the first version information and the second version information include a version number and a source code update date;

[0316] The determination module 703 is specifically used for:

[0317] Determine whether the first version number in the first version information and the second version number in the second version information are consistent;

[0318] When it is determined that the first version number and the second version number are consistent, it is determined whether to perform a firmware update operation according to a source code update date in the first version information and a source code update date in the second version information.

[0319] In an optional implementation manner, the determination module 703 is specifically configured to:

[0320] Splitting the first version number according to a preset version number splitting rule to obtain multiple codes corresponding to the first version number and the position of each of the multiple codes corresponding to the first version number in the first version number;

[0321] And, according to a preset version number splitting rule, split the second version number to obtain multiple codes corresponding to the second version number, and the position of each of the multiple codes corresponding to the second version number in the second version number;

[0322] According to the position of each of the multiple codes corresponding to the first version number in the first version number, traverse the multiple codes corresponding to the first version number;

[0323] Each time a code is traversed, the second code is determined from the multiple codes corresponding to the second version number according to the position of the traversed first code in the first version number and the position of each code in the multiple codes corresponding to the second version number in the second version number;

[0324] Determine whether the first code and the second code are consistent;

[0325] When it is determined that the first code is consistent with the second code, and the first code is the last code of the traversal, it is determined that the first version number is consistent with the second version number, and the traversal is stopped.

[0326] In an optional implementation, the device further includes a fault resolution module 706, which is specifically configured to:

[0327] When receiving the fault indication information sent by the baseboard management controller, parsing the fault indication information to obtain a fault code;

[0328] According to the fault code, determine the fault type corresponding to the fault code;

[0329] According to the fault type, execute the fault resolution strategy corresponding to the fault type.

[0330] In an optional implementation manner, the fault type includes a hardware fault and / or a timeout fault, and the fault resolution module 706 is specifically configured to:

[0331] When the fault type is a hardware fault, obtaining fault indication information corresponding to the fault code;

[0332] Alarm information is generated according to the fault indication information, wherein the alarm information is used to indicate that a fault occurs on the baseboard management controller.

[0333] In an optional implementation, the fault resolution module 706 is specifically configured to:

[0334] When the fault type is a timeout fault, obtaining second time indication information;

[0335] Sending second time indication information to the baseboard management controller, and starting timing, wherein the second time indication information is used to instruct the baseboard management controller to continue to perform the self-check operation;

[0336] When it is determined that the timing time matches the second time indication information and the fault indication information sent by the baseboard management controller is not received, the target file matching the second version information is obtained according to the second version information and sent to the baseboard management controller.

[0337] In an optional implementation manner, the second acquisition module 702 is specifically configured to:

[0338] Determining a target model of the baseboard management controller according to the identification information of the baseboard management controller;

[0339] According to the target model, second version information of the latest firmware corresponding to the target model is obtained.

[0340] The further functional description of each of the above modules and units is the same as that of the above corresponding embodiments and will not be repeated here.

[0341] The firmware update device in this embodiment is presented in the form of a functional unit, where the unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that executes one or more software or fixed programs, and / or other devices that can provide the above functions.

[0342] The embodiment of the present invention also provides a computer device having the above Figure 6 or Figure 7 The firmware update device shown.

[0343] See also Figure 8 , Figure 8is a schematic diagram of the structure of a computer device provided by an optional embodiment of the present invention, such as Figure 8 As shown, the computer device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. Various components are connected to each other using different buses for communication, and can be installed on a common mainboard or installed in other ways as needed. The processor can process the instructions executed in the computer device, including instructions stored in or on the memory to display the graphical information of the GUI on an external input / output device (such as, a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple computer devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 8 A processor 10 is taken as an example.

[0344] The processor 10 may be a central processing unit, a network processor or a combination thereof. The processor 10 may further include a hardware integrated circuit. The hardware integrated circuit may be a dedicated integrated circuit, a programmable logic device or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable logic gate array, a general purpose array logic or any combination thereof.

[0345] The memory 20 stores instructions executable by at least one processor 10, so that the at least one processor 10 executes the method shown in the above embodiment.

[0346] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the computer device, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely arranged relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0347] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid state drive; the memory 20 may also include a combination of the above types of memory.

[0348] The computer device further comprises a communication interface 30 for the computer device to communicate with other devices or a communication network.

[0349] The embodiment of the present invention also provides a computer-readable storage medium. The method according to the embodiment of the present invention can be implemented in hardware, firmware, or can be implemented as a computer code that can be recorded in a storage medium, or can be implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and will be stored in a local storage medium through a network download, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state hard disk, etc.; further, the storage medium can also include a combination of the above types of memories. It can be understood that a computer, a processor, a microprocessor controller, or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor, or hardware, the method shown in the above embodiment is implemented.

[0350] A part of the present invention may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present invention through the operation of the computer. Those skilled in the art should understand that the existence of the computer program instruction in a computer-readable medium includes, but is not limited to, a source file, an executable file, an installation package file, etc., and accordingly, the way in which the computer program instruction is executed by the computer includes, but is not limited to: the computer directly executes the instruction, or the computer compiles the instruction and then executes the corresponding compiled program, or the computer reads and executes the instruction, or the computer reads and installs the instruction and then executes the corresponding installed program. Here, the computer-readable medium may be any available computer-readable storage medium or communication medium accessible to the computer.

[0351] Although the embodiments of the present invention have been described in conjunction with the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present invention, and such modifications and variations are all within the scope defined by the appended claims.

Claims

1. A firmware update method, characterized in that: The method is performed by a baseboard management controller, and the method includes: Periodically sending a target request to a firmware update platform, wherein the target request is used to instruct the firmware update platform to determine whether the baseboard management controller performs a firmware update operation; When receiving the wake-up notification sent by the firmware update platform, parsing the wake-up notification to obtain the wake-up operation indication information and the first time indication information, and starting timing; When it is determined that the current working mode is the first working mode, according to the wake-up operation instruction information, the baseboard management controller is switched to the second working mode, wherein the power consumption of the first working mode is lower than the power consumption of the second working mode; In the second working mode, performing a self-test operation according to preset self-test operation instruction information; When it is determined that the timing time meets the first time indication information, obtaining the operation result of the self-check operation; When the operation result is successful and the target file sent by the firmware update platform is received, a firmware update operation is performed according to the target file.

2. The method according to claim 1, characterized in that When it is determined that the timing time meets the first time indication information, obtaining the operation result of the self-check operation includes: When it is determined that the timing time meets the first time indication information, determining whether the self-check operation is completed; When it is determined that the self-check operation is completed and it is determined that no component included in the baseboard management controller fails during the self-check operation, the operation result of the self-check operation is determined to be a successful operation.

3. The method according to claim 2, characterized in that When it is determined that the self-check operation is not completed, the method further includes: Obtaining a first fault code corresponding to a timeout fault; generating first fault indication information according to the first fault code; The first fault indication information is sent to the firmware update platform to instruct the firmware update platform to execute a fault resolution strategy.

4. The method according to claim 2, characterized in that: When it is determined that at least one component included in the baseboard management controller fails during the self-check operation, the method further includes: Obtain identification information and a fault type corresponding to each faulty component of at least one faulty component; Acquire a fault code corresponding to each of the faulty components according to the identification information and the fault type corresponding to each of the faulty components; generating second fault indication information according to the fault code corresponding to each of the faulty components; The second fault indication information is sent to the firmware update platform to instruct the firmware update platform to execute a fault resolution strategy.

5. The method according to any one of claims 1 to 4, characterized in that: The wake-up operation indication information includes status indication information corresponding to at least one operation object; When it is determined that the current working mode is the first working mode, switching the baseboard management controller to the second working mode according to the wake-up operation instruction information includes: According to the status indication information corresponding to each of the operation objects, the status of each of the operation objects is set to switch the baseboard management controller to the second operation mode.

6. A firmware update method, characterized in that: The method is performed by a firmware update platform, and the method includes: receiving a target request sent by a baseboard management controller; Parsing the target request to obtain identification information of the baseboard management controller and first version information of the installation firmware; Acquire the second version information of the latest firmware according to the identification information of the baseboard management controller; Compare the first version information with the second version information to determine whether to perform a firmware update operation; When it is determined to perform a firmware update operation, obtaining first time indication information; Generate a wake-up notification according to the first time indication information and preset wake-up operation indication information; Sending the wake-up notification to the baseboard management controller, and starting timing, wherein the wake-up notification is used to instruct the baseboard management controller to perform a switching operation of an operating mode, the operating mode includes a first operating mode or a second operating mode, and the power consumption of the first operating mode is lower than the power consumption of the second operating mode; When it is determined that the timing time matches the first time indication information and the fault indication information sent by the baseboard management controller is not received, acquiring a target file matching the second version information according to the second version information; The target file is sent to the baseboard management controller so that the baseboard management controller performs a firmware update operation.

7. The method according to claim 6, characterized in that The first version information and the second version information both include a version number and a source code update date; The comparing the first version information with the second version information to determine whether to perform a firmware update operation includes: Determine whether the first version number in the first version information is consistent with the second version number in the second version information; When it is determined that the first version number and the second version number are consistent, it is determined whether to perform a firmware update operation according to a source code update date in the first version information and a source code update date in the second version information.

8. The method according to claim 7, characterized in that The determining whether the first version number in the first version information is consistent with the second version number in the second version information includes: Splitting the first version number according to a preset version number splitting rule to obtain multiple codes corresponding to the first version number and the position of each of the multiple codes corresponding to the first version number in the first version number; And, according to the preset version number splitting rule, split the second version number to obtain multiple codes corresponding to the second version number, and the position of each of the multiple codes corresponding to the second version number in the second version number; Traversing the multiple codes corresponding to the first version number according to the position of each of the multiple codes corresponding to the first version number in the first version number; Each time a code is traversed, a second code is determined from among the multiple codes corresponding to the second version number according to the position of the traversed first code in the first version number and the position of each of the multiple codes corresponding to the second version number in the second version number; Determining whether the first encoding and the second encoding are consistent; When it is determined that the first encoding is consistent with the second encoding, and the first encoding is the last encoding of the traversal, it is determined that the first version number is consistent with the second version number, and the traversal is stopped.

9. The method according to any one of claims 6 to 8, characterized in that: The method further comprises: When receiving the fault indication information sent by the baseboard management controller, parsing the fault indication information to obtain a fault code; According to the fault code, determining the fault type corresponding to the fault code; According to the fault type, a fault resolution strategy corresponding to the fault type is executed.

10. The method according to claim 9, characterized in that The fault type includes a hardware fault and / or a timeout fault. When the fault type is a hardware fault, executing a fault resolution strategy corresponding to the fault type according to the fault type includes: Acquiring fault indication information corresponding to the fault code; Alarm information is generated according to the fault indication information, wherein the alarm information is used to indicate that a fault occurs on the baseboard management controller.

11. The method according to claim 10, characterized in that When the fault type is the timeout fault, the method further includes: Obtaining second time indication information; Sending the second time indication information to the baseboard management controller, and starting timing, wherein the second time indication information is used to instruct the baseboard management controller to continue to perform a self-check operation; When it is determined that the timing time matches the second time indication information and the fault indication information sent by the baseboard management controller is not received, the target file matching the second version information is obtained according to the second version information and sent to the baseboard management controller.

12. The method according to any one of claims 6 to 8, characterized in that: The acquiring the second version information of the latest firmware according to the identification information of the baseboard management controller includes: Determining a target model of the baseboard management controller according to the identification information of the baseboard management controller; According to the target model, the second version information of the latest firmware corresponding to the target model is obtained.

13. A computer device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the firmware update method according to any one of claims 1 to 5, or executes the firmware update method according to any one of claims 6 to 12 by executing the computer instructions.

14. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the firmware update method according to any one of claims 1 to 5, or to execute the firmware update method according to any one of claims 6 to 12.

15. A computer program product, characterized in that The method comprises computer instructions, wherein the computer instructions are used to cause a computer to execute the firmware update method according to any one of claims 1 to 5, or to execute the firmware update method according to any one of claims 6 to 12.

Citation Information

Patent Citations

  • Firmware updating method and device and control method

    CN116679963A

  • Firmware updating method and device of retimer, storage medium and electronic equipment

    CN117435224A