Firmware upgrading method and device, electronic equipment and storage medium

By separating the BMC firmware image and metadata to generate an index file, the problem of long BMC firmware upgrade time is solved, enabling efficient on-demand upgrades and upgrades for multiple device types, and reducing maintenance costs.

CN121255263APending Publication Date: 2026-01-02SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202511323670.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-09-16
Publication Date
2026-01-02

AI Technical Summary

Technical Problem

In the existing technology, firmware upgrades for the Baseboard Management Controller (BMC) use a full package upgrade method, which results in a long upgrade time and low efficiency.

Method used

By separating the firmware image and metadata, an index file is generated, enabling on-demand downloads and upgrades, avoiding the transmission of irrelevant data, and improving upgrade efficiency.

Benefits of technology

By downloading index files and target firmware images on demand, memory and storage pressure is reduced, irrelevant data transfer is avoided, firmware upgrade efficiency is improved, and maintenance costs for multiple device types are reduced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121255263A_ABST
    Figure CN121255263A_ABST
Patent Text Reader

Abstract

The invention discloses a firmware upgrading method and device, electronic equipment and a storage medium, and relates to the technical field of servers, the method comprises the following steps: receiving a confirmation request from a substrate management controller; when it is determined that firmware upgrading is supported based on the confirmation request, confirmation information is sent; receiving each piece of original version information of a plurality of original firmware mirror images sent by the substrate management controller based on the confirmation information; searching the highest version information on which each piece of original version information depends in a preset mapping relation library; determining at least one original firmware mirror image to be upgraded according to the dependent highest version information; obtaining a storage path of mirror image identification information and a target firmware mirror image corresponding to each piece of original firmware to be upgraded; and generating an index file according to the mirror image identification information and the storage path, and sending the index file to the substrate management controller. According to the method and the device, the problems of long firmware upgrading time consumption and low upgrading efficiency caused by large volume of a full package for firmware upgrading are solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of server technology, and in particular to a firmware upgrade method, apparatus, electronic device, and storage medium. Background Technology

[0002] With the continuous development of artificial intelligence technology, server business functions have undergone tremendous changes. To meet different business needs, servers for various application scenarios are emerging in large numbers. As a service-specific management and control unit, the Baseboard Management Controller (BMC) is also constantly adjusting its business functions, which inevitably requires frequent firmware upgrades to meet the ever-growing new demands.

[0003] In related technologies, a full package upgrade method is typically used, where the entire BMC firmware is packaged into the BMC in a specific format. The BMC's firmware upgrade module performs necessary security checks on the firmware package, then performs firmware erasure and flashing to complete the firmware upgrade. However, this method results in a long upgrade time and low efficiency due to the large size of the full package. Summary of the Invention

[0004] This application provides a firmware upgrade method, apparatus, electronic device, and storage medium to at least solve the problem in the related art that the large size of the full firmware upgrade package results in long firmware upgrade time and low upgrade efficiency.

[0005] This application provides a firmware upgrade method applied to a server. The method includes: receiving a confirmation request from a baseboard management controller, the confirmation request being used to confirm whether the server supports firmware upgrades by the baseboard management controller; if the server supports firmware upgrades by the baseboard management controller based on the confirmation request, sending confirmation information to the baseboard management controller; receiving original version information of each of a plurality of original firmware images sent by the baseboard management controller based on the confirmation information, the plurality of original firmware images being firmware images corresponding to the current firmware of the baseboard management controller; searching for the highest version information that each original version information depends on in a preset mapping relationship library based on each original version information; determining at least one original firmware image to be upgraded from the plurality of original firmware images based on the highest version information that each original version information depends on; obtaining image identification information and the storage path of the target firmware image corresponding to each of the at least one original firmware image to be upgraded, the target firmware image being the upgraded firmware image corresponding to the original firmware image to be upgraded; generating an index file based on the image identification information and the storage path, and sending the index file to the baseboard management controller, so that the baseboard management controller can obtain at least one target firmware image based on the index file and upgrade the current firmware.

[0006] This application also provides a firmware upgrade method applied to a baseboard management controller. The method includes: receiving a firmware upgrade request sent by a client, the firmware upgrade request indicating that the current firmware of the baseboard management controller be upgraded, the current firmware corresponding to multiple original firmware images; sending a confirmation request to a server according to the firmware upgrade request, the confirmation request being used to confirm whether the server supports firmware upgrade of the baseboard management controller; when receiving confirmation information from the server, and determining according to the confirmation information that the server supports firmware upgrade of the baseboard management controller, obtaining the original version information of each of the multiple original firmware images; sending the original version information of each of the multiple original firmware images to the server; receiving an index file generated and sent by the server based on the original version information, wherein the index file includes image identification information of at least one original firmware image to be upgraded among the multiple original firmware images, and the storage path of the target firmware image corresponding to each original firmware image to be upgraded; obtaining at least one target firmware image based on the image identification information and the storage path; and upgrading the current firmware of the baseboard management controller based on at least one target firmware image.

