A process for using a boot loader to load a set of boot commands from one of three boot images accessible to a device before loading a system application; the process comprising: providing power to a first device with the boot loader and to at least one peripheral device in communication with the first device; running a read-only boot image; and checking to ensure a first upgradable boot image is not corrupted; if the check of the first upgradable boot image indicates that the first upgradable boot image is not corrupted, then set a boot source setting within a non-volatile memory to point to the first upgradable boot image; before automatically activating a system power reset for both the first device and the at least one peripheral device; before starting to boot the device using the first upgradable boot image in accordance with the boot source setting to load a set of boot commands; before setting the boot source setting to point to the read-only boot image and starting a system application for the first device; if the check of the first upgradable boot image indicates that the first upgradable boot image is corrupted, then check to ensure a second upgradable boot image is not corrupted; if the check of the second upgradable boot image indicates that the second upgradable boot image is not corrupted, then set the boot source setting within the non-volatile memory to point to the second upgradable boot image; before automatically activating the system power reset for both the first device and the at least one peripheral device; before starting to boot the device using the second upgradable boot image in accordance with the boot source setting to load the set of boot commands; before setting the boot source setting to point to the read-only boot image and starting a system application for the first device; if the check of the first upgradable boot image indicates that the first upgradable boot image is corrupted; and the check of the second upgradable boot image indicates that the second upgradable boot image is corrupted then stop the process to allow a set of diagnostics to be performed. providing power to a first device with the boot loader and to at least one peripheral device in communication with the first device; running a read-only boot image; and checking to ensure a first upgradable boot image is not corrupted; if the check of the first upgradable boot image indicates that the first upgradable boot image is not corrupted, then set a boot source setting within a non-volatile memory to point to the first upgradable boot image; before automatically activating a system power reset for both the first device and the at least one peripheral device; before starting to boot the device using the first upgradable boot image in accordance with the boot source setting to load a set of boot commands; before setting the boot source setting to point to the read-only boot image and starting a system application for the first device; if the check of the first upgradable boot image indicates that the first upgradable boot image is corrupted, then check to ensure a second upgradable boot image is not corrupted; if the check of the second upgradable boot image indicates that the second upgradable boot image is not corrupted, then set the boot source setting within the non-volatile memory to point to the second upgradable boot image; before automatically activating the system power reset for both the first device and the at least one peripheral device; before starting to boot the device using the second upgradable boot image in accordance with the boot source setting to load the set of boot commands; before setting the boot source setting to point to the read-only boot image and starting a system application for the first device; if the check of the first upgradable boot image indicates that the first upgradable boot image is corrupted; and the check of the second upgradable boot image indicates that the second upgradable boot image is corrupted then stop the process to allow a set of diagnostics to be performed.