IP Library Granted Patent US 11,500,649
Granted Patent B2
US 11,500,649 · App. 17/030,632 · Granted Nov 15, 2022

Coordinated initialization system

Inventors: Elie Jreij (Pflugerville, TX); Robert W. Hormuth (Cedar Park, TX); Gaurav Chawla (Austin, TX); Mark Steven Sanders (Roanoke, VA); William Price Dawkins (Lakeway, TX); Jimmy D. Pike (Georgetown, TX)
Assignee: Dell Products L.P.
G06F9/44505G06F13/20G06F16/2379
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,500,649
App. No.
17/030,632
Granted
Nov 15, 2022
Kind
B2
Abstract

A coordinated initialization system includes a computing system with first and second initialization subsystems coupled to a coordinated initialization subsystem. The coordinated initialization subsystem receives first and second initialization progress information associated with respective first and second initialization subsystem operations performed by the respective first and second initialization subsystems. Using a coordinated initialization database that identifies dependences between the first and second initialization operations, the coordinated initialization subsystem determines that the first initialization progress information identifies a first initialization operation that is going to be performed by the first initialization subsystem and that is dependent on a second initialization operation that is identified by the second initialization progress information and that has not yet been performed by the second initialization subsystem and, in response, causes the first initialization subsystem to pause the first initialization subsystem operations until the second initialization operation has been performed.

Claims (69)

1. A coordinated initialization system, comprising:

a computing system;

a first initialization subsystem that is included in the computing system and that is configured to perform first initialization subsystem operations that configure the computing system to provide an operating system;

a second initialization subsystem that is included in the computing system and that is configured to perform second initialization subsystem operations that configure at least one device for use in the first initialization subsystem operations; and

a coordinated initialization subsystem that is included in the computing system and that is coupled to each of the first initialization subsystem and the second initialization subsystem, wherein the coordinated initialization subsystem is configured to:

receive, from the first initialization subsystem subsequent to an initialization command being provided to the computing system, first initialization progress information associated with the first initialization subsystem operations that are being performed by the first initialization subsystem;

receive, from the second initialization subsystem subsequent to the initialization command being provided to the computing system, second initialization progress information associated with the second initialization subsystem operations that are being performed by the second initialization subsystem while the first initialization subsystem performs the first initialization subsystem operations;

determine, using a coordinated initialization database that identifies dependences between the first initialization subsystem operations and the second initialization operations, that the first initialization progress information identifies a first initialization operation that is going to be performed by the first initialization subsystem as part of the first initialization subsystem operations and that is dependent on a second initialization operation that is identified by the second initialization progress information and that has not yet been performed by the second initialization subsystem as part of the second initialization subsystem operations; and

cause, in response to determining that the first initialization operation that is going to be performed by the first initialization subsystem is dependent on the second initialization operation that has not yet been performed by the second initialization subsystem, the first initialization subsystem to pause the first initialization subsystem operations until the second initialization operation has been performed.

2. The system of claim 1 , wherein the first initialization subsystem is a Basic Input/Output System (BIOS) subsystem.

3. The system of claim 1 , wherein second initialization subsystem is a System Control Processor (SCP) subsystem.

4. The system of claim 1 , wherein the coordinated initialization subsystem is a Baseboard Management Controller (BMC) subsystem.

5. The system of claim 1 , wherein the causing the first initialization subsystem to pause the first initialization subsystem operations until the second initialization operation has been performed includes:

transmitting, to the first initialization subsystem via a serial connection, an XOFF command that is configured to cause the first initialization subsystem to pause the first initialization subsystem operations such that the first initialization operation is not performed by the first initialization subsystem;

receiving, from the second initialization subsystem, third initialization progress information associated with the second initialization subsystem operations performed by the second initialization subsystem;

determine that the third initialization progress information identifies that the second initialization operation has been performed by the second initialization subsystem; and

transmitting, to the first initialization subsystem via the serial connection in response to determining that the second initialization operation has been performed by the second initialization subsystem, an XON command that is configured to cause the first initialization subsystem to resume the first initialization subsystem operations such that the first initialization operation is performed by the first initialization subsystem.

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

receive, from the first initialization subsystem, third initialization progress information associated with first initialization subsystem operations that are being performed by the first initialization subsystem;

receive, from the second initialization subsystem, fourth initialization progress information associated with second initialization subsystem operations that are being performed by the second initialization subsystem while the first initialization subsystem performs the first initialization subsystem operations;

determine, using the coordinated initialization database that identifies dependences between the first initialization subsystem operations and the second initialization operations, that the third initialization progress information identifies a third initialization operation that is going to be performed by the first initialization subsystem as part of the first initialization subsystem operations and that is dependent on a fourth initialization operation that is identified by the fourth initialization progress information and that has not yet been performed by the second initialization subsystem as part of the second initialization subsystem operations;

