Patent ID: 7562360

Claim:
A method for a device to download a device program data from a non-volatile data source of the device to a volatile memory of the device while connected to a host, comprising the following steps performed by the device: connecting to a host; and in response to one of a device power up and a device reset, waiting for a first request signal from the host; responding to the first request signal with a first negative acknowledgement (NAK); initiating downloading the device program from the non-volatile data source of the device to the volatile memory of the device for a predetermined time period based on the request signal; and in response to a subsequent request signal from the host, (a) if the device program is not completely downloaded, sending a subsequent NAK and continuing to download the device program from the non-volatile data source of the device to the volatile memory of the device, and (b) if the device program is completely downloaded, responding to the subsequent request signal by executing the device program, further comprising updating a download point each time the predetermined time period is completed, wherein the predetermined time period is a first time period for a data request signal, and a second time period for a status request signal and the first time period is five hundred milliseconds and the second time period is fifty milliseconds.