Firmware update method and system with flexible time limit
The method and system address firmware update timeout issues by dynamically setting a transfer time limit based on data rate and image size, preventing wrongful cancellations and ensuring successful firmware updates in BMCs.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- AMERICAN MEGATRENDS
- Filing Date
- 2025-09-25
- Publication Date
- 2026-05-21
AI Technical Summary
Conventional firmware update methods in BMCs face issues with incorrect timeout events during firmware transfers due to insufficient consideration of data rate and image size, leading to wrongful cancellation of update sessions.
A method and system that set a flexible time limit by calculating a transfer time estimate based on the data rate and image size, allowing for dynamic adjustment of the transfer time limit to prevent timeout events without altering the source code.
Ensures accurate determination of timeout events, preventing wrongful cancellation of firmware updates by dynamically adjusting the transfer time limit based on data rate and image size, thereby ensuring successful completion of firmware updates.
Smart Images

Figure US2025047868_21052026_PF_FP_ABST
Abstract
Description
Attorney Docket No. 5199-0408PW01FIRMWARE UPDATE METHOD AND SYSTEM WITH FLEXIBLE TIME LIMITCROSS REFERENCE TO RELATED APPLICATIONThis application claims the benefit of U.S. Application No. 18 / 946,144, filed November 13, 2024, the entirety of which is incorporated by reference herein.FIELD OF INVENTION
[0001] The present invention relates to device firmware update, and more particularly to a firmware update method with flexible time limit and a system performing the same.BACKGROUND
[0002] To implement platform management for server-class computer systems, baseboard management controllers (BMCs) have become indispensable. A BMC is a specialized microcontroller embedded on the motherboard of a computer, which manages the interface between the system management software and the platform hardware. In line with significant and rapid advances in server management, the BMC introduces various hardware and software services that require numerous and frequent firmware revisions and updates.
[0003] In conventional systems, a BMC communicates through a bus interface to devices with firmware to be updated. Each device may couple the bus interface via either a fast path (PCIe for example) or a slow path (I2C for example) under cost-performance tradeoffs. On the other hand, firmware images are often subject to size gains along their developments. Without considering data rate toward the device and size of the firmware image, there is a risk that the BMC might determine a timeout event while transfer of the firmware image is still in progress, resulting in a wrongful cancellation of the update session.Attorney Docket No. 5199-0408PW01SUMMARY
[0004] One objective of the present invention is to provide a firmware update method and a system performing the same, characterized in a capability of setting a flexible time limit so that timeout events are correctly determined.
[0005] Another objective of the present invention is to provide a firmware update method and a system performing the same, characterized in a capability of setting a flexible time limit without changing the criteria in the source code for different image sizes.
[0006] In a first embodiment of the present invention, a firmware update method through a bus interface comprises: sending, to an update object to which a firmware image is to be transferred, an update command to start an update session; obtaining, from the bus interface, a data rate toward the update object; calculating a transfer time estimate by dividing an image size of the firmware image with the data rate; setting a transfer time limit to a default value; determining whether the transfer time estimate is longer than the transfer time limit; and in response to determining that the transfer time estimate is longer than the transfer time limit, setting the transfer time limit to the transfer time estimate.
[0007] In one aspect of the first embodiment, the firmware update method further comprises: sending, to the update object, a transfer command to request transferring the firmware image; upon receiving, from the update object, a response accepting the firmware image, starting to count a time duration until the transfer time limit is reached; and if a transfer result has not been received from the update object, sending, to the update object, a cancel command to cancel the update session.
[0008] In one aspect of the first embodiment, the data rate is obtained from a look-up table contained within the bus interface.
[0009] In one aspect of the first embodiment, calculating the transfer time estimate furtherAttorney Docket No. 5199-0408PW01comprise adding an encryption overhead to the transfer time estimate.
[0010] In one aspect of the first embodiment, the default value equals 600 seconds.
[0011] In one aspect of the first embodiment, the update initiator is implemented by a baseboard management controller (BMC).
[0012] In one aspect of the first embodiment, the update object is an input / output (I / O) device.
[0013] In one aspect of the first embodiment, the update object forwards the firmware image to one or more other update objects.
[0014] In a second embodiment of the present invention, a system performing firmware update through a bus interface comprises an update object and an update initiator. A firmware image is to be transferred to the update object. The update initiator is configured to: send, to the update object, an update command to start an update session; obtain, from the bus interface, a data rate toward the update object; calculate a transfer time estimate by dividing an image size of the firmware image with the data rate; set a transfer time limit to a default value; determine whether the transfer time estimate is longer than the transfer time limit; and in response to determining that the transfer time estimate is longer than the transfer time limit, set the transfer time limit to the transfer time estimate.
[0015] In one aspect of the second embodiment, the update initiator is further configured to: send, to the update object, a transfer command to request transferring the firmware image; upon receiving, from the update object, a response accepting the firmware image, start to count a time duration until the transfer time limit is reached; and if a transfer result has not been received from the update object, send, to the update object, a cancel command to cancel the update session.
[0016] In one aspect of the second embodiment, the data rate is obtained from a look-up table contained within the bus interface.Attorney Docket No. 5199-0408PW01
[0017] In one aspect of the second embodiment, the update initiator is further configured to add an encryption overhead to the transfer time estimate.
[0018] In one aspect of the second embodiment, the default value equals 600 seconds.
[0019] In one aspect of the second embodiment, the update initiator is implemented by a baseboard management controller (BMC).
[0020] In one aspect of the second embodiment, the update object is an input / output (I / O) device.
[0021] In one aspect of the second embodiment, the update object forwards the firmware image to one or more other update objects.BRIEF DESCRIPTION OF THE DRAWINGS
[0022] FIG. 1 is a logical block diagram of a system performing firmware update according to an embodiment of the present invention.
[0023] FIG. 2 is a physical block diagram of a system performing firmware update according to an embodiment of the present invention.
[0024] FIG. 3 is a flow chart of a primary portion of a firmware update method according to an embodiment of the present invention.
[0025] FIG. 4 is a flow chart of a secondary portion of a firmware update method according to an embodiment of the present invention.DETAILED DESCRIPTION
[0026] Embodiments of the present invention are set forth below in connection with the appended drawings, for the purpose of providing a thorough understanding of various concepts while not intended to represent the only configurations in which the concepts described herein may be practiced. It will be apparent to those skilled in the art that these concepts may be practicedAttorney Docket No. 5199-0408PW01without these specific details. Well known structures and components are omitted in order to avoid obscuring such concepts.
[0027] In a logical sense as shown in FIG. 1, a system 100 performing firmware update through a bus interface 150 includes an update initiator 110 and an update object 120. The update initiator 110 begins by sending an update command to the update object 120. If the update object 120 is in an idle state, it replies with a response indicating availability for firmware update, and an update session is started until various update steps (component information table delivery, firmware image transfer, verification and activation, etc.) have been completed. In case of any error or timeout event, the update initiator 110 may also send a cancel command to cancel the update session, so that the update object 120 can return to the idle state. As also shown in FIG. 1, the update object 120 may alternatively forward the firmware image to one or more other update objects 130, and process firmware update commands / responses / events on behalf of the other update objects 130.
[0028] Now refer to FIG. 2 showing a physical system performing firmware update. The update initiator is typically implemented by a BMC 160, which communicates through the bus interface 150 to firmware devices 170 acting as update objects. Each firmware device 170 (e.g., input / output (I / O) device) contains one or more elements (controller, processor, etc.) which execute firmware, and may couple the bus interface 150 via either a fast path (PCIe for example) or a slow path (I2C for example).
[0029] FIG. 3 is a flow chart of a primary portion of a firmware update method 200 according to an embodiment of the present invention. The method 200 starts at step 202, where the update initiator 110 (which may be a BMC or any other equivalent entity) sends, to an update object 120 (which may be a firmware device or any other equivalent entity) to which a firmware image is to be transferred, an update command to start an update session. At step 204, the update initiator 110 obtains, from the bus interface 150, a data rate toward the update object 120. The data rate may beAttorney Docket No. 5199-0408PW01obtained from a look-up table contained within the bus interface 150, but the present invention is not limited hereto. At step 206, the update initiator 110 calculates a transfer time estimate by dividing an image size of the firmware image with the data rate. In an aspect, the update initiator 110 may further add an encryption overhead to the transfer time estimate, so that access to cryptographic capabilities and operations is enabled. At step 208, the update initiator 110 sets a transfer time limit to a default value. The default value may equal 600 seconds, but the present invention is not limited hereto. The transfer time estimate and the transfer time limit are compared at decision 210. If the transfer time estimate is determined to be longer than the transfer time limit, the transfer time limit is set to the transfer time estimate at step 212, before proceeding to firmware image transfer as conclusion of the primary portion of the firmware update method 200.
[0030] FIG. 4 is a flow chart of a secondary portion of a firmware update method 200 according to an embodiment of the present invention. At step 214, the update initiator 110 sends, to the update object 120, a transfer command to request transferring the firmware image. Upon receiving, from the update object 120, a response accepting the firmware image, the update initiator 110 starts to count a time duration at step 216 until the transfer time limit is reached. If a transfer result has not been received from the update object 120 at decision 218, the update initiator 110 sends, to the update object 120, a cancel command to cancel the update session; otherwise, the update initiator 110 continues the update session according to the transfer result. In an aspect, if the transfer result indicates any error, the update initiator 110 may resend a transfer command to the update object 120; if the transfer result indicates no error, firmware image transfer is completed and the update initiator 110 may take no action unless requested by the update object 120.
[0031] It is understood that the specific order or hierarchy of blocks in the processes / flowcharts disclosed is an illustration of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of blocks in the processes / flowcharts may be rearranged. Further, some blocks may be combined or omitted. TheAttorney Docket No. 5199-0408PW01accompanying method claims present elements of the various blocks in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
[0032] The foregoing description is provided to enable any person skilled in the art to practice the various aspects described herein, and is not intended to be exhaustive or to limit the present invention to the precise forms disclosed. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Accordingly, the scope of the present invention is to be accorded the broadest scope consistent with the appended claims rather than the foregoing description and the exemplary embodiments described therein.
Claims
Attorney Docket No. 5199-0408PW01CLAIMSWhat is claimed is:
1. A firmware update method through a bus interface, comprising:sending, to an update object to which a firmware image is to be transferred, an update command to start an update session;obtaining, from the bus interface, a data rate toward the update object; calculating a transfer time estimate by dividing an image size of the firmware image with the data rate;setting a transfer time limit to a default value;determining whether the transfer time estimate is longer than the transfer time limit; andin response to determining that the transfer time estimate is longer than the transfer time limit, setting the transfer time limit to the transfer time estimate.
2. The firmware update method of claim 1, further comprising:sending, to the update object, a transfer command to request transferring the firmware image;upon receiving, from the update object, a response accepting the firmware image, starting to count a time duration until the transfer time limit is reached; andif a transfer result has not been received from the update object, sending, to the update object, a cancel command to cancel the update session.
3. The firmware update method of claim 1, wherein the data rate is obtained from a look-up table contained within the bus interface.Atorney Docket No. 5199-0408PW014. The firmware update method of claim 1, wherein calculating the transfer time estimate further comprise adding an encryption overhead to the transfer time estimate.
5. The firmware update method of claim 1, wherein the default value equals 600 seconds.
6. The firmware update method of claim 1, wherein the update initiator is implemented by a baseboard management controller (BMC).
7. The firmware update method of claim 1 , wherein the update obj ect is an input / output (I / O) device.
8. The firmware update method of claim 1, wherein the update object forwards the firmware image to one or more other update objects.
9. A system performing firmware update through a bus interface, comprising:an update object to which a firmware image is to be transferred; andan update initiator configured to:send, to the update object, an update command to start an update session; obtain, from the bus interface, a data rate toward the update object; calculate a transfer time estimate by dividing an image size of the firmware image with the data rate;set a transfer time limit to a default value;determine whether the transfer time estimate is longer than the transfer time limit; andin response to determining that the transfer time estimate is longer than the transfer time limit, set the transfer time limit to the transfer time estimate.
10. The system performing firmware update of claim 9, wherein the update initiator is furtherAttorney Docket No. 5199-0408PW01configured to:send, to the update object, a transfer command to request transferring the firmware image;upon receiving, from the update object, a response accepting the firmware image, start to count a time duration until the transfer time limit is reached; andif a transfer result has not been received from the update object, send, to the update object, a cancel command to cancel the update session.
11. The system performing firmware update of claim 9, wherein the data rate is obtained from a look-up table contained within the bus interface.
12. The system performing firmware update of claim 9, wherein the update initiator is further configured to add an encryption overhead to the transfer time estimate.
13. The system performing firmware update of claim 9, wherein the default value equals 600 seconds.
14. The system performing firmware update of claim 9, wherein the update initiator is implemented by a baseboard management controller (BMC).
15. The system performing firmware update of claim 9, wherein the update object is an input / output (I / O) device.
16. The system performing firmware update of claim 9, wherein the update object forwards the firmware image to one or more other update objects.