Patent ID: 8528007

Claim:
A host system comprising: an operating system segmented into (i) a user space, and (ii) a kernel space, wherein the user space stores a firmware file, and wherein the kernel space comprises memory; and a device driver of a hardware device, wherein the device driver is stored in the kernel space and is configured to perform a plurality of download cycles to download the firmware file from the user space to the memory of the kernel space, wherein the hardware device is separate from the operating system, and wherein, in performing the plurality of download cycles, the device driver is configured to during a first download cycle of the plurality of download cycles, transfer a first block of data of the firmware file to the memory of the kernel space, and during each current download cycle of the plurality of download cycles performed subsequent to the first download cycle, identify a first segment of the memory of the kernel space and a second segment of the memory of the kernel space, wherein data including the first block of data of the firmware file was stored in the first segment of the memory of the kernel space during a previous download cycle, copy the data including the first block of data of the firmware file from the first segment of the memory of the kernel space to the second segment of the memory of the kernel space, and transfer a block of data of the firmware file, not previously stored in the memory of the kernel space, to the second segment of the memory of the kernel space, wherein the block of data, not previously stored in the memory of the kernel space, prior to the transfer to the second segment of the memory of the kernel space, is appended to the data stored in the second segment of the memory of the kernel space.