US 11,669,322 B2
Firmware upgrade method and apparatus
Michael Nolan, Maynooth (IE); Keith Nolan, Mullingar (IE); Pat Cheevers, Dublin (IE); Jurijs Kacs, Duisburg (DE); Wael Guibene, Leixlip (IE); Charlie Sheridan, Ballivor (IE); Cliodhna Ni Scanaill, Broadford (IE); and Mark Kelly, Dublin (IE)
Assigned to Intel Corporation, Santa Clara, CA (US)
Filed by Intel Corporation, Santa Clara, CA (US)
Filed on Dec. 11, 2020, as Appl. No. 17/119,657.
Application 17/119,657 is a continuation of application No. 15/857,151, filed on Dec. 28, 2017, granted, now 10,866,798.
Prior Publication US 2021/0279049 A1, Sep. 9, 2021
Int. Cl. H04L 9/32 (2006.01); H04L 29/06 (2006.01); G06F 9/455 (2018.01); G06F 9/445 (2018.01); G06F 8/65 (2018.01); G06F 8/61 (2018.01); G06F 8/71 (2018.01); G06F 8/654 (2018.01)
CPC G06F 8/65 (2013.01) [G06F 8/64 (2013.01); G06F 8/654 (2018.02); G06F 8/71 (2013.01)] 23 Claims
OG exemplary drawing
 
1. A replaceable hardware apparatus adapted to be coupled to a target device, the replaceable hardware apparatus comprising:
a hardware resource configured to be physically coupled to the target device, wherein the target device includes a memory device to store instructions that provide firmware instructions or software instructions for operation of the target device;
a storage device configured to store update data for deployment to the target device;
circuitry configured to host a trusted execution environment; and
a microcontroller comprising embedded memory to execute microcontroller instructions, wherein execution of the microcontroller instructions cause the microcontroller to:
detect coupling of the hardware resource to the target device;
boot the trusted execution environment;
cause the trusted execution environment to compute a hash on at least a portion of code stored on the replaceable hardware apparatus in the trusted execution environment to ensure integrity of the at least a portion of the code of the replaceable hardware apparatus before a change is made to the target device;
control interaction between the replaceable hardware apparatus and the target device;
perform attestation of attributes of the replaceable hardware apparatus to the target device, using the trusted execution environment; and
cause an update of at least one of: data, software instructions, or firmware instructions of the target device, using the update data obtained from the storage device, based on the attestation of the attributes of the replaceable hardware apparatus using the trusted execution environment.