A method, system, and computer program for updating firmware in a data processing
system as a background operation allowing a user to utilize the computer for other
purposes during the update process is provided. In one embodiment, after an operating
system has been loaded and control has been transferred from the service processor
to the host, the service processor determines whether the level of a firmware copy
on a system component, such as an SPCN card, matches the current level of firmware
stored on a non-volatile memory accessible to the service processor. If the level
of the firmware copy in the component is different from the current level, the
service processor transfers the current level of firmware from the non-volatile
memory accessible to the service processor to the system component.