[0007] This application also provides a firmware upgrade device applied to a server. The firmware upgrade device includes: a transceiver module, configured to receive a confirmation request from a baseboard management controller, the confirmation request being used to confirm whether the server supports firmware upgrades by the baseboard management controller; when it is determined based on the confirmation request that firmware upgrades by the baseboard management controller are supported, sending confirmation information to the baseboard management controller; and receiving the original version information of each of a plurality of original firmware images sent by the baseboard management controller based on the confirmation information, wherein the plurality of original firmware images are firmware images corresponding to the current firmware of the baseboard management controller.

[0008] The processing module is used to find the highest version information that each original version information depends on in the preset mapping relationship library based on each original version information; and to determine at least one original firmware image to be upgraded from multiple original firmware images based on the highest version information that each original version information depends on.

[0009] The transceiver module is also used to obtain the image identification information and the storage path of the target firmware image for each original firmware to be upgraded in at least one original firmware image to be upgraded. The target firmware image is the upgraded firmware image corresponding to the original firmware image to be upgraded.

[0010] The generation module is used to generate index files based on the image identifier information and storage path.

[0011] The transceiver module is also used to send the index file to the baseboard management controller, so that the baseboard management controller can obtain at least one target firmware image based on the index file and upgrade the current firmware.

[0012] This application also provides a firmware upgrade device applied to a baseboard management controller. The firmware upgrade device includes: a receiving module for receiving a firmware upgrade request sent by a client, the firmware upgrade request indicating an upgrade to the current firmware of the baseboard management controller, the current firmware corresponding to multiple original firmware images; a sending module for sending a confirmation request to a server based on the firmware upgrade request, the confirmation request confirming whether the server supports firmware upgrades for the baseboard management controller; an upgrade module for obtaining the original version information of each of the multiple original firmware images when receiving confirmation information from the server and determining that the server supports firmware upgrades for the baseboard management controller based on the confirmation information; the sending module is further configured to send the original version information of each of the multiple original firmware images to the server; the receiving module is further configured to receive an index file generated and sent by the server based on the original version information, wherein the index file includes image identification information of at least one original firmware image to be upgraded among the multiple original firmware images, and the storage path of the target firmware image corresponding to each original firmware image to be upgraded; the upgrade module is further configured to obtain at least one target firmware image based on the image identification information and the storage path; and upgrade the current firmware of the baseboard management controller based on at least one target firmware image.

[0013] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for executing the computer program to implement the steps of any of the above firmware upgrade methods.

[0014] This application also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above-described firmware upgrade methods.

[0015] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the above-described firmware upgrade methods.

[0016] This application allows the server to generate an index file containing only the image identifier and path of the firmware image to be upgraded, and then send the index file to the baseboard management controller. Therefore, the baseboard management controller only needs to download a very small index file and use it to download the firmware image on demand. Furthermore, it only needs to cache the index file and the target firmware image, significantly reducing memory and storage pressure. Simultaneously, it avoids transmitting large amounts of irrelevant data (e.g., the original firmware image that does not require upgrading), improving firmware upgrade efficiency. In addition, multiple firmware images can be packaged independently, enabling on-demand upgrades and greatly improving upgrade efficiency. This allows the same firmware image to be used to upgrade baseboard management controllers for multiple device types, reducing the maintenance costs of multiple overall firmware versions and further improving firmware upgrade efficiency. Attached Figure Description

[0017] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0018] Figure 1 A topology diagram of a firmware upgrade system provided in this application embodiment;

[0019] Figure 2 A flowchart illustrating a firmware upgrade method provided in an embodiment of this application;

[0020] Figure 3 A flowchart illustrating another firmware upgrade method provided in this application embodiment;

[0021] Figure 4 An interactive schematic diagram of another firmware upgrade method provided in an embodiment of this application;

[0022] Figure 5 A device structure block diagram of a firmware upgrade apparatus provided in this application embodiment;

[0023] Figure 6 A device structure block diagram of another firmware upgrade apparatus provided in the embodiments of this application;

[0024] Figure 7 This is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0025] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0026] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0027] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0028] The embodiments of this application are applied to the scenario of firmware upgrade for substrate management and control.

[0029] In related technologies, the firmware of the board management controller is upgraded using a full package method. This method requires erasing and rewriting the entire board, which is time-consuming and has low upgrade efficiency.

[0030] In addition, incremental differential upgrades of the baseboard management controller's firmware can be used, transmitting only the differential packet between the old and new firmware images, significantly reducing the size of the firmware image package. When the baseboard management controller receives this differential packet, it merges the old firmware and the differential packet using a differential algorithm to generate the new firmware, thus upgrading the baseboard management controller's firmware. However, this method is highly dependent on the currently running firmware version. If the current firmware version is corrupted or has problems, and the new firmware image depends on it, it may lead to upgrade failure or abnormal device startup. Furthermore, this method has high requirements for network transmission reliability; if the differential packet is corrupted during transmission, it may cause upgrade failure, requiring the entire new firmware image to be downloaded again.

