Updating firmware stored in a rewritable non-volatile memory as a
plurality of firmware code images having position dependent code. A
plurality of update code images are made available that have position
dependent code specifying positions of a rewritable non-volatile memory,
such that each update code image is suitable for replacing a different
stored code image. A computer processor determines which stored code
image is to be updated; and selects the one of the plurality of update
code images that has position dependent code suitable for replacing the
code image to be updated.