cause, in response to determining that the third initialization operation that is going to be performed by the first initialization subsystem is dependent on the fourth initialization operation that has not yet been performed by the second initialization subsystem, the first initialization subsystem to pause the third initialization subsystem operations;

determine that the fourth initialization operation has not been performed by the second initialization subsystem for a time period subsequent to causing the first initialization subsystem to pause the third initialization subsystem operations; and

perform, in response to determining that the fourth initialization operation has not been performed by the second initialization subsystem for the time period, a second initialization subsystem failure operation.

7. An Information Handling System (IHS), comprising:

a processing system; and

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

receive, from a first initialization subsystem in a computing system subsequent to an initialization command being provided to the computing system, first initialization progress information associated with first initialization subsystem operations that are being performed by the first initialization subsystem and that configure the computing system to provide an operating system;

receive, from a second initialization subsystem in the computing system subsequent to the initialization command being provided to the computing system, second initialization progress information associated with second initialization subsystem operations that are being performed by the second initialization subsystem while the first initialization subsystem performs the first initialization subsystem operations and that configure at least one device for use in the first initialization subsystem operations;

determine, using a coordinated initialization database that identifies dependences between the first initialization subsystem operations and the second initialization operations, that the first initialization progress information identifies a first initialization operation that is going to be performed by the first initialization subsystem as part of the first initialization subsystem operations and that is dependent on a second initialization operation that is identified by the second initialization progress information and that has not yet been performed by the second initialization subsystem as part of the second initialization subsystem operations; and

cause, in response to determining that the first initialization operation that is going to be performed by the first initialization subsystem is dependent on the second initialization operation that has not yet been performed by the second initialization subsystem, the first initialization subsystem to pause the first initialization subsystem operations until the second initialization operation has been performed.

8. The IHS subsystem of claim 7 , wherein the first initialization subsystem is a Basic Input/Output System (BIOS) subsystem.

9. The IHS of claim 7 , wherein second initialization subsystem is a System Control Processor (SCP) subsystem.

10. The IHS of claim 7 , wherein the coordinated initialization engine is configured to:

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

11. The IHS of claim 7 , wherein the causing the first initialization subsystem to pause the first initialization subsystem operations until the second initialization operation has been performed includes:

transmitting, to the first initialization subsystem via a serial connection, an XOFF command that is configured to cause the first initialization subsystem to pause the first initialization subsystem operations such that the first initialization operation is not performed by the first initialization subsystem;

receiving, from the second initialization subsystem, third initialization progress information associated with the second initialization subsystem operations performed by the second initialization subsystem;

determining that the third initialization progress information identifies that the second initialization operation has been performed by the second initialization subsystem; and

transmitting, to the first initialization subsystem via the serial connection in response to determining that the second initialization operation has been performed by the second initialization subsystem, an XON command that is configured to cause the first initialization subsystem to resume the first initialization subsystem operations such that the first initialization operation is performed by the first initialization subsystem.

12. The IHS of claim 7 , wherein the coordinated initialization engine is configured to:

receive, from the first initialization subsystem, third initialization progress information associated with first initialization subsystem operations that are being performed by the first initialization subsystem;

receive, from the second initialization subsystem, fourth initialization progress information associated with second initialization subsystem operations that are being performed by the second initialization subsystem while the first initialization subsystem performs the first initialization subsystem operations;

determine, using the coordinated initialization database that identifies dependences between the first initialization subsystem operations and the second initialization operations, that the third initialization progress information identifies a third initialization operation that is going to be performed by the first initialization subsystem as part of the first initialization subsystem operations and that is dependent on a fourth initialization operation that is identified by the fourth initialization progress information and that has not yet been performed by the second initialization subsystem as part of the second initialization subsystem operations;

cause, in response to determining that the third initialization operation that is going to be performed by the first initialization subsystem is dependent on the fourth initialization operation that has not yet been performed by the second initialization subsystem, the first initialization subsystem to pause the third initialization subsystem operations;

determine that the fourth initialization operation has not been performed by the second initialization subsystem for a time period subsequent to causing the first initialization subsystem to pause the third initialization subsystem operations; and

perform, in response to determining that the fourth initialization operation has not been performed by the second initialization subsystem for the time period, a second initialization subsystem failure operation.

13. The IHS of claim 7 , wherein the first initialization progress information includes at least one first initialization subsystem boot progress code, and wherein the second initialization progress information includes at least one second initialization subsystem boot progress code.

14. A method for coordinating initialization of multiple subsystems in a computing system, comprising:

