An apparatus and method for providing a back out routine for a failed
programmable hardware update is provided. In one embodiment, the method
includes: a) storing a new software image for the programmable device
associated with the hardware update, b) storing a previous software image
for the programmable device, c) programming the programmable device to
operate according to the new software image, d) determining if there is a
failure associated with the programming step, and e) if a failure is
identified, programming the programmable device to operate according to
the previous software image, otherwise the hardware update to the
programmable device was successful. In one aspect, the back out routine
is provided for a program load failure. In another aspect, the back out
routine is provided for a programmable device failure.