[0031] To address the aforementioned technical issues, this application provides a firmware upgrade method that achieves low-overhead device upgrade management by separating the firmware image and metadata of the baseboard management controller. Specifically, it dynamically downloads an updatable firmware index file based on the device information of the baseboard management controller and obtains the firmware image (also known as the firmware image entity) from the index file to perform the firmware upgrade. This method can upgrade only the firmware images that need to be upgraded in the current firmware of the baseboard management controller, without upgrading other firmware images. Therefore, upgrading the baseboard management controller only requires downloading a very small index file and firmware entity, greatly reducing memory and storage pressure, avoiding the transfer of large amounts of irrelevant data, and significantly improving upgrade efficiency.

[0032] The following is based on Figure 1 The method provided in this application embodiment is described using the firmware upgrade system shown as an example.

[0033] like Figure 1 As shown, Figure 1 This is a topology diagram of a firmware upgrade system provided in an embodiment of this application. Figure 1 In the firmware upgrade system 100, there are baseboard management controller 101, server 102 and client 103.

[0034] The Baseboard Management Controller (BMC) 101 is a dedicated microcontroller integrated on the server motherboard, operating independently of the server's main processor and operating system. The BMC is also known as the device-side component. As the runtime environment for the firmware image, the BMC primarily comprises three modules: a firmware upgrade module, a security verification module, and a hardware abstraction layer.

[0035] The firmware upgrade module communicates directly with server 102, reporting device information to the server. Simultaneously, it receives and parses the index file sent by the server, extracts the firmware image information to be updated, and downloads the corresponding firmware image as needed.

[0036] The security verification module is used to verify the integrity and source credibility of index files and firmware images, prevent related files from being illegally tampered with, and support device-side signature verification.

[0037] The hardware abstraction layer provides a unified interface for hardware-related operations, such as reading device identifiers and performing firmware flashing, and returns the flashing result after the firmware flashing is completed; when the upgrade fails, it performs version rollback.

[0038] Server 102 can be any device with communication and computing capabilities. A server is a dedicated hardware device used to provide computing, storage, and networking services. The server is deployed with a shared component repository. This shared component repository centrally manages firmware components (also known as firmware images), enabling flexible configuration and efficient upgrades of baseboard management controllers for multiple device models. The shared component repository includes a dynamic index generation engine, a metadata management module, a secure signature module, a component storage management module, and a storage service module.

[0039] The dynamic index generation engine is used to match the target firmware image that can be upgraded based on the current firmware information reported by the baseboard management controller, and to perform dependency analysis to check the compatibility between firmware images and avoid upgrade conflicts that could cause device malfunctions. It also provides an incremental selection strategy for firmware images: if a differential package of the old and new versions of the firmware image exists, it returns the differential package information; otherwise, it returns the target firmware image (full package) information.

[0040] The metadata management module is used to define the upgrade strategy of the baseboard management controller for each device model (such as the allowed firmware version range, firmware dependencies, etc.), record the hash value, signature, dependencies, and firmware image query for each firmware image.

[0041] The secure signature module is used to individually sign each firmware image to ensure the source is trustworthy; to sign dynamically generated index files to prevent index files from being tampered with; and to support secure management and storage of private keys.

[0042] The component storage management module is used to store the base firmware image (full firmware image package) and the firmware image differential package (when the difference between the old and new firmware versions is small, it supports generating differential packages of the old and new firmware versions). It also supports backtracking of historical firmware image versions.

[0043] The storage service module (also known as the content delivery network storage service module) is used to cache firmware images through edge nodes to reduce download latency; it supports multi-region redundancy to ensure that firmware images are still accessible when servers fail; and it uses Hypertext Transfer Protocol (HTTP) to effectively improve the parallel download efficiency of Togo firmware images.

[0044] Client 103 can be a client of the baseboard management controller. Client 103 can be used to send firmware upgrade requests to baseboard management controller 101.

[0045] Figure 1 The firmware upgrade system illustrated is for illustrative purposes only and is not intended to limit the technical solutions of this application. Those skilled in the art should understand that, in specific implementations, the firmware upgrade system may include more devices, without limitation.

[0046] The embodiments of this application provide a firmware upgrade method, applied to Figure 1 The server shown is as follows: Figure 2 As shown, Figure 2 The following is a flowchart illustrating a firmware upgrade method provided in an embodiment of this application. The firmware upgrade method includes the following steps:

[0047] S201, Receive confirmation request from the board management controller.

[0048] The confirmation request is used to confirm whether the server supports firmware upgrades for the baseboard management controller.

[0049] In one example, when the confirmation request is the first confirmation request, the confirmation request includes the target device type and target device identifier of the board management controller.

[0050] In another example, when the confirmation request is not the first confirmation request, the confirmation request includes the target device identifier of the board management controller.

[0051] For example, the client sends a firmware upgrade request to the baseboard management controller. The baseboard management controller receives the firmware upgrade request and determines whether it is the first firmware upgrade request. If it is determined to be the first firmware upgrade request, it generates a confirmation request based on the device type and device identifier carried in the firmware upgrade request and sends the confirmation request to the server.

[0052] If it is determined that the firmware upgrade request is not the first firmware upgrade request, a confirmation request is generated based on the device identifier carried in the firmware upgrade request, and a confirmation request is sent to the server.

[0053] S202, when it is determined that the firmware upgrade of the baseboard management controller is supported based on the confirmation request, a confirmation message is sent to the baseboard management controller.