receiving, by a coordinated initialization subsystem in a computing system from a first initialization subsystem in the computing system subsequent to an initialization command being provided to the computing system, first initialization progress information associated with first initialization subsystem operations that are being performed by the first initialization subsystem and that configure the computing system to provide an operating system;

receiving, by the coordinated initialization subsystem from a second initialization subsystem in the computing system subsequent to the initialization command being provided to the computing system, second initialization progress information associated with second initialization subsystem operations that are being performed by the second initialization subsystem while the first initialization subsystem performs the first initialization subsystem operations and that configure at least one device for use in the first initialization subsystem operations;

determining, by the coordinated initialization subsystem using a coordinated initialization database that identifies dependences between the first initialization subsystem operations and the second initialization operations, that the first initialization progress information identifies a first initialization operation that is going to be performed by the first initialization subsystem as part of the first initialization subsystem operations and that is dependent on a second initialization operation that is identified by the second initialization progress information and that has not yet been performed by the second initialization subsystem as part of the second initialization subsystem operations; and

causing, by the coordinated initialization subsystem in response to determining that the first initialization operation that is going to be performed by the first initialization subsystem is dependent on the second initialization operation that has not yet been performed by the second initialization subsystem, the first initialization subsystem to pause the first initialization subsystem operations until the second initialization operation has been performed.

15. The method of claim 14 , wherein the first initialization subsystem is a Basic Input/Output System (BIOS) subsystem.

16. The method of claim 14 , wherein second initialization subsystem is a System Control Processor (SCP) subsystem.

17. The method of claim 14 , wherein the coordinated initialization subsystem is a Baseboard Management Controller (BMC) subsystem.

18. The method of claim 14 , wherein the causing the first initialization subsystem to pause the first initialization subsystem operations until the second initialization operation has been performed includes:

transmitting, by the coordinated initialization subsystem to the first initialization subsystem via a serial connection, an XOFF command that is configured to cause the first initialization subsystem to pause the first initialization subsystem operations such that the first initialization operation is not performed by the first initialization subsystem;

receiving, by the coordinated initialization subsystem from the second initialization subsystem, third initialization progress information associated with the second initialization subsystem operations performed by the second initialization subsystem;

determining, by the coordinated initialization subsystem, that the third initialization progress information identifies that the second initialization operation has been performed by the second initialization subsystem; and

transmitting, by the coordinated initialization subsystem to the first initialization subsystem via the serial connection in response to determining that the second initialization operation has been performed by the second initialization subsystem, an XON command that is configured to cause the first initialization subsystem to resume the first initialization subsystem operations such that the first initialization operation is performed by the first initialization subsystem.

19. The method of claim 14 , further comprising:

receiving, by the coordinated initialization subsystem from the first initialization subsystem, third initialization progress information associated with first initialization subsystem operations that are being performed by the first initialization subsystem;

receiving, by the coordinated initialization subsystem from the second initialization subsystem, fourth initialization progress information associated with second initialization subsystem operations that are being performed by the second initialization subsystem while the first initialization subsystem performs the first initialization subsystem operations;

determining, by the coordinated initialization subsystem using the coordinated initialization database that identifies dependences between the first initialization subsystem operations and the second initialization operations, that the third initialization progress information identifies a third initialization operation that is going to be performed by the first initialization subsystem as part of the first initialization subsystem operations and that is dependent on a fourth initialization operation that is identified by the fourth initialization progress information and that has not yet been performed by the second initialization subsystem as part of the second initialization subsystem operations;

causing, by the coordinated initialization subsystem in response to determining that the third initialization operation that is going to be performed by the first initialization subsystem is dependent on the fourth initialization operation that has not yet been performed by the second initialization subsystem, the first initialization subsystem to pause the third initialization subsystem operations;

determining, by the coordinated initialization subsystem, that the fourth initialization operation has not been performed by the second initialization subsystem for a time period subsequent to causing the first initialization subsystem to pause the third initialization subsystem operations; and

performing, by the coordinated initialization subsystem in response to determining that the fourth initialization operation has not been performed by the second initialization subsystem for the time period, a second initialization subsystem failure operation.

20. The method of claim 14 , wherein the first initialization progress information includes at least one first initialization subsystem boot progress code, and wherein the second initialization progress information includes at least one second initialization subsystem boot progress code.

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 24, 2020
From: JREIJ, ELIE; HORMUTH, ROBERT W.; CHAWLA, GAURAV; SANDERS, MARK STEVEN; DAWKINS, WILLIAM PRICE; PIKE, JIMMY D.
To: DELL PRODUCTS L.P.
Reel/Frame 053878/0076 →