1. A method for upgrading a software component on a computing device, the method comprising: storing a first software component in a first memory segment; maintaining a second software component in a second memory segment, different from the first memory segment, wherein the second software component enables the computing device to boot up; while continuing to store both the first software component in the first memory segment and the second software component in the second memory segment, modifying one or more address lines to access at least a portion of the second software component in the second memory segment after exiting a reset condition, when the execution of the first software component fails to satisfy a predetermined test condition; asserting a recovery mode flag and a first reset signal after failing to satisfy the predetermined test condition; fetching a reset vector from the first memory segment in response to the assertion of the first reset signal; and modifying the reset vector and placing a relocated address in the second memory segment on the one or more address lines in response to the assertion of the recovery mode flag.