[0054] The confirmation information is used to instruct the server to support firmware upgrades for the target device type's baseboard management controller.

[0055] In some optional implementations, when the confirmation request is the first confirmation request, it is detected whether the baseboard management controller of the target device type supports firmware upgrades; if it is detected that the baseboard management controller of the target device type supports firmware upgrades, the target device identifier is stored in a preset storage table, and confirmation information is sent to the baseboard management controller.

[0056] The preset storage table is used to store multiple device identifiers that support firmware upgrades.

[0057] Optionally, if a firmware upgrade is detected that does not support the target device type of the baseboard management controller, an exception message is generated based on the target device identifier and sent to the baseboard management controller.

[0058] The exception information is used to indicate that the server does not support firmware upgrades for the baseboard management controller of the target device type.

[0059] In some optional implementations, when the confirmation request is not the first confirmation request, the system queries a preset storage table to see if the target device identifier is stored; if the target device identifier is found, it is determined that the firmware upgrade is supported by the baseboard management controller, and confirmation information is sent to the baseboard management controller.

[0060] The default storage table stores multiple device identifiers that support firmware upgrades.

[0061] For example, when the server determines that it supports firmware upgrades for the baseboard management controller based on the confirmation request, it sends confirmation information to the baseboard management controller.

[0062] S203, Receive the original version information of each of the multiple original firmware images sent by the baseboard management controller based on confirmation information.

[0063] Among them, multiple original firmware images are firmware images corresponding to the current firmware of the baseboard management controller.

[0064] For example, after receiving the confirmation information, the baseboard management controller obtains the original version information of each of the multiple original firmware images included in the baseboard management controller, and sends the original version information of each original firmware image to the server. The server receives the original version information of each of the multiple original firmware images sent by the baseboard management controller based on the confirmation information.

[0065] The firmware of the baseboard management controller in this application adopts a firmware image segmentation and packaging strategy, that is, the firmware is not a single firmware image, but is composed of multiple firmware images. For example, the multiple firmware images may include a universal boot loader firmware image (uboot), a secondary program loader firmware image (SPL), a kernel firmware image (kernel), and a root file system firmware image (rootfs).

[0066] Understandably, multiple firmware images are packaged independently, which enables on-demand upgrades, greatly improving upgrade efficiency. Furthermore, the same firmware image can be used to upgrade baseboard management controllers of various device types, reducing the maintenance costs of multiple overall firmware versions and improving upgrade efficiency.

[0067] S204, based on each original version information, search in the preset mapping relationship library for the highest version information that each original version information depends on.

[0068] The preset mapping relationship library includes the highest version information that each original version information depends on, that is, the target version information that each original version information can be upgraded to.

[0069] For example, when the original version information of a firmware image is version 1.1, the highest version information that each original version information depends on is version 1.3; when the original version information is version 1.2, the highest version information that each original version information depends on is version 1.2, that is, the firmware image cannot be directly upgraded from the original version information of version 1.2 to version 1.3.

[0070] S205, based on the highest version information that each original version information depends on, determines at least one original firmware image to be upgraded from multiple original firmware images.

[0071] Among them, at least one original firmware image to be upgraded is an upgradable firmware image. For example, if there is an original firmware image in the preset mapping relationship library whose original version information depends on the highest version information that is higher than the original version information, then the original firmware image is determined to be an original firmware image to be upgraded.

[0072] S206, Obtain the corresponding image identification information and the storage path of the target firmware image for each original firmware to be upgraded in at least one original firmware image to be upgraded.

[0073] The target firmware image is the upgraded firmware image corresponding to the original firmware image to be upgraded.

[0074] Image identification information and storage path can also be referred to as metadata of a firmware image.

[0075] For example, the server searches for the image identification information and the storage path of the target firmware image corresponding to each original firmware image to be upgraded in a preset mapping relationship library, based on at least one original firmware image to be upgraded.

[0076] S207: Generate an index file based on the image identification information and storage path, and send the index file to the baseboard management controller so that the baseboard management controller can obtain at least one target firmware image based on the index file and upgrade the current firmware.

[0077] The index file includes image identification information for each original firmware image to be upgraded and the storage path of the target firmware image.

[0078] For example, the server generates an index file based on the image identifier information and storage path, and sends the index file to the baseboard management controller. The baseboard management controller generates at least one download request based on the index file and sends the download requests to the server sequentially. Then, the server downloads at least one target firmware image based on the download requests and sends the at least one target firmware image to the baseboard management controller, so that the baseboard management controller can obtain at least one target firmware image based on the index file and upgrade the current firmware.

[0079] Based on the above Figure 2The method involves the server receiving a confirmation request from the baseboard management controller; determining, based on the confirmation request, that the baseboard management controller is supported for firmware upgrades, and sending confirmation information to the baseboard management controller; receiving the original version information of each of the multiple original firmware images sent by the baseboard management controller based on the confirmation information; searching for the highest version information that each original version information depends on in a preset mapping relationship library based on each original version information; determining at least one original firmware image to be upgraded from the multiple original firmware images based on the highest version information that each original version information depends on; obtaining the corresponding image identification information and the storage path of the target firmware image for each original firmware image to be upgraded in the at least one original firmware image to be upgraded; generating an index file based on the image identification information and the storage path, and sending the index file to the baseboard management controller.

