IP Library Granted Patent US 11,237,839
Granted Patent B2
US 11,237,839 · App. 16/906,126 · Granted Feb 1, 2022

System and method of utilizing platform applications with information handling systems

Inventors: Donald Richard Tillery, Jr. (Murphy, TX); Brijesh Kumar Mishra (Murphy, TX); Justin Walter Johnson (Austin, TX); Dongli Wu (Allen, TX)
Assignee: Dell Products L.P.
G06F9/4406G06F9/4403G06F9/4411G06F9/544
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,237,839
App. No.
16/906,126
Granted
Feb 1, 2022
Kind
B2
Abstract

In one or more embodiments, one or more systems, one or more methods, and/or one or more methods may: register a subroutine configured to store multiple addresses of a volatile memory medium VMM of an information handling system (IHS); for each IHS initialization executable/OS executable pair of multiple IHS initialization executable/OS executable pairs: retrieve, from a first non-volatile memory medium (NVMM), an IHS initialization executable of the IHS initialization executable/OS executable pair; copy, by the IHS initialization executable, an OS executable of the IHS initialization executable/OS executable pair from the first NVMM to the VMM; call, by the IHS initialization executable, the subroutine; store, by the subroutine, an address associated with the OS executable via a data structure stored by the VMM; and copy, by a first OS executable, the OS executable from the VMM to a second NVMM based at least on the address associated with the OS executable.

Claims (80)

1. An information handling system, comprising:

at least one processor; and

a memory medium, coupled to the at least one processor, that stores instructions executable by the at least one processor, which when executed by the at least one processor, cause the information handling system (IHS) to:

execute, by the at least one processor, at least a portion of IHS firmware (IHSFW) from a first non-volatile memory medium of the IHS;

retrieve, from the first non-volatile memory medium, a first IHS initialization executable of a first IHS initialization executable/operating system (OS) executable pair;

execute, by the at least one processor, the first IHS initialization executable via an environment associated with the IHSFW;

register, by the first IHS initialization executable, a subroutine configured to store a plurality of addresses of a volatile memory medium of the IHS;

copy, by the first IHS initialization executable, a first OS executable of the first IHS initialization executable/OS executable pair from the first non-volatile memory medium to the volatile memory medium;

for each IHS initialization executable/OS executable pair of a plurality of IHS initialization executable/OS executable pairs:

retrieve, from the first non-volatile memory medium, an IHS initialization executable of the IHS initialization executable/OS executable pair;

execute, by the at least one processor, the IHS initialization executable via the environment associated with the IHSFW;

copy, by the IHS initialization executable, an OS executable of the IHS initialization executable/OS executable pair from the first non-volatile memory medium to the volatile memory medium;

call, by the IHS initialization executable, the subroutine;

store, by the subroutine, an address associated with the OS executable via a data structure stored by the volatile memory medium;

retrieve, by the first OS executable, the address of the volatile memory medium associated with the OS executable from the data structure; and

copy, by the first OS executable, the OS executable from the volatile memory medium to a second non-volatile memory medium of the IHS based at least on the address of the volatile memory medium associated with the OS executable; and

execute, by the at least one processor, each OS executable of the plurality of IHS initialization executable/OS executable pairs via an OS context of an operating system.

2. The information handling system of claim 1 , wherein each OS executable of the plurality of IHS initialization executable/OS executable pairs endures on the second non-volatile memory medium after another operating system, different from the operating system, has been installed on the second non-volatile memory medium.

3. The information handling system of claim 1 ,

wherein the environment associated with the IHSFW includes a driver execution environment (DXE);

wherein a first DXE driver includes the first IHS initialization executable; and

wherein each of a plurality of DXE drivers includes a respective IHS initialization executable of the plurality of IHS initialization executable/OS executable pairs.

4. The information handling system of claim 1 ,

wherein the first non-volatile memory medium stores an IHSFW volume; and

wherein the IHSFW volume stores the first IHS initialization executable/OS executable pair and the plurality of IHS initialization executable/OS executable pairs.

5. The information handling system of claim 1 , wherein the first non-volatile memory medium includes a serial interface flash memory device.

6. The information handling system of claim 1 , wherein the data structure includes a table that is compliant with an Advanced Configuration and Power Interface (ACPI) table.

7. The information handling system of claim 6 , wherein the instructions further cause the information handling system to:

register the table with an ACPI service.

8. A method, comprising:

executing, by at least one processor of an information handling system (IHS), at least a portion of IHS firmware (IHSFW) from a first non-volatile memory medium of the IHS;

retrieving, from the first non-volatile memory medium, a first IHS initialization executable of a first IHS initialization executable/operating system (OS) executable pair;

executing, by the at least one processor, the first IHS initialization executable via an environment associated with the IHSFW;

registering, by the first IHS initialization executable, a subroutine configured to store a plurality of addresses of a volatile memory medium of the IHS;

copying, by the first IHS initialization executable, a first OS executable of the first IHS initialization executable/OS executable pair from the first non-volatile memory medium to the volatile memory medium;

