A process for using a boot loader to load a set of boot commands from one of two boot images accessible to a device before loading a system application; the process comprising: assigning one memory location selected from a first memory location and a second memory location to become a current active memory location in accordance with a boot source setting value; and assigning another memory location selected from the first memory location and the second memory location but not the one memory location as a current inactive memory location; wherein the first memory location, the second memory location, and the boot source setting value are all in non-volatile memory accessible by the boot loader; providing power to a device with the boot loader and providing power to at least one peripheral device in communication with the device; booting the device with an upgradable boot image found in the current active memory location as indicated in the boot source setting value, before loading a system application for the device; if a new upgradable boot image exists, then load the new upgradable boot image to the current inactive memory location; if a check of the new upgradable boot image in the current inactive memory location indicates a failure to load properly, then a next reboot of the device will continue to use the current active memory location; and if a check of the new upgradable boot image in the current inactive memory location indicates a valid boot image was loaded into the current inactive memory location, then 1) change the boot source setting value to make the current inactive memory location into a new active memory location and make the current active memory location into a new inactive memory location; before 2) applying a power cycle to the device and the at least one peripheral device in communication with the device so that successful loading of the new upgradable boot image causes booting of the device with the new upgradable boot image found in the new active memory location. assigning one memory location selected from a first memory location and a second memory location to become a current active memory location in accordance with a boot source setting value; and assigning another memory location selected from the first memory location and the second memory location but not the one memory location as a current inactive memory location; wherein the first memory location, the second memory location, and the boot source setting value are all in non-volatile memory accessible by the boot loader; providing power to a device with the boot loader and providing power to at least one peripheral device in communication with the device; booting the device with an upgradable boot image found in the current active memory location as indicated in the boot source setting value, before loading a system application for the device; if a new upgradable boot image exists, then load the new upgradable boot image to the current inactive memory location; if a check of the new upgradable boot image in the current inactive memory location indicates a failure to load properly, then a next reboot of the device will continue to use the current active memory location; and if a check of the new upgradable boot image in the current inactive memory location indicates a valid boot image was loaded into the current inactive memory location, then 1) change the boot source setting value to make the current inactive memory location into a new active memory location and make the current active memory location into a new inactive memory location; before 2) applying a power cycle to the device and the at least one peripheral device in communication with the device so that successful loading of the new upgradable boot image causes booting of the device with the new upgradable boot image found in the new active memory location. 1) change the boot source setting value to make the current inactive memory location into a new active memory location and make the current active memory location into a new inactive memory location; before 2) applying a power cycle to the device and the at least one peripheral device in communication with the device so that successful loading of the new upgradable boot image causes booting of the device with the new upgradable boot image found in the new active memory location.