IP Library › Granted Patent US 10,019,253
Granted Patent B2
US 10,019,253 · App. 15/048,419 · Granted Jul 10, 2018

Systems and methods of updating hot-pluggable devices

Inventors: Sumanth Vidyadhara (Bangalore, IN); Parmeshwr Prasad (Bangalore, IN); Srinivas G. Gowda (Bangalore, IN); Raghavendra Venkataramudu (Bangalore, IN)
Assignee: Dell Products L.P.
G06F8/656G06F8/67G06F1/3234G06F1/3287G06F8/654G06F9/4401G06F9/4411Y02D10/171Y02D10/42
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 10,019,253
App. No.
15/048,419
Granted
Jul 10, 2018
Kind
B2
Abstract

Systems and methods are provided for updating hot-pluggable devices of an information handling system using dynamic EFI System Resource Table (ESRT) entries to implement an ESRT entry update procedure for hot-pluggable devices. Extended configuration space (e.g., such as PCIe Extended Config Space) of a hot-pluggable device may be utilized to store firmware update version information such as firmware version details, which is used in the OS space to update the ESRT table, and the system OS may read and apply the updated firmware version information and apply the firmware update immediately without additional OS reboots.

Claims (51)

1. An information handling system, comprising:

at least one processing device configured to execute a host operating system (OS);

non-volatile memory coupled to the processing device, the non-volatile memory having a Unified Extensible Firmware Interface (UEFI) table stored thereon; and

a Peripheral Component Interconnect Express (PCIe) communication bus coupled to the processing device, the PCIe communication bus being configured to receive a PCIe hot-pluggable device in data communication with the PCIe communication bus;

where the processing device is configured to use an update capsule to update EFI System Resource Table (ESRT) entries by performing the following steps in response to coupling of a new PCIe hot-pluggable device in data communication with a PCIe communication bus of the information handling system during runtime of an operating system (OS) executed by the processing device before performing any firmware update of the new PCIe hot-pluggable device after the new PCIe hot-pluggable device is coupled in data communication with the PCIe communication bus and without rebooting the OS after the new PCIe hot-pluggable device is coupled in data communication with the PCIe communication bus:

detect coupling of the new hot-pluggable device in data communication with the PCIe communication bus of the information handling system during the OS runtime, the new hot-pluggable device including device firmware and memory registers that contain a standard PCIe device configuration space and a separate extended PCIe device configuration space for the new hot-pluggable device, the extended PCIe device configuration space itself including one or more device firmware version details configured for updating ESRT entries,

then read the extended PCIe device configuration space and use an update capsule to retrieve the device firmware version details from the extended PCIe device configuration space of the new PCIe hot-pluggable device, and

then update entries of an ESRT of the UEFI table stored on the system non-volatile memory with the retrieved firmware version details read from the extended PCIe device configuration space of the new PCIe hot-pluggable device.

2. The system of claim 1 , where the processing device is configured to use information from the updated ESRT to update the device firmware on the new PCIe hot-pluggable device, and then operate the new PCIe hot-pluggable device with the updated device firmware.

3. The system of claim 1 , where the processing device is configured to reboot the OS no more than a single time after updating the ESRT and prior to performing the following steps without rebooting the OS again:

use information from the updated ESRT to update the device firmware on the new PCIe hot-pluggable device, and

then operate the new PCIe hot-pluggable device with the updated device firmware.

4. The system of claim 1 , where the one or more device firmware version details contained in the extended PCIe device configuration space that are configured for updating ESRT entries include values that specify at least one of device firmware version, last or lowest supported firmware version, capsule flags, last attempt version, or last attempt status; and

where the processing device is configured to read the values of the one or more entries from the extended PCIe device configuration space and then update the ESRT with the entries read from the extended PCIe device configuration space.

5. The system of claim 1 , where the processing device is configured to:

generate a hot plug event in the runtime OS space upon detecting coupling of the new PCIe hot-pluggable device to the PCIe communication bus of the information handling system;

then respond to detection of the generated hot plug event by using an event handler executed by the OS on the processing device to read the device firmware version details from the extended PCIe device configuration space and to formulate a payload UEFI capsule update that includes at least some information from the read device firmware version details;

then use the device firmware version details from the payload UEFI capsule update in the firmware space to update the ESRT with one or more updated device firmware version details.

6. The system of claim 1 , where the processing device is configured to:

access the stored updated ESRT in non-volatile memory of the information handling system from an OS runtime service of the runtime OS space;

retrieve updated device firmware version details from the stored updated ESRT; and

update the firmware of the coupled new PCIe hot-pluggable device with the retrieved updated device firmware version details.

7. The system of claim 6 , where the processing device is configured to reboot the OS no more than a single time after storing the updated ESRT and before accessing the stored updated ESRT, retrieving the update device firmware version details, and updating the firmware of the new PCIe hot-pluggable device.

