IP Library Granted Patent US 11,907,386
Granted Patent B2
US 11,907,386 · App. 17/027,835 · Granted Feb 20, 2024

Platform root-of-trust system

Inventors: Mukund P. Khatri (Austin, TX); Robert W. Hormuth (Cedar Park, TX); Jimmy D. Pike (Georgetown, TX); Gaurav Chawla (Austin, TX); William Price Dawkins (Lakeway, TX); Elie Jreij (Pflugerville, TX); Mark Steven Sanders (Roanoke, VA); Walter A. O'Brien, III (Westborough, MA)
Assignee: Dell Products L.P.
G06F21/6218G06F3/061G06F3/0652G06F3/0679G06F9/4401
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 11,907,386
App. No.
17/027,835
Granted
Feb 20, 2024
Kind
B2
Abstract

A platform root-of-trust system includes a System Control Processor (SCP) subsystem coupled to a central processing subsystem, a BIOS subsystem, and an I/O device. In response to an initialization instruction, the SCP subsystem begins initialization operations prior to the beginning of initialization operations for the central processing subsystem, the BIOS subsystem, and the I/O device. As part of SCP initialization operations, the SCP subsystem validates SCP subsystem initialization information to provide validated SCP subsystem initialization information, and uses the validated SCP subsystem initialization information to complete the SCP initialization operations. Subsequent to completing the SCP initialization operations, the SCP subsystem validates BIOS subsystem initialization information to provide validated BIOS subsystem initialization information for use by the BIOS subsystem in performing BIOS initialization operations, and validates I/O device initialization information to provide validated I/O device initialization information for use by the I/O device in performing I/O initialization operations.

Claims (77)

1. A platform root-of-trust system, comprising:

a central processing subsystem;

a Basic Input/Output System (BIOS) subsystem;

an Input/Output (I/O) device; and

a System Control Processor (SCP) subsystem that is coupled to the central processing subsystem, the BIOS subsystem, and the I/O device, wherein the SCP subsystem is configured to:

begin, in response to an initialization instruction, initialization operations for the SCP subsystem prior to the beginning of initialization operations for the central processing subsystem, the BIOS subsystem, and the I/O device;

validate, as part of the initialization operations for the SCP subsystem, SCP subsystem initialization information to provide validated SCP subsystem initialization information;

complete, using the validated SCP subsystem initialization information, the initialization operations for the SCP subsystem;

validate, subsequent to completing the initialization operations for the SCP subsystem, BIOS subsystem initialization information to provide validated BIOS subsystem initialization information, wherein the BIOS subsystem performs initialization operations for the BIOS subsystem using the validated BIOS subsystem initialization information; and

validate, subsequent to completing the initialization operations for the SCP subsystem, I/O device initialization information to provide validated I/O device initialization information, wherein the I/O device performs initialization operations for the I/O device using the validated I/O device initialization information.

2. The system of claim 1 , wherein the SCP subsystem includes at least one root-of-trust component that is configured to provide for the validation of the SCP subsystem initialization information by:

storing read-only instructions on a read-only SCP memory subsystem that is included in the SCP subsystem, wherein the read-only instruction are the first instructions executed subsequent to beginning the initialization operations for the SCP subsystem;

executing the read-only instructions to use a public key to verify that the SCP subsystem initialization information has been signed with a private key in order to provide the validated SCP subsystem initialization information.

3. The system of claim 1 , further comprising:

a Baseboard Management Controller (BMC) subsystem that is coupled to the SCP subsystem, wherein the SCP subsystem is configured to:

begin, in response to the initialization instruction, initialization operations for the SCP subsystem prior to the beginning of initialization operations for the BMC subsystem; and

validate, subsequent to completing the initialization operations for the SCP subsystem, BMC subsystem initialization information to provide validated BMC subsystem initialization information, wherein the BMC subsystem performs initialization operations for the BMC subsystem using the validated BMC subsystem initialization information.

4. The system of claim 1 , wherein the SCP subsystem is configured to:

perform at least one Baseboard Management Controller (BMC) remote-management operation.

5. The system of claim 1 , wherein the SCP subsystem is configured to:

receive an update for at least one of the BIOS subsystem initialization information and the I/O device initialization information;

validate the update received for the at least one of the BIOS subsystem initialization information and the I/O device initialization information to provide at least one verified update; and

replace the at least one of the BIOS subsystem initialization information and the I/O device initialization information with the at least one verified update.

6. The system of claim 1 , wherein the SCP subsystem is configured to:

generate, a request to erase a portion of a non-volatile storage subsystem on the I/O device; and

transmit, to the I/O device, the request to erase the portion of the non-volatile storage subsystem on the I/O device.

7. A System Control Processor (SCP) subsystem, comprising:

a System Control Processor (SCP) processing system; and

an SCP memory system that is coupled to the SCP processing system and that includes instructions that, when executed by the SCP processing system, cause the SCP processing system to provide an SCP engine that is configured to:

begin, in response to an initialization instruction, initialization operations for the SCP subsystem prior to the beginning of initialization operations for a central processing subsystem that is coupled to the SPC subsystem, a BIOS subsystem that is coupled to the SCP subsystem, and an I/O device that is coupled to the SCP subsystem;

validate, as part of the initialization operations for the SCP subsystem, SCP subsystem initialization information to provide validated SCP subsystem initialization information;

complete, using the validated SCP subsystem initialization information, the initialization operations for the SCP subsystem;

validate, subsequent to completing the initialization operations for the SCP subsystem, BIOS subsystem initialization information to provide validated BIOS subsystem initialization information that is configured for use by the BIOS subsystem to perform initialization operations for the BIOS subsystem; and

