Patent ID: 8719585

Claim:
A method of securely updating a boot image: receiving, by a device, a new boot loader portion of a boot code from a service provider; loading, by the device, the received new boot loader portion of the boot code into a given peripheral of the device; executing, by the device, a reset after loading the received new boot loader portion of the boot code into the given peripheral; and executing, by a processing unit of the device in response to executing the reset, a first portion of the boot code stored on an integrated circuit chip of the processing unit to; start a secure chain of trust from executing by the processing unit the first portion of the boot code stored in read only memory on the integrated circuit chip of the processing unit; obtain a secure boot key, during execution of the first portion of the boot code, from a secure boot register which is protected by persistent read/write bits that are set by the first portion of the boot code after obtaining the secure boot key to prevent access from outside the first portion of the boot code; access a device key and a device identifier while executing the first portion of the boot code; calculate a secure system key from the secure boot key, device key and device identifier while executing the first portion of the boot code and storing the secure system key and secure boot key in respective keyslots of an encryption/decryption engine and the secure system key in a secure system key register in an always-on domain; authenticate the new boot loader portion of the boot code from the given peripheral device during execution of the first portion of the boot code; store the authenticated new boot loader portion of the boot code encrypted by the encryption/decryption engine, using the secure boot key in the secure boot key keyslot of the encryption/decryption engine, in a specified peripheral device during execution of the first portion of the boot code; and flush the secure boot key from the secure boot key keyslot of the encryption/decryption engine after encrypting the authenticated new boot loader during execution of the first portion of the boot code.