Method for updating a firmware file of an input/output module

US10001987B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10001987-B2
Application numberUS-201715496170-A
CountryUS
Kind codeB2
Filing dateApr 25, 2017
Priority dateJun 8, 2016
Publication dateJun 19, 2018
Grant dateJun 19, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method is for updating an original firmware file of an I/O module which communicates with multiple host-end devices and stores the original firmware file. The method includes: receiving a current-received data packet from one host-end device; when it is determined that the current-received data packet is a first data packet constituting an update file, and that the original firmware file is not undergoing an update process, setting a status flag to indicate that the original firmware file is undergoing an update process, storing the current-received data packet; and repeating the previous steps when it is determined that the current-received data packet is not a last one data packet constituting the update file.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for updating a firmware file of an input/output (I/O) module that communicates with a plurality of host-end devices and that includes a processor and a storage device, the storage device storing the firmware file ( 211 ) and update status data ( 212 ) associated with the firmware file ( 211 ), the update status data ( 212 ) including an accumulated offset value and a status flag, the method comprising steps of: a) receiving a current-received data packet from one of the host-end devices, the current-received data packet having a length value and a fragment offset value; b) determining, by the processor, whether the current-received data packet is a first one of data packets constituting an update file; c) when it is determined that the current-received data packet is the first one of the data packets constituting the update file, determining, by the processor, whether the status flag indicates that the firmware file ( 211 ) is undergoing an update process; d) when it is determined that the status flag indicates that the firmware file ( 211 ) is not undergoing an update process, setting, by the processor, the status flag to indicate that the firmware file ( 211 ) is undergoing an update process, storing the current-received data packet in the storage device, and updating, by the processor, the accumulated offset value based on the length value and the fragment offset value of the current-received data packet; e) when it is determined in step b) that the current-received data packet is not the first one of data packets constituting the update file, determining, by the processor, whether the current-received data packet is received in a correct order; f) when it is determined in step e) that the current-received data packet is received in the correct order, storing the current-received data packet in the storage device, and updating, by the processor, the accumulated offset value based on the length value and the fragment offset value of the current-received data packet; g) determining, by the processor, whether the current-received data packet is a last one of the data packets constituting the update file; and h) when it is determined that the current-received data packet is not the last one of the data packets constituting the update file, repeating steps a) to g) for receiving another data packet from the one of the host-end devices as the current-received data packet. 2. The method of claim 1 , the update status data further including a latest receipt time at which a latest-received data packet is received by the I/O module right before the current-received data packet, the method further comprising, after step a), steps of: determining a current time instance at which the current-received data packet is received; replacing the latest receipt time by the current time instance; determining whether a time gap between the current time instance and the latest receipt time is longer than a predetermined time period; and when it is determined that the time gap is longer than the predetermined time period, setting the status flag to indicate that the firmware file ( 211 ) is not undergoing an update process. 3. The method of claim 1 , wherein, when it is determined by the processor that the current-received data packet is the last one of the data packets constituting the update file in step g), the processor is programmed to perform the steps of: determining whether the data packets stored in the storage device completely constitute the update file; when it is determined that the data packets stored in the storage device completely constitute the update file, by the processor, updating the firmware file with the update file and setting the status flag to indicate that the firmware file ( 211 ) is not undergoing an update process; and when it is determined that the data packets stored in the storage device do not completely constitute the update file, generating an alert notification indicating that the update of the firmware file ( 211 ) is unsuccessful and transmitting the alert notification to the one of the host-end devices. 4. The method of claim 3 , the first one of the data packets including a cyclic redundancy check (CRC) code, wherein the step of determining whether the data packets stored in the storage device completely constitute the update file includes: performing a CRC operation on the data packers received, so as to obtain a CRC value; determining whether the CRC value conforms with the CRC code; and determining that the data packets stored in the storage device completely constitute the update file when the CRC value conforms with the CRC code. 5. The method of claim 1 , further comprising a step of: when it is determined in step c) that the status flag indicates that the firmware file ( 211 ) is undergoing an update process, transmitting an occupation notification to the one of the host-end devices indicating that the firmware file ( 211 ) is undergoing an update process, and discarding the current-received data packet. 6. The method of claim 1 , wherein in step e), the processor compares the fragment offset value of the current-received data packet with the accumulated offset value, and determines that the current-received data packet is received in a correct order when the fragment offset value is identical with the accumulated offset value. 7. The method of claim 6 , further comprising a step of: when it is determined in step e) that the current-received data packet is not received in the correct order, transmitting a packet request that includes the accumulated offset value to the one of the host-end devices to cause the one of the host-end devices to transmit a specific packet to the I/O module, the specific packet having a fragment offset value identical with the accumulated offset value. 8. The method of claim 1 , further comprising a step of: when it is determined in step g) that the current-received data packet is not the last one of the data packets constituting the update file, transmitting a packet request that includes the accumulated offset value to the one of the host-end devices to cause the one of the host-end devices to transmit a specific packet to the I/O module, the specific packet having a fragment offset value identical with the accumulated offset value. 9. The method of claim 1 , the accumulated offset value initially being set at an initial offset value, wherein in step b), the processor compares the fragment offset value of the current-received data packet with the initial offset value, and determines that the current-received data packet is the first one of the data packets constituting the update file when the fragment offset value is identical with the initial offset value. 10. The method of claim 1 , the accumulated offset value originally being set at an initial offset value, wherein the determination made in step g) is based on the initial offset value, the accumulated offset value that has been updated, and a total size value of the update file that is included in the first one of the data packets constituting the update file. 11. The method of claim 10 , wherein in step g), the processor calculates a summation of the initial offset value and the total size value, compares the summation with the accumulated offset value, and determines that the current-received data packet is the last one of the data packets constituting the update file when the summation is identical with the accumulated offset value. 12. The method of claim 2 , wherein the predetermined time period is set to be longer than the time required for the entire method to be implemented.

Assignees

Inventors

Classifications

  • G06F8/65Primary

    Updates (security arrangements therefor G06F21/57) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10001987B2 cover?
A method is for updating an original firmware file of an I/O module which communicates with multiple host-end devices and stores the original firmware file. The method includes: receiving a current-received data packet from one host-end device; when it is determined that the current-received data packet is a first data packet constituting an update file, and that the original firmware file is n…
Who is the assignee on this patent?
Mitac Computing Tech Corp
What technology area does this patent fall under?
Primary CPC classification G06F8/65. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 19 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).