for each IHS initialization executable/OS executable pair of a plurality of IHS initialization executable/OS executable pairs:

retrieving, from the first non-volatile memory medium, an IHS initialization executable of the IHS initialization executable/OS executable pair;

executing, by the at least one processor, the IHS initialization executable via the environment associated with the IHSFW;

copying, by the IHS initialization executable, an OS executable of the IHS initialization executable/OS executable pair from the first non-volatile memory medium to the volatile memory medium;

calling, by the IHS initialization executable, the subroutine;

storing, by the subroutine, an address associated with the OS executable via a data structure stored by the volatile memory medium;

retrieving, by the first OS executable, the address of the volatile memory medium associated with the OS executable from the data structure; and

copying, by the first OS executable, the OS executable from the volatile memory medium to a second non-volatile memory medium of the IHS based at least on the address of the volatile memory medium associated with the OS executable; and

executing, by the at least one processor, each OS executable of the plurality of IHS initialization executable/OS executable pairs via an OS context of an operating system.

9. The method of claim 8 , wherein each OS executable of the plurality of IHS initialization executable/OS executable pairs endures on the second non-volatile memory medium after another operating system, different from the operating system, has been installed on the second non-volatile memory medium.

10. The method of claim 8 ,

wherein the environment associated with the IHSFW includes a driver execution environment (DXE);

wherein a first DXE driver includes the first IHS initialization executable; and

wherein each of a plurality of DXE drivers includes a respective IHS initialization executable of the plurality of IHS initialization executable/OS executable pairs.

11. The method of claim 8 ,

wherein the first non-volatile memory medium stores an IHSFW volume; and

wherein the IHSFW volume stores the first IHS initialization executable/OS executable pair and the plurality of IHS initialization executable/OS executable pairs.

12. The method of claim 8 , wherein the first non-volatile memory medium includes a serial interface flash memory device.

13. The method of claim 8 , wherein the data structure includes a table that is compliant with an Advanced Configuration and Power Interface (ACPI) table.

14. The method of claim 13 , further comprising:

registering the table with an ACPI service.

15. A computer-readable non-transitory memory medium that includes instructions that, when executed by at least one processor of an information handling system, cause the information handling system (IHS) to:

execute, by the at least one processor, at least a portion of IHS firmware (IHSFW) from a first non-volatile memory medium of the IHS;

retrieve, from the first non-volatile memory medium, a first IHS initialization executable of a first IHS initialization executable/operating system (OS) executable pair;

execute, by the at least one processor, the first IHS initialization executable via an environment associated with the IHSFW;

register, by the first IHS initialization executable, a subroutine configured to store a plurality of addresses of a volatile memory medium of the IHS;

copy, by the first IHS initialization executable, a first OS executable of the first IHS initialization executable/OS executable pair from the first non-volatile memory medium to the volatile memory medium;

for each IHS initialization executable/OS executable pair of a plurality of IHS initialization executable/OS executable pairs:

retrieve, from the first non-volatile memory medium, an IHS initialization executable of the IHS initialization executable/OS executable pair;

execute, by the at least one processor, the IHS initialization executable via the environment associated with the IHSFW;

copy, by the IHS initialization executable, an OS executable of the IHS initialization executable/OS executable pair from the first non-volatile memory medium to the volatile memory medium;

call, by the IHS initialization executable, the subroutine;

store, by the subroutine, an address associated with the OS executable via a data structure stored by the volatile memory medium;

retrieve, by the first OS executable, the address of the volatile memory medium associated with the OS executable from the data structure; and

copy, by the first OS executable, the OS executable from the volatile memory medium to a second non-volatile memory medium of the IHS based at least on the address of the volatile memory medium associated with the OS executable; and

execute, by the at least one processor, each OS executable of the plurality of IHS initialization executable/OS executable pairs via an OS context of an operating system.

16. The computer-readable non-transitory memory medium of claim 15 , wherein each OS executable of the plurality of IHS initialization executable/OS executable pairs endures on the second non-volatile memory medium after another operating system, different from the operating system, has been installed on the second non-volatile memory medium.

17. The computer-readable non-transitory memory medium of claim 15 ,

wherein the environment associated with the IHSFW includes a driver execution environment (DXE);

wherein a first DXE driver includes the first IHS initialization executable; and

wherein each of a plurality of DXE drivers includes a respective IHS initialization executable of the plurality of IHS initialization executable/OS executable pairs.

18. The computer-readable non-transitory memory medium of claim 15 , wherein the first non-volatile memory medium includes a serial interface flash memory device.

19. The computer-readable non-transitory memory medium of claim 15 , wherein the data structure includes a table that is compliant with an Advanced Configuration and Power Interface (ACPI) table.

20. The computer-readable non-transitory memory medium of claim 19 , wherein the instructions further cause the information handling system to:

register the table with an ACPI service.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2020
From: TILLERY, DONALD RICHARD, JR; MISHRA, BRIJESH KUMAR; JOHNSON, JUSTIN WALTER; WU, DONGLI
To: DELL PRODUCTS L.P.
Reel/Frame 052987/0751 →