IP Library Granted Patent US 11,010,152
Granted Patent B2
US 11,010,152 · App. 16/054,756 · Granted May 18, 2021

Systems and methods to stage external device firmware for an external device in an information handling system

Inventors: Bala Ponraj Samuel (Round Rock, TX); Steven A. Downum (Pflugerville, TX); Anand Prakash Joshi (Round Rock, TX)
Assignee: Dell Products L.P.
G06F8/65G06F8/71G06F9/4411G06F9/45558H04L41/06H04L41/0893H04L43/10G06F2009/45579H04L67/34
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,010,152
App. No.
16/054,756
Granted
May 18, 2021
Kind
B2
Abstract

Systems and methods to stage firmware capsule package for an external device in a firmware client system. The firmware client system may include a basic input/output system (BIOS) and an operating system (OS). The BIOS may create a virtual device. The OS may download a virtual device driver package associated with the virtual device from an update service. The virtual device driver package may include a first virtual device driver and a first external device firmware. The OS may also install the first virtual device driver of the virtual device driver package, stage the first external device firmware on a storage device, and execute the first virtual device driver. The first virtual device driver may, when a first external device associated with the first external device firmware is available, deliver the first external device firmware to the first external device using an update firmware mechanism.

Claims (52)

1. A firmware client system, comprising:

a processor;

a memory;

a basic input/output system (BIOS) stored in the memory and executable by the processor, the BIOS configured to create a virtual device; and

an operating system (OS) stored in the memory and executable by the processor, the OS configured to:

download a virtual device driver package associated with the virtual device from an update service of a firmware server system, the virtual device driver package including a first virtual device driver and a first external device firmware for a first external device associated with the firmware client system;

install the first virtual device driver of the virtual device driver package in the memory;

store the first external device firmware on a storage device coupled to the firmware client system for subsequent delivery to the first external device; and

execute the first virtual device driver;

wherein, subsequent to storing the first external device firmware on the storage device, the first virtual device driver is configured to:

determine that the first external device is not available to receive delivery of the first external device firmware;

responsive to determining that the first external device is not available to receive delivery of the first external device firmware, refrain from delivering the first external device firmware to the first external device;

determine, subsequent to determining that the first external device is not available to receive delivery of the first external device firmware, that the first external device is available to receive delivery of the first external device firmware; and

responsive to determining that the first external device is available to receive delivery of the first external device firmware, deliver the first external device firmware to the first external device using an update firmware mechanism.

2. The firmware client system of claim 1 , wherein the first virtual device driver is further configured to:

when the first external device firmware is being delivered to the first external device, display a user interface to alert a user that a second external device firmware installed on the first external device is being updated to the first external device firmware using a user-mode device driver associated with the virtual device.

3. The firmware client system of claim 1 , wherein the delivery of the first external device firmware to the first external device is scheduled at a first time based on a rules-based policy set by an administrator of the firmware client system.

4. The firmware client system of claim 1 , wherein the delivery of the first external device firmware to the first external device is based on a rules-based policy set by an administrator of the firmware client system.

5. The firmware client system of claim 1 , wherein the delivery of the first external device firmware to the first external device is based on a version of the first external device firmware and a version of a second external device firmware installed on the first external device.

6. The firmware client system of claim 1 , wherein to determine whether the first external device is available to receive delivery of the first external device firmware, the first virtual device driver is configured to poll for the first external device.

7. The firmware client system of claim 1 , wherein to determine whether the first external device is available to receive delivery of the first external device firmware, the first virtual device driver is further configured to:

install an event handler to detect when the first external device is coupled to the firmware client system.

8. The firmware client system of claim 1 , wherein, prior to the download of the virtual device driver package, the virtual device driver package is published to the update service of the firmware server system.

9. The firmware client system of claim 1 , wherein the OS is further configured to:

prior to the download of the virtual device driver package, determine that the update service has the virtual device driver package.

10. The firmware client system of claim 1 , wherein the OS comprises a Microsoft Windows operating system, wherein the update service comprises a Microsoft Windows Update service, and wherein the update firmware mechanism comprises a unified extensible firmware interface (UEFI) Microsoft Windows update capsule mechanism.

11. A method, comprising:

creating, by a basic input/output system (BIOS) of a firmware client system, a virtual device;

downloading, by an operating system (OS) from an update service of a firmware server system, a virtual device driver package associated with the virtual device, the virtual device driver package including a first virtual device driver and a first external device firmware for a first external device associated with the firmware client system;

installing, by the OS in a memory of the firmware client system, the first virtual device driver of the virtual device driver package;

storing, by the OS, the first external device firmware on a storage device coupled to the firmware client system for subsequent delivery to the first external device;

executing, by the OS, the first virtual device driver; and

subsequent to storing the first external device firmware on the storage device, the first virtual device driver performing:

determining that the first external device is not available to receive delivery of the first external device firmware;

in responsive to determining that the first external device is not available to receive delivery of the first external device firmware, refraining from delivering the first external device firmware of the first external device;

determining, subsequent to determining that the first external device is not available to receive delivery of the first external device firmware, that the first external device is available to receive delivery of the first external device firmware; and

in response to determining that the first external device is available to receive delivery of the first external device firmware, delivering, by the first virtual device driver, the first external device firmware to the first external device using an update firmware mechanism.

12. The method of claim 11 , wherein the method further comprises:

when the first external device firmware is delivering the first external device firmware to the first external device, displaying a user interface to alert a user that a second external device firmware installed on the first external device is being updated to the first external device firmware using a user-mode device driver associated with the virtual device.

13. The method of claim 11 , wherein delivering the first external device firmware to the first external device is scheduled at a first time based on a rules-based policy set by an administrator of the firmware client system.

14. The method of claim 11 , wherein delivering the first external device firmware to the first external device is based on a rules-based policy set by an administrator of the firmware client system.

15. The method of claim 11 , wherein delivering the first external device firmware to the first external device is based on a version of the first external device firmware and a version of a second external device firmware installed on the first external device.

16. The method of claim 11 , wherein determining that the first external device is available to receive delivery of the first external device firmware comprises the first virtual device driver polling for the first external device.

17. The method of claim 11 , wherein the method further comprises:

installing, by the first virtual device driver, an event handler to detect when the first external device is coupled to the firmware client system.

18. The method of claim 11 , wherein the method further comprises:

prior to downloading the virtual device driver package:

publishing the virtual device driver package to the update service of the firmware server system.

19. The method of claim 11 , wherein the method further comprises:

prior to downloading the virtual device driver package:

determining that the update service has the virtual device driver package.

20. The method of claim 11 , wherein the OS comprises a Microsoft Windows operating system, wherein the update service comprises a Microsoft Windows Update service, and wherein the update firmware mechanism comprises a unified extensible firmware interface (UEFI) Microsoft Windows update capsule mechanism.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2018
From: SAMUEL, BALA PONRAJ; DOWNUM, STEVEN A.; JOSHI, ANAND PRAKASH
To: DELL PRODUCTS L.P.
Reel/Frame 046554/0149 →