IP Library › Granted Patent US 12,524,548
Granted Patent B2
US 12,524,548 · App. 17/695,817 · Granted Jan 13, 2026

Rollback of processor microcode updates in runtime without system reboot

Inventors: Pratim Bose (Kolkata, IN); Karunakara Kotary (Portland, OR); Kausik Ghosh (Bangalore, IN); Arun Hodigere (Bangalore, IN)
Assignee: Intel Corporation
G06F21/572G06F2221/033
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,524,548
App. No.
17/695,817
Granted
Jan 13, 2026
Kind
B2
Abstract

Techniques for updates and rollbacks of firmware patches in a computing system during runtime are provided. A processor includes one or more intellectual property (IP) blocks; a secure patch memory to store a first firmware patch in a primary patch region and a second firmware patch in a secondary patch region; a processing core to execute a first patch commit instruction; and a security controller to send the second firmware patch to the one or more IP blocks, set the secondary patch region to the primary patch region when the first patch commit instruction indicates the second firmware patch is valid, and get the first firmware patch from the primary patch region and send the first firmware patch to the one or more IP blocks when the first patch commit instruction indicates the second firmware patch is invalid.

Claims (37)

1 . An apparatus comprising:

one or more intellectual property (IP) blocks;

a secure patch memory to store a first firmware patch in a primary patch region and a second firmware patch in a secondary patch region, wherein the secure patch memory comprises a plurality of primary patch regions and a plurality of secondary patch regions associated with the plurality of primary patch regions, each of the primary patch regions and the secondary patch regions storing firmware patches for a selected one or more of the one or more IP blocks;

a processing core to execute a first patch commit instruction; and

a security controller to send the second firmware patch to the one or more IP blocks, set the secondary patch region to the primary patch region when the first patch commit instruction indicates the second firmware patch is valid, and get the first firmware patch from the primary patch region and send the first firmware patch to the one or more IP blocks when the first patch commit instruction indicates the second firmware patch is invalid.

2 . The apparatus of claim 1 , wherein the secure patch memory comprises a primary save state region to store register values modified by the first firmware patch and a secondary save state region to store register values modified by the second firmware patch and the security controller is to store the register values modified by the second firmware patch into the secondary save state region.

3 . The apparatus of claim 2 , the security controller to get the register values from the primary save state region and send the register values from the primary save state region to the one or more IP blocks when the first patch commit instruction indicates the second firmware patch is invalid.

4 . The apparatus of claim 1 , the processing core to execute a second patch commit instruction, the second patch commit instruction indicating an address of the second firmware patch in a system memory, and the security controller to get the second firmware patch from the system memory at the address and store the second firmware patch in the secondary patch region in the secure patch memory.

5 . The apparatus of claim 4 , the processing core to receive the first patch commit instruction and the second patch commit instruction from one of an operating system and a baseboard management controller.

6 . The apparatus of claim 1 , wherein one of an operating system and a baseboard management controller determines if the second firmware patch is valid or invalid.

7 . The apparatus of claim 1 , wherein the processing core to execute a first patch commit instruction; and the security controller to send the second firmware patch to the one or more IP blocks, set the secondary patch region to the primary patch region when the first patch commit instruction indicates the second firmware patch is valid, and get the first firmware patch from the primary patch region and send the first firmware patch to the one or more IP blocks when the first patch commit instruction indicates the second firmware patch is invalid, during runtime of a computing system including the processing core and the security controller.

8 . The apparatus of claim 1 , wherein the secure patch memory and the security controller are on a same die as the processing core.

9 . The apparatus of claim 1 , wherein the secure patch memory is accessible only by the security controller.

10 . The apparatus of claim 1 , wherein the first firmware patch and the second firmware patch comprise a plurality of binary images, each of the plurality of binary images for a selected one or more IP blocks.

11 . A method comprising:

storing a first firmware patch in a primary patch region of a secure patch memory in a processor and a second firmware patch in a secondary patch region in the secure patch memory, wherein the secure patch memory comprises a plurality of primary patch regions and a plurality of secondary patch regions associated with the plurality of primary patch regions, each of the primary patch regions and the secondary patch regions storing firmware patches for a selected one or more of one or more intellectual property (IP) blocks of a processor;

executing, by a core of the processor, a first patch commit instruction; and

sending, by a security controller of the processor, the second firmware patch to the one or more IP blocks of the processor, setting the secondary patch region to the primary patch region when the first patch commit instruction indicates the second firmware patch is valid, and getting the first firmware patch from the primary patch region and sending the first firmware patch to the one or more IP blocks when the first patch commit instruction indicates the second firmware patch is invalid.

12 . The method of claim 11 , comprising storing register values modified by the first firmware patch in a primary save state region of the secure patch memory and storing register values modified by the second firmware patch and in a secondary save state region of the secure patch memory.

13 . The method of claim 12 , comprising getting, by the security controller, the register values from the primary save state region and sending the register values from the primary save state region to the one or more IP blocks when the first patch commit instruction indicates the second firmware patch is invalid.

14 . The method of claim 11 , comprising executing a second patch commit instruction, the second patch commit instruction indicating an address of the second firmware patch in a system memory, and getting, by the security controller, the second firmware patch from the system memory at the address and storing the second firmware patch in the secondary patch region in the secure patch memory.

