IP Library Granted Patent US 11,409,607
Granted Patent B1
US 11,409,607 · App. 17/374,081 · Granted Aug 9, 2022

Basic input output system updates

Inventors: Ming Chang Hung (Taipei, TW); Heng-Fu Chang (Taipei, TW); Kang-Ning Feng (Taipei, TW)
Assignee: Hewlett-Packard Development Company, L.P.
G06F11/1433G06F11/076G06F11/1417G06F9/4406G06F11/0703G06F2201/805
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,409,607
App. No.
17/374,081
Granted
Aug 9, 2022
Kind
B1
Abstract

Example implementations relate to Basic Input Output System updates. In some examples, a computing device can include a memory, a processor to, in response to completion of a Basic Input/Output System (BIOS) update, generate and store a boot status variable in the memory, determine whether the BIOS update was successful, in response to the BIOS update being successful, delete the boot status variable from the memory and perform a power event, and in response to the BIOS update being unsuccessful, perform a BIOS recovery.

Claims (55)

1. A computing device, comprising:

a memory; and

a processor, wherein the processor is to:

in response to a completion of a Basic Input/Output System (BIOS) update:

generate and store a boot status variable in the memory, wherein generating the boot status variable includes initializing a boot manager launch count field of the boot status variable to zero and initializing a boot count field of the boot status variable to zero;

determine whether the BIOS update was successful;

in response to the BIOS update being successful, delete the boot status variable from the memory and perform a power event; and

in response to the BIOS update being unsuccessful, perform a BIOS recovery.

2. The computing device of claim 1 , wherein in response to the BIOS update being completed, the processor is to determine whether the boot manager launch count field exceeds a first threshold.

3. The computing device of claim 2 , wherein the processor is to:

in response to the boot manager launch count exceeding the first threshold, perform the BIOS recovery; and

in response to the boot manager launch count not exceeding the first threshold, determine whether the boot count field exceeds a second threshold.

4. The computing device of claim 3 , wherein the processor is to:

in response to the boot count field exceeding the second threshold, perform the BIOS recovery; and

in response to the boot count field not exceeding the second threshold, delete the boot status variable from the memory and perform the power event.

5. The computing device of claim 1 , wherein:

performing the BIOS update includes storing a fail status in a status field of an update status variable; and

in response to the BIOS update being completed, the processor is to update the status field of the update status variable by storing a success status in the status field.

6. The computing device of claim 5 , wherein the processor is to:

determine the BIOS update was successful in response to the success status being stored in the status field of the update status variable; and

determine the BIOS update was not completed in response to the fail status being stored in the status field of the update status variable.

7. A computing device, comprising:

a memory; and

a processor, wherein the processor is to:

perform a Basic Input/Output System (BIOS) update from a first version to a second version by:

generating and storing, in the memory, a block index variable to store an address of a block in the memory and a sector index variable to store an address of a sector in the block at which the second version of the BIOS update is to be written; and

writing the second version of the BIOS beginning at the address of the block and the sector;

in response to the BIOS update being completed:

delete the block index variable and the sector index variable from the memory;

generate and store a boot status variable in the memory;

determine whether the BIOS update was successful;

in response to the BIOS update being successful, delete the boot status variable from the memory and perform a power event; and

in response to the BIOS update not being completed, perform the BIOS recovery.

8. The computing device of claim 7 , wherein the processor is to generate and store a backup of the first version of the BIOS in the memory prior to performing the BIOS update.

9. The computing device of claim 8 , wherein performing the BIOS recovery includes:

restoring the backup of the first version of the BIOS; and

performing a subsequent BIOS update by writing the second version of the BIOS beginning at the address of the block in the block index variable and the address of the sector in the sector index variable.

10. The computing device of claim 9 , wherein in response to the subsequent BIOS update being completed, the processor is to:

generate and store the boot status variable in the memory; and

delete the block index variable and the sector index variable from the memory.

11. The computing device of claim 10 , wherein the processor is to:

determine whether the subsequent BIOS update was successful; and

in response to the subsequent BIOS update being successful, delete the boot status variable from the memory and perform a power event.

12. A non-transitory machine-readable storage medium including instructions that when executed cause a processor of a computing device to:

perform a Basic Input/Output System (BIOS) update from a first version to a second version by:

generating and storing, in the storage medium, a block index variable to store an address of a block in the storage medium and a sector index variable to store an address of a sector in the block at which the second version of the BIOS update is to be written; and

writing the second version of the BIOS beginning at the address of the block and the sector;

in response to the BIOS update being completed:

delete the block index variable and the sector index variable from the storage medium;

generate and store a boot status variable in the storage medium, wherein the boot status variable includes a boot manager launch count field and a boot count field;

perform a power event;

in response to the boot status variable being present after the power event, update the boot manager launch count field and the boot count field; and

perform a BIOS recovery based on the boot manager launch count field and the boot count field.

13. The non-transitory storage medium of claim 12 , including instructions to perform the power event by rebooting the computing device.

14. The non-transitory storage medium of claim 12 , wherein the block index variable, the sector index variable, and the boot status variable are non-volatile variables.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2021
From: HUNG, MING CHANG; CHANG, HENG-FU; FENG, KANG-NING
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 056837/0079 →
Cited By (2)
US 12,436,773 US 12,475,227