US 12,455,969 B2
Validating read-only portions of firmware or a downloaded image thereof by boot firmware validated by secure flash memory
Cheng-Yi Hung, Valencia, PA (US); Vimalraj Vasudevan Thekkoot, San Jose, CA (US); Rochak Chadha, Pittsburgh, PA (US); and Gregory J. Zavertnik, Mountain House, CA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
Filed on Sep. 28, 2023, as Appl. No. 18/477,498.
Prior Publication US 2025/0111056 A1, Apr. 3, 2025
Int. Cl. G06F 21/57 (2013.01)
CPC G06F 21/575 (2013.01) [G06F 2221/033 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computing system comprising:
a secure flash memory that stores firmware that comprises boot firmware, a plurality of read-only portions, and a reference hash of the plurality of read-only portions, wherein the secure flash memory performs the following operations:
calculate a hash of a designated portion of the firmware to provide a calculated hash of the designated portion, the designated portion of the firmware comprising the boot firmware and the reference hash of the plurality of read-only portions; and
validate the designated portion of the firmware by comparing the calculated hash of the designated portion and a reference hash of the designated portion that is securely stored in the secure flash memory;
a device that executes the firmware, wherein the boot firmware performs the following operations:
based at least on the designated portion of the firmware being validated, initiate a boot of the firmware by calculating a hash of the plurality of read-only portions to provide a calculated hash of the plurality of read-only portions;
based at least on the designated portion of the firmware being validated, validate the plurality of read-only portions by comparing the calculated hash of the plurality of read-only portions and the reference hash of the plurality of read-only portions; and
based at least on the plurality of read-only portions being validated, complete the boot of the firmware; and
host software that, when executed, performs the following operations:
change a state of the designated portion of the firmware from a read-only state in which designated portion is not capable of being updated by the firmware to a writeable state in which the designated portion is capable of being updated by the firmware; and
based at least on the state of the designated portion of the firmware being changed from the read-only state to the writable state, update the designated portion of the firmware.