15 . The method of claim 14 , comprising receiving, by the core, the first patch commit instruction and the second patch commit instruction from one of an operating system and a baseboard management controller.

16 . The method of claim 11 , comprising determining, by one of an operating system and a baseboard management controller, if the second firmware patch is valid or invalid.

17 . The method of claim 11 , comprising executing, by the core, a first patch commit instruction; and sending, by the security controller, the second firmware patch to the one or more IP blocks, setting the secondary patch region to the primary patch region when the first patch commit instruction indicates the second firmware patch is valid, and getting the first firmware patch from the primary patch region and sending the first firmware patch to the one or more IP blocks when the first patch commit instruction indicates the second firmware patch is invalid, during runtime of a computing system including the core and the security controller.

18 . A system, comprising:

a system memory to store a first firmware patch and a second firmware patch; and

a processor, the processor including:

one or more intellectual property (IP) blocks;

a secure patch memory to store a first firmware patch in a primary patch region and a second firmware patch in a secondary patch region, wherein the secure patch memory comprises a plurality of primary patch regions and a plurality of secondary patch regions associated with the plurality of primary patch regions, each of the primary patch regions and the secondary patch regions storing firmware patches for a selected one or more of the one or more IP blocks;

a processing core to execute a first patch commit instruction; and

a security controller to send the second firmware patch to the one or more IP blocks, set the secondary patch region to the primary patch region when the first patch commit instruction indicates the second firmware patch is valid, and get the first firmware patch from the primary patch region and send the first firmware patch to the one or more IP blocks when the first patch commit instruction indicates the second firmware patch is invalid.

19 . The system of claim 18 , wherein the secure patch memory comprises a primary save state region to store register values modified by the first firmware patch and a secondary save state region to store register values modified by the second firmware patch and the security controller is to store the register values modified by the second firmware patch into the secondary save state region.

20 . The system of claim 19 , the security controller to get the register values from the primary save state region and send the register values from the primary save state region to the one or more IP blocks when the first patch commit instruction indicates the second firmware patch is invalid.

21 . The system of claim 18 , the processing core to execute a second patch commit instruction, the second patch commit instruction indicating an address of the second firmware patch in a system memory, and the security controller to get the second firmware patch from the system memory at the address and store the second firmware patch in the secondary patch region in the secure patch memory.

22 . The system of claim 18 , wherein the processing core to execute a first patch commit instruction; and the security controller to send the second firmware patch to the one or more IP blocks, set the secondary patch region to the primary patch region when the first patch commit instruction indicates the second firmware patch is valid, and get the first firmware patch from the primary patch region and send the first firmware patch to the one or more IP blocks when the first patch commit instruction indicates the second firmware patch is invalid, during runtime of a computing system including the processing core and the security controller.

23 . The system of claim 18 , wherein the secure patch memory and the security controller are on a same die as the processing core.

24 . The system of claim 18 , wherein the secure patch memory is accessible only by the security controller.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2022
From: BOSE, PRATIM; KOTARY, KARUNAKARA; GHOSH, KAUSIK; HODIGERE, ARUN
To: INTEL CORPORATION
Reel/Frame 059274/0727 →
Continuity (1)
Related Publication 20230297680A1 · Sep 21, 2023
References Cited (24)
US 11281453B1 · Ramachandran · 2022 [cited by examiner]
US 11507394B1 · Pyla · 2022 [cited by examiner]
US 20070088939A1 · Baumberger · 2007 [cited by examiner]
US 20130097655A1 · Vaidyanathan · 2013 [cited by examiner]
US 20140040605A1 · Futral · 2014 [cited by examiner]
US 20150019800A1 · Ramirez · 2015 [cited by examiner]
US 20170046152A1 · Shih · 2017 [cited by examiner]
US 20170308502A1 · Hindle · 2017 [cited by examiner]
US 20180307479A1 · Subramanian · 2018 [cited by examiner]
US 20190004788A1 · Juliato · 2019 [cited by examiner]
US 20190042230A1 · Dewan · 2019 [cited by examiner]
US 20190073478A1 · Khessib · 2019 [cited by examiner]
US 20200226260A1 · Aggarwal · 2020 [cited by examiner]
US 20200226261A1 · Dewan · 2020 [cited by examiner]
US 20200257521A1 · Jayakumar · 2020 [cited by examiner]
US 20200356357A1 · Narasimhan · 2020 [cited by examiner]
US 20200372157A1 · Singer · 2020 [cited by examiner]
US 20210303691A1 · Dewan · 2021 [cited by examiner]
US 20210357202A1 · Swirydczuk · 2021 [cited by examiner]
US 20220137955A1 · Aggarwal · 2022 [cited by examiner]
EP 3674890A1 · 2020 [cited by examiner]
Komano, Yuichi, et al. “Efficient and secure firmware update/rollback method for vehicular devices.” Information Security Practice and Experience: 14th International Conference, ISPEC 2018, Tokyo, Japan, Sep. 25-27, 201… [cited by examiner]
Ray, Sandip, Abhishek Basak, and Swarup Bhunia. “Security Policy in System-on-Chip Designs.”, 2019. (Year: 2019). [cited by examiner]
Intel Corporation, “Firmware Interface Table. BIOS Specification,” Apr. 2020, 17 pages, Revision 1.2, Document 599500. [cited by applicant]