[0080] Because the server can generate an index file containing only the image identifier and path of the firmware image to be upgraded, and send the index file to the baseboard management controller, the baseboard management controller only needs to download a very small index file and use it to download the firmware image on demand. Furthermore, it only needs to cache the index file and the target firmware image, significantly reducing memory and storage pressure. This also avoids transferring large amounts of irrelevant data (e.g., the original firmware image that doesn't need upgrading), improving firmware upgrade efficiency. In addition, multiple firmware images can be packaged independently, enabling on-demand upgrades and greatly improving upgrade efficiency. This allows the same firmware image to be used to upgrade baseboard management controllers for multiple device types, reducing the maintenance costs of multiple overall firmware versions and further improving firmware upgrade efficiency.

[0081] Embodiments of this application provide yet another firmware upgrade method, applied to a baseboard management controller, such as... Figure 3 As shown, Figure 3 The following is a flowchart illustrating another firmware upgrade method provided in this application embodiment, which includes the following steps:

[0082] S301 receives firmware upgrade requests sent by clients.

[0083] The firmware upgrade request is used to instruct the current firmware of the baseboard management controller to be upgraded. The firmware upgrade request carries the identifier of the baseboard management controller and at least one preset image identifier.

[0084] For example, the client sends a firmware upgrade request to the baseboard management controller. The baseboard management controller receives the firmware upgrade request.

[0085] S302 sends a confirmation request to the server based on the firmware upgrade request.

[0086] The confirmation request is used to confirm whether the server supports firmware upgrades for the baseboard management controller.

[0087] For example, the baseboard management controller generates a confirmation request based on the device type of the baseboard management controller and the identifier of the baseboard management controller carried in the firmware upgrade request, and sends the confirmation request to the server.

[0088] S303: When receiving confirmation information from the server and determining that the server supports firmware upgrades for the baseboard management controller based on the confirmation information, obtain the original version information of each original firmware image from multiple original firmware images.

[0089] For example, when the baseboard management controller receives confirmation information generated by the server based on the confirmation request and determines that the server supports the baseboard management controller to perform firmware upgrades, it obtains the original version information of each of the multiple original firmware images.

[0090] Optionally, when the baseboard management controller receives confirmation information generated by the server based on the confirmation request and determines that the server does not support firmware upgrades for the baseboard management controller based on the confirmation information, it sends a first response information to the client. The first response information is used to indicate that the current firmware of the baseboard management controller cannot be upgraded.

[0091] In one example, when it is determined that the server supports firmware upgrades for the baseboard management controller, before obtaining the original version information of each of the multiple original firmware images, it checks whether the firmware upgrade request is the first firmware upgrade request. If the firmware upgrade request is detected as the first firmware upgrade request, an authentication request is sent to the server, so that the server can determine whether it supports firmware upgrades for the baseboard management controller based on the received authentication request, and generate authentication information for the baseboard management controller.

[0092] S304 sends the original version information of each of the multiple original firmware images to the server.

[0093] For example, the baseboard management controller sends the original version information of each of the multiple original firmware images to the server.

[0094] S305, Receive the index file generated and sent by the server based on the original version information.

[0095] For example, the server receives the original version information of each original firmware image, determines the image identification information and storage path of at least one target firmware image based on the original version information, generates an index file, and sends the index file to the baseboard management controller. The baseboard management controller receives the index file.

[0096] S306: Based on the image identification information and storage path, obtain at least one target firmware image.

[0097] The image identification information includes the image identifier of each original firmware image to be upgraded.

[0098] For example, the baseboard management controller obtains at least one target firmware image based on the image identification information and storage path in the index file.

[0099] In one example, the system searches for at least one preset image identifier among multiple image identifiers corresponding to multiple original firmware images to be upgraded included in the index file. The at least one preset image identifier is an image identifier pre-sent by the client. If at least one preset image identifier exists among the multiple image identifiers, a download request corresponding to each target firmware image is generated based on the at least one preset image identifier and the storage path corresponding to each preset image identifier. Each download request is sent to the server, so that the server can obtain at least one target firmware image based on each download request and send the at least one target firmware image to the baseboard management controller. At least one target firmware image is obtained.

[0100] Understandably, download requests can be generated only for preset image identifiers pre-confirmed by the client, thereby reducing invalid data transmission and eliminating the need to download irrelevant firmware images from the index file, thus shortening the upgrade process time. In addition, the firmware images to be upgraded can be filtered before generating download requests, eliminating the need to wait for the full image to be downloaded before filtering locally. This is especially beneficial for large firmware files, significantly reducing the overall upgrade process time and increasing the client's availability time.

[0101] S307, upgrades the current firmware of the baseboard management controller based on at least one target firmware image.

[0102] For example, the baseboard management controller upgrades the current firmware of the baseboard management controller based on at least one target firmware image.

[0103] Based on the above Figure 3 The method involves the baseboard management controller receiving a firmware upgrade request from a client; sending a confirmation request to the server based on the firmware upgrade request; upon receiving confirmation information from the server and determining that the server supports firmware upgrades for the baseboard management controller based on the confirmation information, acquiring and sending the original version information of each of the multiple original firmware images to the server; receiving an index file generated and sent by the server based on the original version information; and acquiring and upgrading the current firmware of the baseboard management controller based on at least one target firmware image, based on the image identification information and storage path in the index file.

[0104] Because the baseboard management controller can obtain an index file containing only the image identifier and path of the firmware image to be upgraded, only a very small index file needs to be downloaded. On-demand download of the firmware image can then be achieved based on this index file, and only the index file and the target firmware image need to be cached, significantly reducing memory and storage pressure. Simultaneously, it avoids transferring large amounts of irrelevant data (e.g., the original firmware image that does not require upgrading), improving firmware upgrade efficiency. Furthermore, multiple firmware images can be packaged independently, enabling on-demand upgrades and greatly improving upgrade efficiency. This allows for the use of the same firmware image to upgrade baseboard management controllers for multiple device types, reducing the maintenance costs of multiple overall firmware versions and further improving firmware upgrade efficiency.

[0105] Embodiments of this application provide another firmware upgrade method applied to a baseboard management controller, such as... Figure 4 As shown, Figure 4 This is an interactive schematic diagram of another firmware upgrade method provided in an embodiment of this application. Figure 4 In the firmware upgrade process, the Baseboard Management Controller (BMC) receives a firmware upgrade request. If it's the first upgrade, it sends a two-way trusted authentication request to the server. If authentication is successful, the authentication information is updated; if authentication fails, the firmware upgrade is aborted and an error message is displayed. The firmware upgrade module obtains information about each component in the current firmware entity and sends it to the server in the form of a metadata list. After receiving the firmware metadata list, the server's dynamic index generation engine module communicates with the metadata management module to obtain device information and the dependencies of the original firmware image, and generates an index file of the metadata for the firmware image to be updated. The security signature module signs the index file and sends it to the dynamic index generation engine. The index generation engine then sends the signed index file to the firmware upgrade module.

[0106] The firmware upgrade module receives the index file and sends it to the security verification module for verification. If the verification fails, the upgrade process is aborted. If the verification succeeds, the firmware upgrade module sends a firmware image download request to the storage service module based on the index file to obtain the corresponding target firmware image. The firmware upgrade module sends the target firmware image to the security verification module for verification. If the verification fails, the upgrade process is aborted. If the verification succeeds, the firmware upgrade module calls the hardware abstraction layer interface to burn the firmware image to the corresponding partition.

[0107] When the firmware upgrade is successful, the local firmware metadata information is updated and an upgrade success message is returned; when the firmware upgrade fails, an upgrade failure message is returned and the firmware is rolled back.

[0108] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0109] Embodiments of this application also provide a firmware upgrade device applied to a server; such as Figure 5 As shown, Figure 5 This application provides a structural block diagram of a firmware upgrade device according to an embodiment of the present application; the firmware upgrade device includes:

