# US 2021/0240489 A1 · Firmware update patch

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0240489 A1
- Document ID: US20210240489A1
- Status: Published application
- Kind: A1
- Application number: 16/874,276
- Filed: 2020-05-14
- Published: 2021-08-05
- Earliest claimed: 2020-02-04
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Daini XIE; Thirupathaiah ANNAPUREDDY; Mallik BULUSU; Muhammad Ashfaq AHMED
- Web page: https://patentgrep.com/patent/US20210240489A1

## CPC

- G06F 9/4406: {Loading of operating system}
- G06F 8/654: using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
- G06F 9/4411: {Configuring for operating with peripheral devices; Loading of device drivers}
- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F 21/572: {Secure firmware programming, e.g. of basic input output system [BIOS]}
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F 21/107: {License processing; Key processing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computing system is provided, including a processor and memory storing instructions that, when executed, cause the processor to store a firmware update patch in a runtime buffer included in the memory. The runtime buffer may be accessible by firmware and an operating system of the computing system. The processor may perform a first verification check on the firmware update patch. When the firmware update patch passes the first verification check, the processor may copy the firmware update patch to a system management random access memory (SMRAM) buffer included in the memory. The SMRAM buffer may be accessible by the firmware and inaccessible by the operating system. The processor may perform a second verification check on the copy of the firmware update patch. When the copy of the firmware update patch passes the second verification check, the processor may execute the copy of the firmware update patch.

## Claims

### Claim 1

A computing system comprising:
a processor; and
memory storing instructions that, when executed, cause the processor to:
store a firmware update patch in a runtime buffer included in the memory, wherein the runtime buffer is accessible by firmware and an operating system of the computing system;
perform a first verification check on the firmware update patch stored in the runtime buffer;
when the firmware update patch passes the first verification check, copy the firmware update patch to a system management random access memory (SMRAM) buffer included in the memory, wherein the SMRAM buffer is accessible by the firmware and inaccessible by the operating system;
perform a second verification check on the copy of the firmware update patch stored in the SMRAM buffer; and
when the copy of the firmware update patch passes the second verification check, execute the copy of the firmware update patch.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein the firmware update patch is a Unified Extensible Framework Interface (UEFI) runtime patch (URP) capsule including a firmware volume, a URP capsule manifest header, a platform public key, and a patch signature.

### Claim 3 (depends on 2)

The computing system of claim 2, wherein:
the first verification check is performed on at least the platform public key; and
the second verification check is performed on at least a copy of the platform public key included in the copy of the firmware update patch.

### Claim 4 (depends on 2)

The computing system of claim 2, wherein:
the first verification check is performed on at least the patch signature; and
the second verification check is performed on at least a copy of the patch signature included in the copy of the firmware update patch.

### Claim 5 (depends on 1)

The computing system of claim 1, wherein the memory further stores instructions that, when executed, cause the processor to store a firmware patch version indicator in the memory.

### Claim 6 (depends on 5)

The computing system of claim 5, wherein:
the first verification check is further performed on the firmware patch version indicator; and
the instructions, when executed, cause the processor to determine that the firmware update patch passes the first verification check at least in part by determining that a firmware version indicated by the firmware patch version indicator is more recent than a currently installed firmware version.

### Claim 7 (depends on 1)

The computing system of claim 1, wherein:
at least one of the first verification check and the second verification check includes a determination of an available capacity of the SMRAM buffer; and
the instructions, when executed, cause the processor to determine that the firmware update patch passes the at least one of the first verification check and the second verification check at least in part by determining that the available capacity of the SMRAM buffer is larger than a file size of the firmware update patch.

### Claim 8 (depends on 1)

The computing system of claim 1, wherein the firmware update patch is an update to a system management mode (SMM) driver having a primary globally unique identifier (GUID).

### Claim 9 (depends on 8)

The computing system of claim 8, wherein:
the first verification check, the copying of the firmware update patch to the SMRAM buffer, and the second verification check are performed at an SMM core; and
the memory further stores instructions that, when executed, cause the processor to execute an SMM helper configured to apply the copy of the firmware update patch to the SMM core to obtain an updated SMM core.

### Claim 10 (depends on 9)

The computing system of claim 9, wherein the SMM helper is configured to:
assign a staging GUID to the copy of the firmware update patch stored in the SMRAM buffer;
subsequently to applying the copy of the firmware update patch to the SMM core, reassign the primary GUID to the updated SMM core.

### Claim 11 (depends on 1)

The computing system of claim 1, wherein the copy of the firmware update patch is executed in a runtime system management mode (SMM) without rebooting the computing system.

### Claim 12

A method for use with a computing system, the method comprising:
storing a firmware update patch in a runtime buffer included in memory, wherein the runtime buffer is accessible by firmware and an operating system of the computing system;
performing a first verification check on the firmware update patch stored in the runtime buffer;
when the firmware update patch passes the first verification check, copying the firmware update patch to a system management random access memory (SMRAM) buffer included in the memory, wherein the SMRAM buffer is accessible by the firmware and inaccessible by the operating system;
performing a second verification check on the copy of the firmware update patch stored in the SMRAM buffer; and
when the copy of the firmware update patch passes the second verification check, executing the copy of the firmware update patch.

### Claim 13 (depends on 12)

The method of claim 12, wherein the firmware update patch is a Unified Extensible Framework Interface (UEFI) runtime patch (URP) capsule including a firmware volume, a URP capsule manifest header, a platform public key, and a patch signature.

### Claim 14 (depends on 13)

The method of claim 13, wherein:
the first verification check is performed on at least the platform public key; and
the second verification check is performed on at least a copy of the platform public key included in the copy of the firmware update patch.

### Claim 15 (depends on 13)

The method of claim 13, wherein:
the first verification check is performed on at least the patch signature; and
the second verification check is performed on at least a copy of the patch signature included in the copy of the firmware update patch.

### Claim 16 (depends on 12)

The method of claim 12, further comprising storing a firmware patch version indicator in the memory, wherein:
the first verification check is further performed on the firmware patch version indicator; and
determining that the firmware update patch passes the first verification check includes determining that a firmware version indicated by the firmware patch version indicator is more recent than a currently installed firmware version.

### Claim 17 (depends on 12)

The method of claim 12, wherein the firmware update patch is an update to a system management mode (SMM) driver having a primary globally unique identifier (GUID).

### Claim 18 (depends on 17)

The method of claim 17, wherein:
the first verification check, the copying of the firmware update patch to the SMRAM buffer, and the second verification check are performed at an SMM core; and
the method further comprises executing an SMM helper configured to apply the copy of the firmware update patch to the SMM core to obtain an updated SMM core.

### Claim 19 (depends on 18)

The method of claim 18, wherein executing the SMM helper includes:
assigning a staging GUID to the copy of the firmware update patch stored in the SMRAM buffer;
subsequently to applying the copy of the firmware update patch to the SMM core, reassigning the primary GUID to the updated SMM core.

### Claim 20

A computing system comprising:
a processor; and
memory storing instructions that, when executed, cause the processor to:
store a firmware update patch in a runtime buffer included in the memory, wherein the runtime buffer is accessible by firmware and an operating system of the computing system;
at a system management mode (SMM) core having a primary globally unique identifier (GUID), copy the firmware update patch to a system management random access memory (SMRAM) buffer included in the memory, wherein the SMRAM buffer is accessible by the firmware and inaccessible by the operating system; and
execute the copy of the firmware update patch, wherein executing the copy of the firmware update patch includes, at an SMM helper:
assigning a staging GUID to the copy of the firmware update patch stored in the SMRAM buffer;
applying the copy of the firmware update patch to the SMM core to obtain an updated SMM core; and
reassigning the primary GUID to the updated SMM core.