8. The system of claim 1 , where the new PCIe hot-pluggable device comprises at least one of a network adapter, a video/graphics controller, a solid state storage drive, a hard storage drive, or a redundant array of independent disks (RAID) controller.

9. The system of claim 1 , where the information handling system comprises a computer server.

10. A method, comprising:

using at least one processing device of an information handling system to perform the following steps in response to coupling of a new Peripheral Component Interconnect Express (PCIe) hot-pluggable device in data communication with a PCIe communication bus of the information handling system during runtime of an operating system (OS) executed by the processing device before performing any firmware update of the new PCIe hot-pluggable device after the new PCIe hot-pluggable device is coupled in data communication with the PCIe communication bus and without rebooting the OS after the new PCIe hot-pluggable device is coupled in data communication with the PCIe communication bus:

detecting coupling of the new PCIe hot-pluggable device in data communication with the communication bus of the information handling system during the OS runtime, the new PCIe hot-pluggable device including device firmware and memory registers that contain an extended PCIe device configuration space that is separate from a standard PCIe device configuration space for the new PCIe hot-pluggable device, the extended PCIe device configuration space itself including one or more device firmware version details configured for updating EFI System Resource Table (ESRT) entries,

then reading the extended PCIe device configuration space and using an update capsule to retrieve the device firmware version details from the extended PCIe device configuration space of the new PCIe hot-pluggable device, and

then updating an ESRT of a Unified Extensible Firmware Interface (UEFI) table with the retrieved firmware version details read from the extended PCIe device configuration space of the new PCIe hot-pluggable device.

11. The method of claim 10 , further comprising using the processing device to perform the following steps:

using information from the updated ESRT to update the device firmware on the new PCIe hot-pluggable device; and

then operating the new PCIe hot-pluggable device with the updated device firmware.

12. The method of claim 10 , further comprising using the processing device to reboot the OS no more than a single time after updating the ESRT and prior to using the processing device to perform the following steps without rebooting the OS again:

using information from the updated ESRT to update the device firmware on the new PCIe hot-pluggable device, and

then operating the new PCIe hot-pluggable device with the updated device firmware.

13. The method of claim 10 , where the one or more device firmware version details contained in the extended PCIe device configuration space that are configured for updating ESRT entries include values that specify at least one of device firmware version, last or lowest supported firmware version, capsule flags, last attempt version, or last attempt status; and

where the method further comprises using the processing device to read values of the one or more entries from the extended PCIe device configuration space and to then update the ESRT with the entries read from the extended PCIe device configuration space.

14. The method of claim 10 , further comprising using the processing device to:

generate a hot plug event in the runtime OS space upon detecting coupling of the new PCIe hot-pluggable device to the PCIe communication bus of the information handling system;

then respond to detection of the generated hot plug event by using an event handler executed by the OS to read the device firmware version details from the extended PCIe device configuration space and to formulate a payload UEFI capsule update that includes at least some information from the read device firmware version details; and

then use the device firmware version details from the payload UEFI capsule update in the firmware space to update the ESRT with one or more updated device firmware version details.

15. The method of claim 14 , further comprising using the processing device to store the updated ESRT of the UEFI table in non-volatile memory of the information handling system.

16. The method of claim 15 , further comprising using the processing device to:

access the stored updated ESRT in non-volatile memory of the information handing system from an OS runtime service of the runtime OS space;

retrieve updated device firmware version details from the stored updated ESRT; and

update the firmware of the coupled new PCIe hot-pluggable device with the retrieved updated device firmware version details.

17. The method of claim 16 , further comprising rebooting the OS no more than a single time after storing the updated ESRT and before accessing the stored updated ESRT, retrieving the update device firmware version details, and updating the firmware of the new PCIe hot-pluggable device.

18. The method of claim 10 , where the new PCIe hot-pluggable device comprises at least one of a network adapter, a video/graphics controller, a solid state storage drive, a hard storage drive, or a redundant array of independent disks (RAID) controller.

19. The system of claim 4 , where the one or more device firmware version details contained in the extended PCIe device configuration space that are configured for updating ESRT entries include values that specify at least one of device firmware version, last or lowest supported firmware version, capsule flags, or last attempt firmware version.

20. The method of claim 10 , further comprising storing the one or more device firmware version details in the extended PCIe device configuration space of the PCIe hot-pluggable device during factory provisioning.

Assignments (15)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 038664 FRAME 0908 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0390 →
RELEASE OF REEL 038665 FRAME 0041 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0375 →
RELEASE OF REEL 038665 FRAME 0001 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040021/0348 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 11, 2016
From: DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 038664/0908 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 038665/0041 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 038665/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2016
From: VIDYADHARA, SUMANTH; PRASAD, PARMESHWR; GOWDA, SRINIVAS G.; VENKATARAMUDU, RAGHAVENDRA
To: DELL PRODUCTS L.P.
Reel/Frame 037867/0602 →
Continuity (1)
Related Publication 20170242686A1 · Aug 24, 2017