[0110] The transceiver module 501 is used to receive an acknowledgment request from the baseboard management controller. The acknowledgment request is used to confirm whether the server supports firmware upgrades for the baseboard management controller. If the server determines that firmware upgrades are supported based on the acknowledgment request, it sends acknowledgment information to the baseboard management controller. The transceiver module 501 receives the original version information of each of the multiple original firmware images sent by the baseboard management controller based on the acknowledgment information. The multiple original firmware images are the firmware images corresponding to the current firmware of the baseboard management controller.

[0111] The processing module 502 is used to search for the highest version information that each original version information depends on in a preset mapping relationship library based on each original version information; and to determine at least one original firmware image to be upgraded from multiple original firmware images based on the highest version information that each original version information depends on.

[0112] The transceiver module 501 is also used to obtain the image identification information and the storage path of the target firmware image for each original firmware to be upgraded in at least one original firmware image to be upgraded. The target firmware image is the upgraded firmware image corresponding to the original firmware image to be upgraded.

[0113] The generation module 503 is used to generate an index file based on the image identification information and storage path.

[0114] The transceiver module 501 is also used to send the index file to the baseboard management controller, so that the baseboard management controller can obtain at least one target firmware image based on the index file and upgrade the current firmware.

[0115] In some optional implementations, when the confirmation request is the first confirmation request, the confirmation request includes the target device type and target device identifier of the baseboard management controller; the transceiver module 501 is specifically used to detect whether the baseboard management controller supports firmware upgrades for the target device type; if it is detected that the baseboard management controller supports firmware upgrades for the target device type, the target device identifier is stored in a preset storage table, and confirmation information is sent to the baseboard management controller.

[0116] In some optional implementations, when the confirmation request is not the first confirmation request, the confirmation request includes the target device identifier of the baseboard management controller; the transceiver module 501 is specifically used to query whether the target device identifier is stored in a preset storage table, the preset storage table stores multiple device identifiers that support firmware upgrades; if the target device identifier is found, it is determined that the baseboard management controller supports firmware upgrades, and confirmation information is sent to the baseboard management controller.

[0117] Embodiments of this application also provide a firmware upgrade device applied to a baseboard management controller; such as Figure 6 As shown, Figure 6 This application provides a structural block diagram of another firmware upgrade device according to an embodiment of the present application; the firmware upgrade device includes:

[0118] The receiving module 601 is used to receive a firmware upgrade request sent by the client. The firmware upgrade request is used to instruct the current firmware of the baseboard management controller to be upgraded. The current firmware corresponds to multiple original firmware images.

[0119] The sending module 602 is used to send a confirmation request to the server according to the firmware upgrade request. The confirmation request is used to confirm whether the server supports the baseboard management controller to perform firmware upgrade.

[0120] The upgrade module 603 is used to obtain the original version information of each original firmware image among multiple original firmware images when it receives confirmation information from the server and determines that the server supports firmware upgrade of the baseboard management controller based on the confirmation information.

[0121] The sending module 602 is also used to send the original version information of each of the multiple original firmware images to the server;

[0122] The receiving module 601 is also used to receive an index file generated and sent by the server based on the original version information. The index file includes the image identification information of at least one original firmware image to be upgraded among multiple original firmware images, and the storage path of the target firmware image corresponding to each original firmware image to be upgraded.

[0123] The upgrade module 603 is also used to obtain at least one target firmware image based on the image identification information and storage path; and to upgrade the current firmware of the baseboard management controller based on the at least one target firmware image.

[0124] In an optional implementation, when it is determined that the server supports firmware upgrades for the baseboard management controller, before obtaining the original version information of each of the multiple original firmware images, the upgrade module 603 is further configured to detect whether the firmware upgrade request is the first firmware upgrade request; if the firmware upgrade request is detected as the first firmware upgrade request, an authentication request is sent to the server, so that the server can determine whether it supports firmware upgrades for the baseboard management controller based on the received authentication request, and generate confirmation information to the baseboard management controller.

[0125] In one optional implementation, the image identification information includes an image identifier for each original firmware image to be upgraded; the upgrade module 603 is specifically used to search for at least one preset image identifier from the multiple image identifiers corresponding to the multiple original firmware images to be upgraded included in the index file, wherein the at least one preset image identifier is an image identifier pre-sent by the client; if at least one preset image identifier exists among the multiple image identifiers, then a download request corresponding to each target firmware image is generated based on the at least one preset image identifier and the storage path corresponding to each preset image identifier; each download request is sent to the server, so that the server obtains at least one target firmware image based on each download request and sends the at least one target firmware image to the baseboard management controller; at least one target firmware image is obtained.

[0126] In one optional implementation, the upgrade module 603 is specifically used to verify whether the version information of each target firmware image is greater than the original version information corresponding to each target firmware image; if the version information of each target firmware image is greater than the original version information corresponding to each target firmware image, then a query message is sent to the server, the query message being used to instruct the server to query the dependency relationship corresponding to the version information of each target firmware image in a preset mapping relationship library; the dependency relationship obtained based on the query message is received from the server; if the version information of each target firmware image and the original version information corresponding to each target firmware image satisfy the dependency relationship, then the current firmware of the baseboard management controller is upgraded based on at least one target firmware image.

[0127] For a description of the features in the embodiment corresponding to the firmware upgrade device, please refer to the relevant description in the embodiment corresponding to the firmware upgrade method, which will not be repeated here.

[0128] Embodiments of this application also provide an electronic device, such as... Figure 7 As shown, Figure 7 This is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application. The electronic device includes a processor 10 and a memory 20, in which a computer program is stored. The processor 10 is configured to run the computer program to perform the steps in any of the firmware upgrade method embodiments described above.

[0129] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described XX method embodiments when it is run.

[0130] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0131] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the firmware upgrade method embodiments described above.

[0132] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the firmware upgrade method embodiments described above.

[0133] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0134] The firmware upgrade method, apparatus, electronic device, and storage medium provided in this application have been described in detail above. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are only intended to help understand the method and core ideas of this application. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. A firmware upgrade method, characterized in that, Applied to a server, the method includes: Receive a confirmation request from the baseboard management controller, the confirmation request being used to confirm whether the server supports firmware upgrades by the baseboard management controller; When it is determined, based on the confirmation request, that firmware upgrade of the baseboard management controller is supported, a confirmation message is sent to the baseboard management controller; The system receives the original version information of each of the multiple original firmware images sent by the baseboard management controller based on the confirmation information, wherein the multiple original firmware images are firmware images corresponding to the current firmware of the baseboard management controller. Based on each of the original version information, the highest version information that each of the original version information depends on is searched in the preset mapping relationship library; Based on the highest version information on which each of the original version information depends, at least one original firmware image to be upgraded is determined from the plurality of original firmware images; Obtain the image identification information and the storage path of the target firmware image for each of the original firmware images to be upgraded in at least one of the original firmware images to be upgraded. The target firmware image is the upgraded firmware image corresponding to the original firmware image to be upgraded. An index file is generated based on the image identification information and the storage path, and the index file is sent to the baseboard management controller so that the baseboard management controller can obtain at least one of the target firmware images based on the index file and upgrade the current firmware.

