Firmware upgrading method and device, electronic equipment and storage medium
By using differential upgrade algorithms and digital signature verification, the problems of low firmware upgrade efficiency and poor reliability of UBB management boards have been solved, achieving an efficient and stable firmware upgrade process and ensuring the normal operation of the server.
Patent Information
- Application Number
- CN202610128980.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-01-30
- Publication Date
- 2026-03-03
AI Technical Summary
In the existing technology, the firmware upgrade method of UBB management board has the problems of low upgrade efficiency and poor system reliability. This is mainly due to the low bandwidth of traditional bus communication, which makes large-scale firmware upgrades time-consuming and susceptible to interference.
The differential upgrade algorithm is adopted, which generates differential data packets through the master control BMC, and only transmits the difference information between the old and new firmware versions. Combined with digital signature verification, firmware restoration verification and automatic rollback mechanism, the firmware upgrade of the target BMC is realized.
It improves firmware upgrade efficiency, shortens transmission time, reduces the risk of upgrade failure due to transmission interference, ensures system stability and reliability, and avoids serious accidents caused by equipment upgrade failure.
Smart Images

Figure CN121597252A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of firmware upgrade technology, and in particular to a firmware upgrade method, apparatus, electronic device and storage medium. Background Technology
[0002] With the rapid development of cloud computing, artificial intelligence, and high-performance computing, the server architecture of modern data centers is evolving towards high-density, heterogeneous, and large-scale clusters. Against this backdrop, integrating and managing multiple computing nodes and a large number of accelerators such as GPUs (Graphics Processing Units) and DPUs (Data Processing Units) within the server via a universal baseboard (UBB) has become the mainstream technology. As the hardware management and interconnection hub of the entire server, the performance and intelligence level of the UBB management board directly determine the reliability, maintainability, and resource utilization efficiency of large-scale computing clusters.
[0003] In the operation and maintenance of UBB management boards, firmware upgrades are a crucial step in ensuring the secure and stable operation of the server. Currently, firmware upgrades for the UBB management board's BMC (Baseboard Management Controller) primarily employ a full image upgrade scheme, where the complete firmware image file is transferred from the main BMC to the UBB management board's BMC for updating. However, this approach is limited by the communication architecture, which relies on traditional buses such as I²C (Inter-Integrated Circuit), SMBus (System Management Bus), or low-speed USB (Universal Serial Bus), resulting in extremely low effective bandwidth. When the firmware file is large, the complete image transfer process is extremely time-consuming, severely restricting upgrade efficiency. Furthermore, the transmission process is susceptible to interference, leading to upgrade failures and posing a risk to system reliability. Therefore, current firmware upgrade methods suffer from low upgrade efficiency and poor server system reliability. Summary of the Invention
[0004] This application provides a firmware upgrade method, apparatus, electronic device, and storage medium.
[0005] This application provides a firmware upgrade method applied to a target baseboard management controller (BMC) in a server. The target BMC and the master BMC are connected via a bus. The method includes: receiving a differential data packet sent by the master BMC, the differential data packet being generated by the master BMC based on the differences between firmware information of different versions; and upgrading the firmware of the target BMC based on the differential data packet.
[0006] According to one embodiment of this application, before receiving the differential data packet sent by the master control BMC, the method further includes: receiving a version query instruction sent by the master control BMC; and in response to the version query instruction, reading the current version information of the firmware of the target BMC and sending it to the master control BMC.
[0007] According to one embodiment of this application, upgrading the firmware of the target BMC based on the differential data packet includes: verifying the digital signature of the differential data packet; in response to the successful verification of the digital signature, reading second firmware information corresponding to the target BMC from a first cache corresponding to the firmware of the target BMC; determining first firmware information based on the differential data packet and the second firmware information corresponding to the target BMC; the versions corresponding to the first firmware information and the second firmware information are different; upgrading the firmware of the target BMC based on the second cache corresponding to the firmware of the target BMC and the first firmware information; the first cache and the second cache are different caches used to store firmware.
[0008] According to one embodiment of this application, determining the first firmware information based on the differential data packet and the second firmware information corresponding to the target BMC includes: parsing the differential data packet based on a set restoration algorithm to obtain a corresponding instruction sequence; and reading data from the differential data packet and the second firmware information based on the instruction sequence to generate the first firmware information.
[0009] According to one embodiment of this application, upgrading the firmware of the target BMC based on the second cache corresponding to the firmware of the target BMC and the first firmware information includes: writing the first firmware information into the second cache; verifying the first firmware information in the second cache; upgrading the firmware of the target BMC based on the first firmware information in response to the first firmware information verification passing; and restoring the firmware of the target BMC based on the second firmware information in the first cache in response to the first firmware information verification failing.
[0010] According to one embodiment of this application, after verifying the digital signature of the differential data packet, the method further includes: in response to the failure of the digital signature verification, terminating the firmware upgrade of the target BMC and generating an error message; and sending the error message to the master BMC.
[0011] This application also provides a firmware upgrade method applied to a master control module (BMC) in a server. The method includes: in response to a firmware upgrade request, obtaining a firmware upgrade package corresponding to a target BMC; determining a differential data packet based on the difference information between first firmware information corresponding to the firmware upgrade package and second firmware information corresponding to the target BMC; the data size of the differential data packet is smaller than the data size of the firmware upgrade package; the versions corresponding to the first firmware information and the second firmware information are different; and sending the differential data packet to the target BMC so that the target BMC performs a firmware upgrade based on the differential data packet.
[0012] According to one embodiment of this application, obtaining the firmware upgrade package corresponding to the target BMC includes: sending a version query command to the target BMC; receiving the current version information of the firmware sent by the target BMC in response to the version query command; obtaining the cached version information of the firmware of the target BMC cached by the master control BMC; and obtaining the firmware upgrade package corresponding to the target BMC in response to the cached version information being the same as the current version information.
[0013] According to one embodiment of this application, determining a differential data packet based on the difference information between the first firmware information corresponding to the firmware upgrade package and the second firmware information corresponding to the target BMC includes: dividing the second firmware information into data blocks of a set size; matching the data blocks with the first firmware information based on a hash algorithm to obtain a matching result; determining an instruction sequence and the difference information based on the matching result; generating the differential data packet based on the instruction sequence and the difference information; and signing the differential data packet based on an encryption algorithm to obtain a differential data packet including a digital signature.
[0014] This application also provides a firmware upgrade device applied to a target baseboard management controller (BMC) in a server. The target BMC and the master BMC are connected via a bus. The device includes: a receiving module for receiving differential data packets sent by the master BMC, wherein the differential data packets are generated by the master BMC based on the differences between different versions of firmware information; and an upgrade module for upgrading the firmware of the target BMC based on the differential data packets.
[0015] According to one embodiment of this application, the receiving module is further configured to: receive a version query instruction sent by the master control BMC; and in response to the version query instruction, read the current version information of the firmware of the target BMC and send it to the master control BMC.
[0016] According to one embodiment of this application, the upgrade module is configured to: verify the digital signature of the differential data packet; in response to the successful verification of the digital signature, read the second firmware information corresponding to the target BMC from a first cache corresponding to the firmware of the target BMC; determine first firmware information based on the differential data packet and the second firmware information corresponding to the target BMC; the versions corresponding to the first firmware information and the second firmware information are different; and perform firmware upgrade on the firmware of the target BMC based on the second cache corresponding to the firmware of the target BMC and the first firmware information; the first cache and the second cache are different caches used to store firmware.
[0017] According to one embodiment of this application, the upgrade module is used to: parse the differential data packet based on a set restoration algorithm to obtain a corresponding instruction sequence; and read data from the differential data packet and the second firmware information based on the instruction sequence to generate the first firmware information.
[0018] According to one embodiment of this application, the upgrade module is configured to: write the first firmware information into the second cache; verify the first firmware information in the second cache; in response to the first firmware information passing the verification, upgrade the firmware of the target BMC based on the first firmware information; and in response to the first firmware information failing the verification, restore the firmware of the target BMC based on the second firmware information in the first cache.
[0019] According to one embodiment of this application, the upgrade module is further configured to: in response to the failure of the digital signature verification, terminate the firmware upgrade of the target BMC and generate error information; and send the error information to the master BMC.
[0020] This application also provides a firmware upgrade device applied to a master control module (BMC) in a server. The device includes: an acquisition module, configured to acquire a firmware upgrade package corresponding to a target BMC in response to a firmware upgrade request; a determination module, configured to determine a differential data packet based on the difference information between first firmware information corresponding to the firmware upgrade package and second firmware information corresponding to the target BMC; wherein the data size of the differential data packet is smaller than the data size of the firmware upgrade package; and the versions corresponding to the first firmware information and the second firmware information are different; and a sending module, configured to send the differential data packet to the target BMC, so that the target BMC performs a firmware upgrade based on the differential data packet.
[0021] According to one embodiment of this application, the acquisition module is configured to: send a version query instruction to the target BMC; receive the current version information of the firmware sent by the target BMC in response to the version query instruction; acquire the cached version information of the firmware of the target BMC cached by the master control BMC; and acquire the firmware upgrade package corresponding to the target BMC in response to the cached version information being the same as the current version information.
[0022] According to one embodiment of this application, the determining module is configured to: divide the second firmware information into data blocks of a set size; match the data blocks with the first firmware information based on a hash algorithm to obtain a matching result; determine the instruction sequence and the difference information based on the matching result; generate the differential data packet based on the instruction sequence and the difference information; and sign the differential data packet based on an encryption algorithm to obtain a differential data packet including a digital signature.
[0023] This application also provides an electronic device, including: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the method of the above-described embodiments; or, the at least one processor is capable of performing the method of the above-described embodiments.
[0024] This application also provides a non-transitory computer-readable storage medium storing computer instructions for causing a computer to perform an embodiment according to this application, wherein the computer instructions are for causing a computer to perform a method according to the above-described embodiment.
[0025] The method of this application embodiment is applied to a target baseboard management controller (BMC) in a server. The target BMC and the master BMC are connected via a bus. The method includes: receiving a differential data packet sent by the master BMC, the differential data packet being generated by the master BMC based on differences between firmware versions; and upgrading the firmware of the target BMC based on the differential data packet. This application improves firmware upgrade efficiency and enhances the system reliability of the server.
[0026] It should be understood that the teachings of this application are not required to achieve all the beneficial effects described above, but rather that a specific technical solution can achieve a specific technical effect, and other embodiments of this application can also achieve beneficial effects not mentioned above. Attached Figure Description
[0027] The above and other objects, features, and advantages of exemplary embodiments of this application will become readily apparent from the following detailed description taken in conjunction with the accompanying drawings. Several embodiments of this application are illustrated in the drawings by way of example and not limitation, in which: In the accompanying drawings, the same or corresponding reference numerals indicate the same or corresponding parts.
[0028] Figure 1 This application illustrates a flowchart of the firmware upgrade method provided in its embodiments. Figure 1 ; Figure 2 This application illustrates a flowchart of the firmware upgrade method provided in its embodiments. Figure 2 ; Figure 3 This application illustrates a flowchart of the firmware upgrade method provided in its embodiments. Figure 3 ; Figure 4 This illustration shows an application scenario of the firmware upgrade method provided in the embodiments of this application. Figure 1 ; Figure 5 This illustration shows an application scenario of the firmware upgrade method provided in the embodiments of this application. Figure 2 ; Figure 6 This illustration shows an application scenario of the firmware upgrade method provided in the embodiments of this application. Figure 3 ; Figure 7 This illustration shows an application scenario of the firmware upgrade method provided in the embodiments of this application. Figure 4 ; Figure 8 This illustration shows an optional schematic diagram of the firmware upgrade device provided in an embodiment of this application; Figure 9This illustration shows another optional schematic diagram of the firmware upgrade device provided in the embodiments of this application; Figure 10 An optional schematic diagram of an electronic device provided in an embodiment of this application is shown. Detailed Implementation
[0029] To make the objectives, features, and advantages of this application more apparent and understandable, the technical solutions in 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 skilled in the art without creative effort are within the scope of protection of this application.
[0030] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0031] In the following description, the terms "first" and "second" are used merely to distinguish similar objects and do not represent a specific ordering of objects. It is understood that "first" and "second" may be interchanged in a specific order or sequence where permitted, so that the embodiments of this application described herein can be implemented in an order other than that illustrated or described herein.
[0032] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.
[0033] The processing flow of the firmware upgrade method provided in the embodiments of this application is described below. See also Figure 1 , Figure 1 This is a schematic diagram of the firmware upgrade method provided in the embodiments of this application. Figure 1 The firmware upgrade method applied to the target BMC will combine Figure 1 Steps S101-S102 shown will be explained.
[0034] Step S101: Receive differential data packets sent by the master control BMC. The differential data packets are generated by the master control BMC based on the differences between firmware information of different versions.
[0035] In this embodiment, the target BMC may include: a baseboard management controller to be upgraded. Specifically, the target BMC may be a UBB management board BMC. The server can integrate and manage multiple computing nodes and a large number of accelerators such as GPUs and DPUs through UBB. The master BMC may include: a baseboard management controller responsible for managing the upgrade. The target BMC and the master BMC are connected via a bus. The bus may include: a communication interface such as I²C, USB, or SMBus. The bus can be used for data transmission between the master BMC and the target BMC. The differential data packet may include: a set of instructions representing the binary differences between two different firmware versions. The firmware information may include: firmware version number, CRC (Cyclic Redundancy Check) verification information, and program code.
[0036] Step S102: Based on the differential data packet, upgrade the firmware of the target BMC.
[0037] In some embodiments, the target BMC can reconstruct a new version of the firmware program based on differential data packets. Firmware upgrades may include the process of writing the new version of the firmware program into the memory corresponding to the target BMC.
[0038] As an example, after receiving the differential data packet sent by the master BMC, the target BMC uses a preset public key to verify the signature. If the verification fails, the upgrade is terminated and an error is reported. If the verification is successful, the current firmware of the target BMC is read as the basis for restoration. The Xdelta restoration algorithm is called to parse the instruction sequence in the differential data packet and build a new firmware for the target BMC. After the new firmware is generated, it is verified. If the verification fails, the original firmware is restored from the backup partition. If the verification is successful, the new firmware is burned into the corresponding memory of the target BMC to complete the upgrade.
[0039] The method in this embodiment uses a differential upgrade algorithm between the main control BMC and the UBB management board BMC to effectively compress the size of the transmitted file, solve hardware transmission bottlenecks, reduce transmission time, and ensure upgrade stability. Through the differential upgrade algorithm, only the differences between the old and new firmware versions are transmitted, drastically reducing the amount of data to be transmitted from a complete firmware image (typically fifty or even hundreds of MB) to 5%-20% of its original size. In an extremely limited environment with a hardware transmission rate of only 40Kb / s, the upgrade data transmission time is shortened from several hours to several minutes, significantly improving efficiency. Furthermore, as a software-level innovation, it eliminates the need to upgrade or replace expensive hardware components, breaking through the inherent physical transmission rate limitations at zero hardware cost and providing an immediate upgrade solution.
[0040] The drastic reduction in transmission time significantly reduces the risk of data packet errors, timeouts, or even interruptions caused by unstable transmission links or unexpected interference, ensuring the stability of the upgrade function. Simultaneously, this solution integrates digital signature verification, firmware restoration verification, and an automatic rollback mechanism. Even in the worst-case scenario, it can automatically restore to the normal working state before the upgrade, fundamentally eliminating serious incidents such as device "bricking" due to upgrade failures, and ensuring the continuity and high availability of business systems.
[0041] The upgrade method is optimized, requiring no additional operations from users or maintenance personnel. Differential data packet generation is handled by the main control BMC. Multiple verification mechanisms are added during the upgrade process to ensure firmware integrity and effectively prevent device upgrade failures. Considering the operational methods and maintenance costs for users and maintenance personnel, this solution operates identically to the standard solution, requiring no additional steps. The main control BMC obtains the full version to be upgraded via WEB or REDFISH and then performs the subsequent upgrade operations.
[0042] In some embodiments, the method prior to receiving the differential data packet sent by the master control BMC further includes: receiving a version query instruction sent by the master control BMC; and in response to the version query instruction, reading the current version information of the firmware of the target BMC and sending it to the master control BMC.
[0043] In this embodiment, the version query instruction may include: an instruction for obtaining the firmware version information of the target BMC. The current version information may include: the CRC checksum of the currently running firmware.
[0044] As an example, after receiving the user's upgrade request through the Redfish API (Application Programming Interface), the master BMC first sends a version query command to the target BMC. After receiving the command, the target BMC reads the CRC check information of the current firmware from the firmware storage area of the non-volatile memory and returns the CRC check information to the master BMC through the I²C bus.
[0045] In some embodiments, the processing flow of the firmware upgrade method is illustrated. Figure 2 ,like Figure 2 As shown, step S102, which involves upgrading the firmware of the target BMC based on differential data packets, may include: Step S201: Verify the digital signature of the differential data packet.
[0046] In step S202, in response to the successful digital signature verification, the second firmware information corresponding to the target BMC is read from the first cache corresponding to the firmware of the target BMC.
[0047] Step S203: Determine the first firmware information based on the differential data packet and the second firmware information corresponding to the target BMC.
[0048] Step S204: Based on the second cache area and first firmware information corresponding to the firmware of the target BMC, perform firmware upgrade on the target BMC.
[0049] In this embodiment, the digital signature may include an authentication identifier generated using an asymmetric encryption algorithm. Specifically, the asymmetric encryption algorithm may be RSA-2048. The master BMC can perform digital signing using its RSA-2048 private key, and the target BMC can verify the digital signature using its pre-installed RSA-2048 public key. The first cache and the second cache are different caches used to store firmware. The first cache may include a memory area storing the currently running firmware of the target BMC. The second cache may include a memory area used for temporarily building and storing new firmware versions. The versions corresponding to the first firmware information and the second firmware information are different; the second firmware information may include the current firmware program of the target BMC. The first firmware information may include the new firmware program to be upgraded.
[0050] As an example, the target BMC reads the currently running second firmware information from the first buffer as the basis for restoration, calls the Xdelta restoration algorithm to parse the instruction sequence in the differential data packet, reads data from the specified position of the second firmware information for each COPY instruction, and extracts the new data from the differential data packet for each ADD instruction, constructs the first firmware information and writes it to the second buffer. After restoration, the target BMC calculates the SHA-256 hash value of the first firmware information and compares it with the target hash recorded in the differential data packet, while verifying whether the firmware version number and file size match. If the verification passes, the first firmware information in the second buffer is burned to the corresponding memory of the target BMC to complete the upgrade. If the verification fails or an abnormality occurs during the burning process, the second firmware information is restored from the first buffer, thereby ensuring that the target BMC can start and run normally.
[0051] In some embodiments, determining the first firmware information based on the differential data packet and the second firmware information corresponding to the target BMC in step S203 includes: parsing the differential data packet based on a set restoration algorithm to obtain the corresponding instruction sequence; and reading data from the differential data packet and the second firmware information based on the instruction sequence to generate the first firmware information.
[0052] In this embodiment, the restoration algorithm may include the Xdelta restoration algorithm. The instruction sequence may include a set of operation commands consisting of COPY (copy) instructions and ADD (add) instructions.
[0053] As an example, after the target BMC receives the differential data packet sent by the master BMC, it first calls the Xdelta restoration algorithm to parse the differential data packet, obtaining an instruction sequence containing COPY and ADD instructions. Then, it processes each instruction in the order of the instruction sequence. For the COPY instruction, it reads the old data block of the corresponding length from the first buffer storing the second firmware information at the specified offset position. For the ADD instruction, it directly extracts the new data content from the differential data packet. The data from the two sources are combined in sequence and written into the second buffer to generate complete first firmware information.
[0054] In some embodiments, step S204, which involves upgrading the firmware of the target BMC based on the second cache and the first firmware information corresponding to the firmware of the target BMC, may include: writing the first firmware information into the second cache; verifying the first firmware information in the second cache; upgrading the firmware of the target BMC based on the first firmware information in response to the first firmware information verification passing; and restoring the firmware of the target BMC based on the second firmware information in the first cache in response to the first firmware information verification failing.
[0055] As an example, the target BMC calculates the SHA-256 hash value of the first firmware information and compares it with the target hash recorded in the differential data packet. At the same time, it verifies whether the firmware version number and file size match. If the verification passes, the first firmware information in the second buffer is burned into the memory corresponding to the target BMC to complete the upgrade. If the verification fails or an abnormality occurs during the burning process, the second firmware information is restored from the first buffer, thereby ensuring that the target BMC can start and run normally.
[0056] In some embodiments, after verifying the digital signature of the differential data packet in step S201, the method further includes: terminating the firmware upgrade of the target BMC in response to the failure of digital signature verification, and generating an error message; and sending the error message to the master BMC.
[0057] As an example, after receiving the differential data packet sent by the master BMC, the target BMC uses a preset RSA-2048 public key to verify the digital signature of the differential data packet. When the verification result indicates that the digital signature does not match, the ongoing firmware upgrade process is terminated, and the target BMC generates an error message containing an error code, a verification timestamp, and the reason for the failure. Finally, the error message is sent to the master BMC via the I²C bus.
[0058] In some embodiments, the processing flow of the firmware upgrade method is illustrated. Figure 3 ,like Figure 3 As shown, firmware upgrade methods applied to the main control BMC may include: Step S301: In response to the firmware upgrade request, obtain the firmware upgrade package corresponding to the target BMC.
[0059] Step S302: Based on the difference information between the first firmware information corresponding to the firmware upgrade package and the second firmware information corresponding to the target BMC, determine the differential data packet; the data size of the differential data packet is smaller than the data size of the firmware upgrade package; the versions corresponding to the first firmware information and the second firmware information are different.
[0060] Step S303: The differential data packet is sent to the target BMC so that the target BMC can upgrade its firmware based on the differential data packet.
[0061] In this embodiment, the server may include a computer system equipped with multiple baseboard management controllers. The firmware upgrade request may include a version update instruction triggered via a web interface or Redfish API. The firmware upgrade package may include a complete new firmware image file. Second firmware information may include the current firmware version of the target BMC. First firmware information may include the new firmware version to be upgraded. Difference information may include binary difference data between the old and new firmware versions.
[0062] As an example, the master BMC first obtains the new firmware package through a web interface and sends a version query command to the target BMC. Upon receiving the command, the target BMC reads its current firmware version information and returns it to the master BMC. After verifying the version differences, the master BMC calls the Xdelta differential algorithm to divide the old firmware version into data blocks and generate a hash index table. It then scans the new firmware version to match the data blocks and generates a differential data packet containing COPY and ADD instructions. The size of the differential data packet is smaller than the size of the firmware upgrade package. The master BMC calculates the target hash of the differential data packet using SHA-256 and signs it with an RSA-2048 private key. Then, it sends the signed differential data packet to the target BMC via the I²C bus. After receiving the data packet, the target BMC verifies the signature using a preset public key. If the verification fails, the upgrade is terminated and an error is reported. If the verification passes, the current firmware is read from the first buffer as the basis for restoration. The Xdelta restoration algorithm is called to parse the instruction sequence in the differential data packet. The newly built firmware is written to the second buffer using a dual buffering mechanism. After the firmware is generated, the SHA-256 hash value of the new firmware is calculated and compared with the target hash. The version information is checked. If the verification fails, the original firmware is restored from the backup partition. If the verification passes, the new firmware in the second buffer is burned into the corresponding memory of the target BMC to complete the upgrade.
[0063] As an example, the master BMC first obtains the new firmware package through the web interface and sends a version query command to the UBB management board BMC. Upon receiving the command, the UBB management board BMC reads its current firmware version information and returns it to the master BMC. After verifying the version differences, the master BMC calls the Xdelta differential algorithm to divide the old firmware version into data blocks and generate a hash index table. It then scans the new firmware version to match the data blocks and generates a differential data packet containing COPY and ADD instructions. The size of the differential data packet is smaller than the size of the firmware upgrade package. The main control BMC calculates the target hash of the differential data packet using SHA-256 and signs it with an RSA-2048 private key. Then, it sends the signed differential data packet to the UBB management board BMC via the I²C bus. After receiving the data packet, the UBB management board BMC verifies the signature using a preset public key. If the verification fails, the upgrade is terminated and an error is reported. If the verification passes, the current firmware is read from the first buffer as the basis for restoration. The Xdelta restoration algorithm is called to parse the instruction sequence in the differential data packet. The newly built firmware is written to the second buffer using a dual buffering mechanism. After the firmware is generated, the SHA-256 hash value of the new firmware is calculated and compared with the target hash, and the version information is checked. If the verification fails, the original firmware is restored from the backup partition. If the verification passes, the new firmware in the second buffer is burned into the corresponding memory of the UBB management board BMC to complete the upgrade.
[0064] The method in this embodiment uses a differential upgrade algorithm between the main control BMC and the UBB management board BMC to effectively compress the size of the transmitted file, solve hardware transmission bottlenecks, reduce transmission time, and ensure upgrade stability. Through the differential upgrade algorithm, only the differences between the old and new firmware versions are transmitted, drastically reducing the amount of data to be transmitted from a complete firmware image (typically fifty or even hundreds of MB) to 5%-20% of its original size. In an extremely limited environment with a hardware transmission rate of only 40Kb / s, the upgrade data transmission time is shortened from several hours to several minutes, significantly improving efficiency. Furthermore, as a software-level innovation, it eliminates the need to upgrade or replace expensive hardware components, breaking through the inherent physical transmission rate limitations at zero hardware cost and providing an immediate upgrade solution.
[0065] The drastic reduction in transmission time significantly reduces the risk of data packet errors, timeouts, or even interruptions caused by unstable transmission links or unexpected interference, ensuring the stability of the upgrade function. Simultaneously, this solution integrates digital signature verification, firmware restoration verification, and an automatic rollback mechanism. Even in the worst-case scenario, it can automatically restore to the normal working state before the upgrade, fundamentally eliminating serious incidents such as device "bricking" due to upgrade failures, and ensuring the continuity and high availability of business systems.
[0066] The upgrade method is optimized, requiring no additional operations from users or maintenance personnel. Differential data packet generation is handled by the main control BMC. Multiple verification mechanisms are added during the upgrade process to ensure firmware integrity and effectively prevent device upgrade failures. Considering the operational methods and maintenance costs for users and maintenance personnel, this solution operates identically to the standard solution, requiring no additional steps. The main control BMC obtains the full version to be upgraded via WEB or REDFISH and then performs the subsequent upgrade operations.
[0067] In some embodiments, obtaining the firmware upgrade package corresponding to the UBB management board BMC in step S301 may include: sending a version query command to the UBB management board BMC; receiving the current version information of the firmware sent by the UBB management board BMC in response to the version query command; obtaining the cached version information of the firmware of the UBB management board BMC cached by the main control BMC; and obtaining the firmware upgrade package corresponding to the UBB management board BMC in response to the cached version information being the same as the current version information.
[0068] As an example, the master control BMC first sends a version query command to the UBB management board BMC to obtain the current version information of the firmware currently running on the UBB management board BMC. Upon receiving the command, the UBB management board BMC immediately reads the CRC checksum of the current firmware from the firmware storage area and returns it to the master control BMC via the I²C bus. After receiving the CRC checksum, the master control BMC retrieves the cached firmware version information of the UBB management board BMC stored in the master control BMC. The master control BMC matches the current version information with the cached version information. When the two match perfectly, the master control BMC obtains the firmware upgrade package for the corresponding UBB management board BMC model.
[0069] In some embodiments, the step S302, which determines the differential data packet based on the difference information between the first firmware information corresponding to the firmware upgrade package and the second firmware information corresponding to the BMC of the UBB management board, includes: dividing the second firmware information into data blocks of a set size; matching the data blocks with the first firmware information based on a hash algorithm to obtain a matching result; determining the instruction sequence and difference information based on the matching result; generating a differential data packet based on the instruction sequence and difference information; and signing the differential data packet based on an encryption algorithm to obtain a differential data packet including a digital signature.
[0070] refer to Figure 4 Application scenarios of the firmware upgrade method provided in this application embodiment Figure 1 It is used in the upgrade triggering and version identification stage between the main control BMC and the UBB management board BMC.
[0071] like Figure 4As shown, the user initiates a request, meaning the user triggers the upgrade process via the web interface or Redfish API. The master BMC sends a version query command to the target UBB management board BMC. Upon receiving the command, the UBB management board BMC reads the current version information of the running firmware from its own firmware storage, including CRC checksum information. The UBB management board BMC returns the version information to the master BMC, which then verifies whether the cached firmware information matches the current version of the UBB management board. If the versions match, the master BMC receives the firmware package to be upgraded. If the versions do not match, the upgrade is terminated.
[0072] refer to Figure 5 Application scenarios of the firmware upgrade method provided in this application embodiment Figure 2 It is used in the differential packet processing and transmission stage between the main control BMC and the UBB management board BMC.
[0073] like Figure 5 As shown, after the main control BMC obtains the firmware version to be upgraded from the UBB management board BMC, it calls the Xdelta differential algorithm to calculate the binary differences between the old and new firmware versions.
[0074] When using the Xdelta algorithm, the specific implementation process is as follows: The master BMC first divides the old firmware file into fixed-size data blocks (usually 2KB-8KB), generates a hash value for each data block using the Rabin-Karp rolling hash algorithm, and establishes a hash index table. Then, it scans the new firmware, searching for matching data blocks in the index table using the same hash algorithm. For matching data blocks, Xdelta generates a COPY instruction, recording its offset and length in the old file; for mismatched data, an ADD instruction is generated, directly writing the new data into the differential packet. This process continues until the new firmware is completely traversed, ultimately generating a differential packet containing a complete instruction sequence.
[0075] After the differential packet is prepared, the master BMC calculates its digest using the SHA-256 hash algorithm and digitally signs it using the RSA-2048 private key. The signed differential packet is then transmitted to the UBB management board BMC via a low-speed bus such as I²C or USB.
[0076] refer to Figure 6 Application scenarios of the firmware upgrade method provided in this application embodiment Figure 3 It is used in the security verification and firmware restoration stage between the main control BMC and the UBB management board BMC.
[0077] like Figure 6As shown, upon receiving the differential packet, the UBB management board BMC immediately initiates a security verification process. The security and restore engine uses the public key pre-installed in the device to verify the signature of the differential packet, ensuring that the data in the differential packet has not been tampered with and its source is trustworthy. If verification fails, the UBB management board BMC immediately terminates the upgrade process and reports a security error to the main control BMC.
[0078] After successful verification, the UBB management board's BMC invokes the integrated Xdelta restore algorithm to read the currently running older firmware version from storage as the restore basis. The restore algorithm parses the instruction sequence in the differential packet. For each COPY instruction, it reads data of the corresponding length from the specified offset in the older firmware; for ADD instructions, it extracts data directly from the differential packet. A dual-buffering mechanism is employed during the restore process: one buffer stores the new firmware being built, and the other buffers data blocks read from the older firmware. This design optimizes memory usage efficiency in the resource-constrained BMC environment.
[0079] refer to Figure 7 Application scenarios of the firmware upgrade method provided in this application embodiment Figure 4 It is used in the verification, programming, and rollback protection phase between the main control BMC and the UBB management board BMC.
[0080] like Figure 7 As shown, after the new firmware is built, the UBB management board's BMC performs a multi-factor verification mechanism. First, it calculates the SHA-256 hash value of the new firmware and compares it with the target hash recorded in the differential packet; second, it verifies the version information in the firmware header; and finally, it checks whether the file size meets expectations. Only after passing all verification steps will the UBB management board's BMC perform the subsequent firmware update operation.
[0081] If any abnormality occurs at any stage of the upgrade process, the UBB management board's BMC will automatically trigger the rollback mechanism. The rollback mechanism will restore the original firmware from the backup partition. After the rollback, the UBB management board's BMC will be able to boot normally and run the original version.
[0082] It is understood that the application scenarios of the firmware upgrade method are only some exemplary implementations in the embodiments of this application, and the application scenarios of the firmware upgrade method in the embodiments of this application include, but are not limited to, the above-mentioned application scenarios.
[0083] The following continues to describe the exemplary structure of the software modules included in the firmware upgrade device 70 provided in the embodiments of this application. In some embodiments, such as Figure 8As shown, the target baseboard management controller (BMC) applied in the server is connected to the main control BMC via a bus. The firmware upgrade device 70 includes: a receiving module 701 for receiving differential data packets sent by the main control BMC, the differential data packets being generated by the main control BMC based on the differences between different versions of firmware information; and an upgrade module 702 for upgrading the firmware of the UBB management board BMC based on the differential data packets.
[0084] According to one embodiment of this application, the receiving module 701 is further configured to: receive a version query command sent by the master control BMC; and in response to the version query command, read the current version information of the firmware of the UBB management board BMC and send it to the master control BMC.
[0085] According to one embodiment of this application, the upgrade module 702 is used to: verify the digital signature of the differential data packet; in response to the successful verification of the digital signature, read the second firmware information corresponding to the firmware of the UBB management board BMC from the first cache area corresponding to the firmware of the UBB management board BMC; determine the first firmware information based on the differential data packet and the second firmware information corresponding to the UBB management board BMC; the versions corresponding to the first firmware information and the second firmware information are different; and upgrade the firmware of the UBB management board BMC based on the second cache area corresponding to the firmware of the UBB management board BMC and the first firmware information; the first cache area and the second cache area are different cache areas used to store the firmware.
[0086] According to one embodiment of this application, the upgrade module 702 is used to: parse the differential data packet based on a set restoration algorithm to obtain the corresponding instruction sequence; and read data from the differential data packet and the second firmware information based on the instruction sequence to generate the first firmware information.
[0087] According to one embodiment of this application, the upgrade module 702 is used to: write first firmware information into a second cache; verify the first firmware information in the second cache; in response to the first firmware information being verified as passed, upgrade the firmware of the UBB management board BMC based on the first firmware information; and in response to the first firmware information failing verification, restore the firmware of the UBB management board BMC based on the second firmware information in the first cache.
[0088] According to one embodiment of this application, the upgrade module 702 is further configured to: terminate the firmware upgrade of the UBB management board BMC in response to the failure of digital signature verification, and generate error information; and send the error information to the main control BMC.
[0089] The following continues to describe the exemplary structure of the software modules included in the firmware upgrade device 90 provided in the embodiments of this application. In some embodiments, such as Figure 9As shown, the firmware upgrade device 90 is applied to the main control BMC in a server. The firmware upgrade device 90 includes: an acquisition module 901, used to acquire the firmware upgrade package corresponding to the UBB management board BMC in response to a firmware upgrade request; a determination module 902, used to determine a differential data packet based on the difference information between the first firmware information corresponding to the firmware upgrade package and the second firmware information corresponding to the UBB management board BMC; the data size of the differential data packet is smaller than the data size of the firmware upgrade package; the versions corresponding to the first firmware information and the second firmware information are different; and a sending module 903, used to send the differential data packet to the UBB management board BMC so that the UBB management board BMC can perform a firmware upgrade based on the differential data packet.
[0090] According to one embodiment of this application, the acquisition module 901 is used to: send a version query command to the UBB management board BMC; receive the current version information of the firmware sent by the UBB management board BMC in response to the version query command; acquire the cached version information of the firmware of the UBB management board BMC cached by the main control BMC; and acquire the firmware upgrade package corresponding to the UBB management board BMC in response to the cached version information being the same as the current version information.
[0091] According to one embodiment of this application, the determining module 902 is used to: divide the second firmware information into data blocks of a set size; match the data blocks with the first firmware information based on a hash algorithm to obtain a matching result; determine the instruction sequence and difference information based on the matching result; generate a differential data packet based on the instruction sequence and difference information; and sign the differential data packet based on an encryption algorithm to obtain a differential data packet including a digital signature.
[0092] It should be noted that the description of the system in this application embodiment is similar to the description of the method embodiment above, and has similar beneficial effects as the method embodiment, therefore it will not be repeated. For technical details not covered in the firmware upgrade device provided in this application embodiment, please refer to... Figures 1 to 7 The meaning is understood in accordance with the description of any of the accompanying drawings.
[0093] According to embodiments of this application, this application also provides an electronic device and a non-transitory computer-readable storage medium.
[0094] Figure 10A schematic block diagram of an example electronic device 800 that can be used to implement embodiments of this application is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the application described and / or claimed herein.
[0095] like Figure 10 As shown, the electronic device 800 includes a computing unit 801, which can perform various appropriate actions and processes according to a computer program stored in ROM 802 or a computer program loaded into RAM 803 from storage unit 808. RAM 803 can also store various programs and data required for the operation of the electronic device 800. The computing unit 801, ROM 802, and RAM 803 are interconnected via bus 804. I / O interface 805 is also connected to bus 804.
[0096] Multiple components in electronic device 800 are connected to I / O interface 805, including: input unit 806, such as keyboard, mouse, etc.; output unit 807, such as various types of displays, speakers, etc.; storage unit 808, such as disk, optical disk, etc.; and communication unit 809, such as network card, modem, wireless transceiver, etc. Communication unit 809 allows electronic device 800 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0097] The computing unit 801 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 801 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 801 performs the various methods and processes described above, such as firmware upgrade methods. For example, in some embodiments, the firmware upgrade method may be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 808. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 800 via ROM 802 and / or communication unit 809. When the computer program is loaded into RAM 803 and executed by the computing unit 801, one or more steps of the firmware upgrade method described above may be performed. Alternatively, in other embodiments, the computing unit 801 may be configured to perform firmware upgrade methods by any other suitable means (e.g., by means of firmware).
[0098] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0099] The program code used to implement the methods of this application may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing device, such that when executed by the processor or controller, the functions / operations specified in the flowcharts and / or block diagrams are implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0100] In the context of this application, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0101] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0102] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.
[0103] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact via communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, servers in distributed systems, or servers incorporating blockchain technology.
[0104] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution disclosed in this application can be achieved, and this is not limited herein.
[0105] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the description of this application, "a plurality of" means two or more, unless otherwise explicitly specified.
[0106] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A firmware upgrade method, characterized in that, A target baseboard management controller (BMC) is used in a server, wherein the target BMC and the main control BMC are connected via a bus. The method includes: Receive differential data packets sent by the master control BMC, wherein the differential data packets are generated by the master control BMC based on the differences between firmware information of different versions; Based on the differential data packet, the firmware of the target BMC is upgraded.
2. The method according to claim 1, characterized in that, Before receiving the differential data packet sent by the master control BMC, the process also includes: Receive the version query command sent by the main control BMC; In response to the version query command, the current version information of the firmware of the target BMC is read and sent to the master BMC.
3. The method according to claim 1, characterized in that, The firmware upgrade of the target BMC based on the differential data packet includes: Verify the digital signature of the differential data packet; In response to the successful verification of the digital signature, the second firmware information corresponding to the target BMC is read from the first cache area corresponding to the firmware of the target BMC; Based on the differential data packet and the second firmware information corresponding to the target BMC, the first firmware information is determined; the first firmware information and the second firmware information correspond to different versions. Based on the second cache corresponding to the firmware of the target BMC and the first firmware information, the firmware of the target BMC is upgraded; the first cache and the second cache are different caches used to store the firmware.
4. The method according to claim 3, characterized in that, The step of determining the first firmware information based on the differential data packet and the second firmware information corresponding to the target BMC includes: Based on the set restoration algorithm, the differential data packet is parsed to obtain the corresponding instruction sequence; Based on the instruction sequence, data is read from the differential data packet and the second firmware information to generate the first firmware information.
5. The method according to claim 3, characterized in that, The firmware upgrade of the target BMC, based on the second cache corresponding to the firmware of the target BMC and the first firmware information, includes: Write the first firmware information into the second cache area; Verify the first firmware information in the second buffer; In response to the successful verification of the first firmware information, the firmware of the target BMC is upgraded based on the first firmware information; In response to the failure of the first firmware information verification, the firmware of the target BMC is restored based on the second firmware information in the first cache.
6. The method according to claim 3, characterized in that, After verifying the digital signature of the differential data packet, the method further includes: In response to the failure of the digital signature verification, the firmware upgrade of the target BMC is terminated and an error message is generated; The error message is sent to the main control BMC.
7. A firmware upgrade method, characterized in that, The method, applied to the master controller (BMC) in a server, includes: In response to a firmware upgrade request, obtain the firmware upgrade package corresponding to the target BMC; A differential data packet is determined based on the difference between the first firmware information corresponding to the firmware upgrade package and the second firmware information corresponding to the target BMC; the data size of the differential data packet is smaller than the data size of the firmware upgrade package; the versions corresponding to the first firmware information and the second firmware information are different. The differential data packet is sent to the target BMC so that the target BMC can perform a firmware upgrade based on the differential data packet.
8. The method according to claim 7, characterized in that, The process of obtaining the firmware upgrade package corresponding to the target BMC includes: Send a version query command to the target BMC; Receive the current version information of the firmware sent by the target BMC in response to the version query command; Obtain the firmware cache version information of the target BMC cached by the main control BMC; In response to the cached version information being the same as the current version information, the firmware upgrade package corresponding to the target BMC is obtained.
9. The method according to claim 7, characterized in that, The step of determining the differential data packet based on the difference information between the first firmware information corresponding to the firmware upgrade package and the second firmware information corresponding to the target BMC includes: The second firmware information is divided into data blocks of a set size; The data block is matched with the first firmware information based on a hash algorithm to obtain a matching result; Based on the matching results, the instruction sequence and the difference information are determined; The differential data packet is generated based on the instruction sequence and the difference information; The differential data packet is signed using an encryption algorithm to obtain a differential data packet including a digital signature.
10. A firmware upgrade device, characterized in that, A target baseboard management controller (BMC) used in a server, wherein the target BMC and the main control BMC are connected via a bus, the device includes: The receiving module is used to receive differential data packets sent by the master control BMC. The differential data packets are generated by the master control BMC based on the differences between firmware information of different versions. The upgrade module is used to upgrade the firmware of the target BMC based on the differential data packet.
11. The apparatus according to claim 10, characterized in that, The receiving module is also used for: Receive the version query command sent by the main control BMC; In response to the version query command, the current version information of the firmware of the target BMC is read and sent to the master BMC.
12. The apparatus according to claim 10, characterized in that, The upgrade module is used for: Verify the digital signature of the differential data packet; In response to the successful verification of the digital signature, the second firmware information corresponding to the target BMC is read from the first cache area corresponding to the firmware of the target BMC; Based on the differential data packet and the second firmware information corresponding to the target BMC, the first firmware information is determined; The versions corresponding to the first firmware information and the second firmware information are different; Based on the second cache corresponding to the firmware of the target BMC and the first firmware information, the firmware of the target BMC is upgraded. The first cache and the second cache are different caches used to store firmware.
13. The apparatus according to claim 12, characterized in that, The upgrade module is used to: parse the differential data packet based on the set restoration algorithm to obtain the corresponding instruction sequence; Based on the instruction sequence, data is read from the differential data packet and the second firmware information to generate the first firmware information.
14. The apparatus according to claim 12, characterized in that, The upgrade module is used to: write the first firmware information into the second cache area; Verify the first firmware information in the second buffer; In response to the successful verification of the first firmware information, the firmware of the target BMC is upgraded based on the first firmware information; In response to the failure of the first firmware information verification, the firmware of the target BMC is restored based on the second firmware information in the first cache.
15. The apparatus according to claim 12, characterized in that, The upgrade module is also used for: In response to the failure of the digital signature verification, the firmware upgrade of the target BMC is terminated and an error message is generated; The error message is sent to the main control BMC.
16. A firmware upgrade device, characterized in that, The device, used in a server's master control module (BMC), includes: The acquisition module is used to obtain the firmware upgrade package corresponding to the target BMC in response to a firmware upgrade request; The determining module is used to determine a differential data packet based on the difference information between the first firmware information corresponding to the firmware upgrade package and the second firmware information corresponding to the target BMC; the data size of the differential data packet is smaller than the data size of the firmware upgrade package; the versions corresponding to the first firmware information and the second firmware information are different; The sending module is used to send the differential data packet to the target BMC, so that the target BMC can perform a firmware upgrade based on the differential data packet.
17. The apparatus according to claim 16, characterized in that, The acquisition module is used for: Send a version query command to the target BMC; Receive the current version information of the firmware sent by the target BMC in response to the version query command; Obtain the firmware cache version information of the target BMC cached by the main control BMC; In response to the cached version information being the same as the current version information, the firmware upgrade package corresponding to the target BMC is obtained.
18. The apparatus according to claim 16, characterized in that, The determining module is used for: The second firmware information is divided into data blocks of a set size; The data block is matched with the first firmware information based on a hash algorithm to obtain a matching result; Based on the matching results, the instruction sequence and the difference information are determined; The differential data packet is generated based on the instruction sequence and the difference information; The differential data packet is signed using an encryption algorithm to obtain a differential data packet including a digital signature.
19. An electronic device, characterized in that, include: At least one processor; And a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-6; Alternatively, the at least one processor may be capable of performing the method of any one of claims 7-9.
20. A non-transitory computer-readable storage medium storing computer instructions, characterized in that, The computer instructions are used to cause the computer to perform the method according to any one of claims 1-6; Alternatively, the computer instructions are used to cause the computer to perform the method according to any one of claims 7-9.
Citation Information
Patent Citations
Low-speed bus data transmission method and device and computer storage medium
CN114281731A
Block differential upgrade package generation method and device and block differential upgrade method and device
CN115718614A
Substrate management controller upgrading method and device and medium thereof
CN117170701A
Unified differential OTA method and system for dot matrix pen, product and medium
CN119690491A
Differential upgrade method for intelligent gas meter firmware
WO2022048511A1