IP Library Granted Patent US 11,113,071
Granted Patent B1
US 11,113,071 · App. 16/935,903 · Granted Sep 7, 2021

Unified hypervisor image for multiple processor ISAs

Inventors: Cyprien Laplace (Boston, MA); Andrei Warkentin (Cambridge, MA); Shruthi Muralidhara Hiriyuru (Medford, MA); Ye Li (Cambridge, MA); Alexander Fainkichen (Southborough, MA); Regis Duchesne (Monts-de-Corsier, CH); Sunil Kumar Kotian (San Jose, CA); Renaud Benjamin Voltz (Los Altos Hills, CA)
Assignee: VMware, Inc.
G06F9/441G06F8/63G06F9/4411G06F9/4416
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,113,071
App. No.
16/935,903
Granted
Sep 7, 2021
Kind
B1
Abstract

A method for booting a computer system includes: loading a first stage bootloader of a plurality of first stage bootloaders from a boot image based on a known configuration of the computer system; executing the first stage bootloader to identify a selected bootbank of a plurality of bootbanks in the boot image based on the known configuration of the computer system; executing, by the first stage bootloader, a second stage bootloader from the boot image with an instruction to boot from the selected bootbank; and executing, by the second stage bootloader, a binary file in the selected bootbank.

Claims (39)

1. A method for booting a computer system, comprising:

loading a first stage bootloader of a plurality of first stage bootloaders from a boot image based on a known configuration of the computer system;

executing the first stage bootloader to identify a selected bootbank of a plurality of bootbanks in the boot image based on the known configuration of the computer system;

executing, by the first stage bootloader, a second stage bootloader from the boot image with an instruction to boot from the selected bootbank; and

executing, by the second stage bootloader, a binary file in the selected bootbank.

2. The method of claim 1 , wherein the boot image is a compound boot image, and wherein each of the plurality of bootbanks is associated with a different corresponding computer system configuration.

3. The method of claim 2 , wherein each of the plurality of bootbanks includes a corresponding architecture variable that specifies a computer system configuration associated with the bootbank.

4. The method of claim 3 , wherein the first stage bootloader identifies the selected bootbank in the boot image by:

searching the architecture variables of the plurality of bootbanks to identify an architecture variable that specifies a computer system configuration compatible with the known configuration of the computer system.

5. The method of claim 4 , wherein the plurality of bootbanks have a hierarchy within the boot image based on complexity of the computer system configurations specified by the architecture variables.

6. The method of claim 5 , wherein the first stage bootloader identifies the selected bootbank having an architecture variable that specifies a computer system configuration compatible with the known configuration of the computer system, and having the highest complexity within the hierarchy.

7. The method of claim 3 , wherein the architecture variable specifies whether the computer system configuration boots in exception level 1 (EL1) or exception level 2 (EL2) of a processor of the computer system.

8. The method of claim 1 , wherein the first stage bootloader is loaded by:

searching the boot image for a first stage bootloader file in response to the computer system having a first known configuration; and

searching the boot image for another first stage bootloader file in response to the computer system having a second known configuration.

9. The method of claim 8 , wherein the first stage bootloader executes the second stage bootloader from the boot image by:

searching the boot image for a second stage bootloader file in response to the computer system having the first known configuration; and

searching the boot image for another second stage bootloader file in response to the computer system having the second known configuration.

10. The method of claim 1 , wherein the computer system retrieves the boot image from an external memory.

11. A non-transitory computer readable medium comprising instructions for booting a computer system, wherein the instructions, when executed by the computer system, cause the computer system to:

load a first stage bootloader of a plurality of first stage bootloaders from a boot image based on a known configuration of the computer system;

execute the first stage bootloader to identify a selected bootbank of a plurality of bootbanks in the boot image based on the known configuration of the computer system;

execute, by the first stage bootloader, a second stage bootloader from the boot image with an instruction to boot from the selected bootbank; and

execute, by the second stage bootloader, a binary file in the selected bootbank.

12. The non-transitory computer readable medium of claim 11 , wherein the boot image is a compound boot image, and wherein each of the plurality of bootbanks is associated with a different corresponding computer system configuration.

13. The non-transitory computer readable medium of claim 12 , wherein each of the plurality of bootbanks includes a corresponding architecture variable that specifies a computer system configuration associated with the bootbank.

14. The non-transitory computer readable medium of claim 13 , wherein the first stage bootloader identifies the selected bootbank in the boot image by searching the architecture variables of the plurality of bootbanks to identify an architecture variable that specifies a computer system configuration compatible with the known configuration of the computer system.

15. The non-transitory computer readable medium of claim 13 , wherein the architecture variable specifies whether the computer system configuration boots in exception level 1 (EL1) or exception level 2 (EL2) of a processor of the computer system.

16. A computer system, comprising:

a system memory; and

a processor configured to carry out the steps of:

loading a first stage bootloader of a plurality of first stage bootloaders from a boot image based on a known configuration of the computer system;

executing the first stage bootloader to identify a selected bootbank of a plurality of bootbanks in the boot image based on the known configuration of the computer system;

executing, by the first stage bootloader, a second stage bootloader from the boot image with an instruction to boot from the selected bootbank; and

executing, by the second stage bootloader, a binary file in the selected bootbank.

17. The computer system of claim 16 , wherein the boot image is a compound boot image, and wherein each of the plurality of bootbanks is associated with a different corresponding computer system configuration.

18. The computer system of claim 17 , wherein each of the plurality of bootbanks includes a corresponding architecture variable that specifies a computer system configuration associated with the bootbank.

19. The computer system of claim 18 , wherein the first stage bootloader identifies the selected bootbank in the boot image by searching the architecture variables of the plurality of bootbanks to identify an architecture variable that specifies a computer system configuration compatible with the known configuration of the computer system.

20. The computer system of claim 18 , wherein the architecture variable specifies whether the computer system configuration boots in exception level 1 (EL1) or exception level 2 (EL2) of the processor of the computer system.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2020
From: LAPLACE, CYPRIEN; WARKENTIN, ANDREI; HIRIYURU, SHRUTHI MURALIDHARA; LI, YE; FAINKICHEN, ALEXANDER; DUCHESNE, REGIS; KOTIAN, SUNIL KUMAR; VOLTZ, RENAUD BENJAMIN
To: VMWARE, INC.
Reel/Frame 053327/0777 →