2. The method according to claim 1, characterized in that, When the confirmation request is the first confirmation request, the confirmation request includes the target device type and target device identifier of the baseboard management controller; when it is determined based on the confirmation request that firmware upgrades are supported for the baseboard management controller, confirmation information is sent to the baseboard management controller, including: Check whether the baseboard management controller of the target device type supports firmware upgrades; If a firmware upgrade is detected by a baseboard management controller that supports the target device type, the target device identifier is stored in a preset storage table, and the confirmation information is sent to the baseboard management controller.

3. The method according to claim 1, characterized in that, When the confirmation request is not the first confirmation request, the confirmation request includes the target device identifier of the baseboard management controller; when it is determined based on the confirmation request that firmware upgrades are supported for the baseboard management controller, sending confirmation information to the baseboard management controller includes: The system queries a preset storage table to see if the target device identifier is stored. The preset storage table stores multiple device identifiers that support firmware upgrades. If the target device identifier is found, it is determined that the firmware upgrade is supported by the baseboard management controller, and the confirmation information is sent to the baseboard management controller.

4. A firmware upgrade method, characterized in that, Applied to a baseboard management controller, the method includes: Receive a firmware upgrade request sent by a client. The firmware upgrade request is used to instruct the current firmware of the baseboard management controller to be upgraded. The current firmware corresponds to multiple original firmware images. Based on the firmware upgrade request, a confirmation request is sent to the server. The confirmation request is used to confirm whether the server supports the firmware upgrade of the baseboard management controller. When the server receives the confirmation information and determines that the server supports firmware upgrades for the baseboard management controller based on the confirmation information, the original version information of each of the multiple original firmware images is obtained. Send the original version information of each of the multiple original firmware images to the server; The server receives an index file generated and sent based on the original version information. The index file includes image identification information of at least one original firmware image to be upgraded from among the multiple original firmware images, and the storage path of the target firmware image corresponding to each original firmware image to be upgraded. Based on the image identification information and the storage path, at least one of the target firmware images is obtained; The current firmware of the baseboard management controller is upgraded based on at least one of the target firmware images.

5. The method according to claim 4, characterized in that, Before obtaining the original version information of each of the multiple original firmware images when it is determined that the server supports firmware upgrades by the baseboard management controller, the method further includes: Detect whether the firmware upgrade request is the first firmware upgrade request; If the firmware upgrade request is detected as the first firmware upgrade request, an authentication request is sent to the server, so that the server can determine whether to support the firmware upgrade of the baseboard management controller based on the received authentication request, and generate confirmation information to the baseboard management controller.

6. The method according to claim 5, characterized in that, The image identification information includes the image identifier of each of the original firmware images to be upgraded; obtaining at least one of the target firmware images based on the image identification information and the storage path includes: The index file includes a search for at least one preset image identifier, which is an image identifier pre-sent by the client. If at least one of the preset image identifiers exists among the multiple image identifiers, then a download request corresponding to each target firmware image is generated based on at least one preset image identifier and the storage path corresponding to each preset image identifier. Each download request is sent to the server, so that the server obtains at least one target firmware image according to each download request and sends at least one target firmware image to the baseboard management controller; Obtain at least one of the target firmware images.

7. The method according to any one of claims 4-6, characterized in that, The upgrade of the current firmware of the baseboard management controller based on at least one of the target firmware images includes: Verify whether the version information of each target firmware image is greater than the original version information corresponding to each target firmware image; If the version information of each target firmware image is greater than the original version information corresponding to each target firmware image, then a query message is sent to the server. The query message is used to instruct the server to query the dependency relationship corresponding to the version information of each target firmware image in the preset mapping relationship library. Receive the dependency relationship obtained based on the query information sent by the server; If the version information of each target firmware image and the original version information corresponding to each target firmware image satisfy the dependency relationship, then the current firmware of the baseboard management controller is upgraded based on at least one target firmware image.

8. A firmware upgrade device, characterized in that, The firmware upgrade device, applied to a server, includes: The transceiver module is configured to receive an acknowledgment request from the baseboard management controller, the acknowledgment request being used to confirm whether the server supports firmware upgrades for the baseboard management controller; if the server determines that firmware upgrades are supported based on the acknowledgment request, it sends acknowledgment information to the baseboard management controller; and receive the original version information of each of a plurality of original firmware images sent by the baseboard management controller based on the acknowledgment information, wherein the plurality of original firmware images are firmware images corresponding to the current firmware of the baseboard management controller. The processing module is used to search for the highest version information that each original version information depends on in a preset mapping relationship library based on each original version information; and to determine at least one original firmware image to be upgraded from multiple original firmware images based on the highest version information that each original version information depends on. The transceiver module is further configured to obtain image identification information and the storage path of the target firmware image corresponding to each of the original firmware images to be upgraded in at least one original firmware image to be upgraded, wherein the target firmware image is the upgraded firmware image corresponding to the original firmware image to be upgraded. The generation module is used to generate an index file based on the image identification information and the storage path; The transceiver module is further configured to send the index file to the baseboard management controller, so that the baseboard management controller can obtain at least one of the target firmware images based on the index file and upgrade the current firmware.

9. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the firmware upgrade method as described in any one of claims 1 to 7 when executing the computer program.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the firmware upgrade method as described in any one of claims 1 to 7.

Citation Information

Cited By

  • Baseboard management controller firmware upgrading method and electronic equipment

    CN121501321A