Patent ID: 8046776
Filing Date: 2011-10-25
Classification: G06F

Abstract:
1. A method of transferring a firmware file between an operating system of a host and a hardware device of the host, the method is executed by a processor and comprises performing N cycles, where N is an integer greater than 1 and is based on a number of blocks of data remaining in the firmware file and not already transferred between the operating system and the hardware device, wherein each of the N cycles comprises: transferring a first block of data to a first segment of a memory of a computer system, wherein the memory is allocated to a device driver, wherein the first block of data is transferred from a firmware file source to the first segment during a first one of the N cycles, wherein the first block of data is transferred from a second segment of the memory to the first segment during a cycle subsequent to the first one of the N cycles, and wherein the second segment stores a combined block of data; transferring a second block of data from the firmware file source to the second segment of the memory; copying the first block of data into the second segment; and appending the first block of data to the second block of data to form the combined block of data in the second segment, wherein the second block of data sequentially follows the first block of data in the second segment, wherein the first blocks of data transferred in the N cycles are different from each other and are transferred to different segments of the memory, and the second blocks of data transferred in the N cycles are different from each other and are transferred to different segments of the memory, and wherein, during a second one of the N cycles, the transferring of the first block of data comprises transferring the combined block of data formed during the first one of the N cycles from the second segment of the first one of the N cycles to the first segment of the second one of the N cycles.