validate, subsequent to completing the initialization operations for the SCP subsystem, I/O device initialization information to provide validated I/O device initialization information that is configured for use by the I/O device to perform initialization operations for the I/O device.

8. The SCP subsystem of claim 7 , further comprising:

at least one root-of-trust component that includes:

a read-only SCP memory subsystem that is included in the SCP memory system and that stores read-only instructions that are the first instructions executed subsequent to beginning the initialization operations for the SCP subsystem; and

the SCP processing system that executes the read-only instructions to use a public key to verify that the SCP subsystem initialization information has been signed with a private key in order to provide the validated SCP subsystem initialization information.

9. The SCP subsystem of claim 7 , wherein the SCP engine is configured to:

begin, in response to the initialization instruction, initialization operations for the SCP subsystem prior to the beginning of initialization operations for a Baseboard Management Controller (BMC) subsystem that is coupled to the SCP subsystem; and

validate, subsequent to completing the initialization operations for the SCP subsystem, BMC subsystem initialization information to provide validated BMC subsystem initialization information that is configured for use by the BMC subsystem to perform initialization operations for the BMC subsystem.

10. The SCP subsystem of claim 7 , wherein the SCP engine is configured to:

perform at least one Baseboard Management Controller (BMC) remote-management operation.

11. The SCP subsystem of claim 7 , wherein the SCP engine is configured to:

receive an update for at least one of the BIOS subsystem initialization information and the I/O device initialization information;

validate the update received for the at least one of the BIOS subsystem initialization information and the I/O device initialization information to provide at least one verified update; and

replace the at least one of the BIOS subsystem initialization information and the I/O device initialization information with the at least one verified update.

12. The SCP subsystem of claim 7 , wherein the SCP engine is configured to:

generate, a request to erase a portion of a non-volatile storage subsystem on the I/O device; and

transmit, to the I/O device, the request to erase the portion of the non-volatile storage subsystem on the I/O device.

13. The SCP subsystem of claim 7 , wherein the I/O device is a Peripheral Component Interconnect express (PCIe) device, and wherein the SCP engine is configured to:

authenticate the PCIe device; and

allow, in response to authenticating the PCIe device, the PCIe device to operate with the central processing subsystem.

14. A method for providing a platform root-of-trust, comprising:

beginning, by a System Control Processor (SCP) subsystem in response to an initialization instruction, initialization operations for the SCP subsystem prior to the beginning of initialization operations for a central processing subsystem that is coupled to the SCP subsystem, a BIOS subsystem that is coupled to the SCP subsystem, and an I/O device that is coupled to the SCP subsystem;

validating, by the SCP subsystem as part of the initialization operations for the SCP subsystem, SCP subsystem initialization information to provide validated SCP subsystem initialization information;

completing, by the SCP subsystem using the validated SCP subsystem initialization information, the initialization operations for the SCP subsystem;

validating, by the SCP subsystem subsequent to completing the initialization operations for the SCP subsystem, BIOS subsystem initialization information to provide validated BIOS subsystem initialization information that is configured for use by the BIOS subsystem to perform initialization operations for the BIOS subsystem; and

validating, by the SCP subsystem subsequent to completing the initialization operations for the SCP subsystem, I/O device initialization information to provide validated I/O device initialization information that are configured for use by the I/O device to perform initialization operations for the I/O device.

15. The method of claim 14 , wherein the SCP subsystem includes at least one root-of-trust component that is configured to provide for the validation of the SCP subsystem initialization information by:

storing read-only instructions on a read-only SCP memory subsystem that is included in the SCP subsystem, wherein the read-only instruction are the first instructions executed subsequent to beginning the initialization operations for the SCP subsystem;

executing the read-only instructions to use a public key to verify that the SCP subsystem initialization information has been signed with a private key in order to provide the validated SCP subsystem initialization information.

16. The method of claim 14 , further comprising:

beginning, by the SCP subsystem in response to the initialization instruction, initialization operations for the SCP subsystem prior to the beginning of initialization operations for a Baseboard Management Controller (BMC) subsystem that is coupled to the SCP subsystem; and

validating, subsequent to completing the initialization operations for the SCP subsystem, BMC subsystem initialization information to provide validated BMC subsystem initialization information that is configured for use by the BMC subsystem to perform initialization operations for the BMC subsystem.

17. The method of claim 14 , further comprising:

performing at least one Baseboard Management Controller (BMC) remote-management operation.

18. The method of claim 14 , further comprising:

receiving, by the SCP subsystem, an update for at least one of the BIOS subsystem initialization information and the I/O device initialization information;

validating, by the SCP subsystem, the update received for the at least one of the BIOS subsystem initialization information and the I/O device initialization information to provide at least one verified update; and

replacing, by the SCP subsystem, the at least one of the BIOS subsystem initialization information and the I/O device initialization information with the at least one verified update.

19. The method of claim 14 , further comprising:

generating, by the SCP subsystem a request to erase a portion of a non-volatile storage subsystem on the I/O device; and

transmitting, by the SCP subsystem to the I/O device, the request to erase the portion of the non-volatile storage subsystem on the I/O device.

20. The method of claim 14 , further comprising:

authenticating, by the SCP subsystem, a Peripheral Component Interconnect express (PCIe) device that provides the I/O device; and

allowing, by the SCP subsystem in response to authenticating the PCIe device, the PCIe device to operate with the central processing subsystem.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2020
From: KHATRI, MUKUND P.; HORMUTH, ROBERT W.; PIKE, JIMMY D.; CHAWLA, GAURAV; DAWKINS, WILLIAM PRICE; JREIJ, ELIE; SANDERS, MARK STEVEN; O'BRIEN, WALTER A., III
To: DELL PRODUCTS L.P.
Reel/Frame 053840/0824 →
Continuity (1)
Related Publication 20220092203A1 · Mar 24, 2022