A system and method to effectively and efficiently update a version of
firmware resident in a device memory is provided. A method of identifying
one or more versions of firmware is provided by way of initializing a
device memory with a known pattern. In addition, the amount of free
unused memory space may be identified and calculated in a device memory.
The system and method generates software update packages that are minimal
in size providing cost benefit to a manufacturer and convenience to a
user.