IP Library Granted Patent US 10,802,717
Granted Patent B2
US 10,802,717 · App. 15/999,412 · Granted Oct 13, 2020

Systems and methods for efficient firmware inventory of storage devices in an information handling system

Inventors: Samir Paitod (Bangalore, IN); Santosh Gore (Bangalore, IN); Raveendra Babu Madala (Bangalore, IN); Chandrashekar Nelogal (Round Rock, TX)
Assignee: Dell Products L.P.
G06F3/0607G06F3/067G06F3/0653G06F8/60
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,802,717
App. No.
15/999,412
Granted
Oct 13, 2020
Kind
B2
Abstract

A firmware inventory system for efficient firmware inventory of storage devices in an information handling system may include a first storage subsystem. The first storage subsystem may include a first set of storage devices, a first inventory information table, and a first expander. The expander may include a first memory, a first processor, and a first virtual SEP device stored in the first memory and executable by the first processor. The first virtual SEP device may, when a device change event is received from a first storage device of the first set of storage devices, send a device information request to the first storage device, receive a device information response including device information of the first storage device from the first storage device in response to the device information request and update the first inventory information table with the device information of the first storage device.

Claims (99)

1. A firmware inventory system, comprising:

a first storage subsystem comprising:

a first set of storage devices, each storage device associated with a respective complex programmable logic device (CPLD);

a first inventory information table; and

a first expander comprising:

a first memory;

a first processor; and

a first virtual device stored in the first memory and executable by the first processor,

the first virtual device to:

when a device change event is received from a first storage device of the first set of storage devices:

send a device information request to a first CPLD associated with the first storage device;

receive a device information response including device information of the first storage device from the first CPLD associated with the first storage device in response to the device information request, including accessing a device presence bit of the first CPLD, the device presence bit indicating whether the first storage device is present in the first storage subsystem; and

update the first inventory information table with the device information of the first storage device based on an indication of the device presence bit whether the first storage device is present in the first storage subsystem or the first storage device is not present in the first storage subsystem;

a firmware inventory module to:

monitor disk microcode updates of the first storage device, including identifying a key value, a sense code value, and a sense code qualifier of the device firmware of the first storage device to identify an upgrade to a device firmware of the first storage device;

in response to identifying the upgrade to the device firmware of the first storage device:

sending an inquiry command to the first storage device; and

updating the first inventory table by setting a state indicator of the first storage device to indicate a stale value.

2. The firmware inventory system of claim 1 , wherein the device change event comprises a physical link event that indicates that the first storage device has been inserted in the first storage subsystem, and wherein

the update of the first inventory information table further comprises the first virtual device to add a first storage device entry including the device information of the first storage device to the first inventory information table.

3. The firmware inventory system of claim 1 , wherein the device change event comprises a physical link event that indicates that the first storage device has been removed from the first storage subsystem, and wherein

the update of the first inventory information table further comprises the first virtual device to remove a first storage device entry associated with the first storage device from the first inventory information table.

4. The firmware inventory system of claim 1 , wherein each one of the first set of storage devices further comprises device firmware; and wherein the device change event comprises a device notification event that indicates that the device firmware of the first storage device has been updated.

5. The firmware inventory system of claim 1 , wherein the first expander further comprises first expander firmware, and wherein the first virtual device further to:

when the first expander receives an expander firmware update event that indicates that the first expander firmware has been updated:

send a new device information request to each respective CPLD associated with the first set of storage devices;

receive a new device information response including new device information from each CPLD associated with each respective storage device of the first set of storage devices;

add a new storage device entry including the new device information for each respective storage device to a new inventory information table; and

replace the first inventory information table with the new inventory information table.

6. The firmware inventory system of claim 1 , wherein the first virtual device further to:

when the first expander receives a first inventory information table request from an initiator application:

send a new device information request to each respective CPLD associated with the first set of storage devices;

receive a new device information response including new device information from each CPLD associated with each respective storage device of the first set of storage devices;

add a new storage device entry including the new device information for each respective storage device to the first inventory information table;

save the first inventory information table;

send a second inventory information table request to a second expander of a second storage subsystem of the firmware inventory system;

receive a second inventory table from the second expander;

merge the first inventory information table with the second inventory information table to create a merged inventory information table; and

send the merged inventory information table to the initiator application in response to the first inventory information table request.

7. The firmware inventory system of claim 1 , wherein the device information of each storage device entry of the first inventory information table comprises a peripheral qualifier, a peripheral device type, a vendor identification, a product identification, a product revision level, a driver serial number, a vendor specific component identification, a drive slot number, and an enclosure bay identification.

8. A method, comprising:

when a device change event is received from a first storage device of a first set of storage devices of a first storage subsystem of a firmware inventory system:

sending, by a first virtual device of a first expander of the firmware inventory system, a device information request to a first complex programmable logic device (CPLD) associated with the first storage device;

receiving, by the first virtual device, a device information response including device information of the first storage device from first CPLD associated with the first storage device in response to the device information request, including accessing a device presence bit of the first CPLD, the device presence bit indicating whether the first storage device is present in the first storage subsystem;

updating, by the first virtual device, a first inventory information table of the first storage subsystem with the device information of the first storage device based on an indication of the device presence bit whether the first storage device is present in the first storage subsystem or the first storage device is not present in the first storage subsystem;

monitoring, by a firmware inventory module, disk microcode updates of the first storage device, including identifying a key value, a sense code value, and a sense code qualifier of the device firmware of the first storage device to identify an upgrade to a device firmware of the first storage device;

in response to identifying the upgrade to the device firmware of the first storage device:

sending, by the firmware inventory module, an inquiry command to the first storage device; and

updating, by the firmware inventory module, the first inventory table by setting a state indicator of the first storage device to indicate a stale value.

9. The method of claim 8 , wherein the device change event comprises a physical link event that indicates that the first storage device has been inserted in the first storage subsystem, and wherein

updating the first inventory information table further comprises adding a first storage device entry including the device information of the first storage device to the first inventory information table.

10. The method of claim 8 , wherein the device change event comprises a physical link event that indicates that the first storage device has been removed from the first storage subsystem, and wherein

updating the first inventory information table further comprises removing a first storage device entry associated with the first storage device from the first inventory information table.

11. The method of claim 8 , wherein each one of the first set of storage devices further comprises device firmware, and wherein the device change event comprises a device notification event that indicates that the device firmware of the first storage device has been updated.

12. The method of claim 8 , the method further comprising:

when an expander firmware update event is received that indicates that first expander firmware of the first expander has been updated:

sending a new device information request to each respective CPLD associated with the first set of storage devices;

receiving a new device information response including new device information from each CPLD associated with each respective storage device of the first set of storage devices;

adding a new storage device entry including the new device information for each respective storage device to a new inventory information table; and

replacing the first inventory information table with the new inventory information table.

13. The method of claim 8 , the method further comprising:

when a first inventory information table request from an initiator application is received:

sending a new device information request to each respective CPLD associated with the first set of storage devices;

receiving a new device information response including new device information from each CPLD associated with each respective storage device of the first set of storage devices;

adding a new storage device entry including the new device information for each respective storage device to the first inventory information table;

saving the first inventory information table;

sending a second inventory information table request to a second expander of a second storage subsystem of the firmware inventory system;

receiving a second inventory table from the second expander;

merging the first inventory information table with the second inventory information table to create a merged inventory information table; and

sending the merged inventory information table to the initiator application in response to the first inventory information table request.

14. The method of claim 8 , wherein the device information of each storage device entry of the first inventory information table comprises a peripheral qualifier, a peripheral device type, a vendor identification, a product identification, a product revision level, a driver serial number, a vendor specific component identification, a drive slot number, and an enclosure bay identification.

15. A firmware inventory system, comprising:

a storage subsystem comprising:

a set of storage devices, each storage device associated with a respective complex programmable logic device (CPLD);

an inventory information table; and

a storage controller comprising:

a firmware inventory module stored in a memory of the storage controller and executable by a processor of the storage controller, the firmware inventory module to:

when the storage controller receives a device change event from a first storage device of the set of storage devices that indicates that device firmware of the first storage device has been updated:

 send a device information request to a first CPLD associated with the first storage device;

 receive a device information response including device information of the first storage device from the first CPLD associated with the first storage device in response to the device information request, including accessing a device presence bit of the first CPLD, the device presence bit indicating whether the first storage device is present in the first storage subsystem; and

 update the inventory information table with the device information of the first storage device based on an indication of the device presence bit whether the first storage device is present in the first storage subsystem or the first storage device is not present in the first storage subsystem;

 monitor disk microcode updates of the first storage device, including identifying a key value, a sense code value, and a sense code qualifier of the device firmware of the first storage device to identify an upgrade to a device firmware of the first storage device;

 in response to identifying the upgrade to the device firmware of the first storage device:

 sending an inquiry command to the first storage device; and

 updating the first inventory table by setting a state indicator of the first storage device to indicate a stale value.

16. The firmware inventory system of claim 15 , wherein,

prior to the device information request being sent to the first storage device, the firmware inventory module to:

update a state indicator of the inventory information table to a stale value to indicate that the inventory information table is stale, and wherein,

after the inventory information table has been updated with the device information, the firmware inventory module to:

update the state indicator of the inventory information table to an updated value to indicate that the inventory information table is updated.

17. The firmware inventory system of claim 15 , wherein the firmware inventory module further to:

when the storage controller receives the device change event that indicates that the first storage device has been inserted in the storage subsystem:

send the device information request to the first storage device;

receive the device information response including device information of the first storage device from the first storage device in response to the device information request; and

add a first storage device entry including the device information of the first storage device to the inventory information table.

18. The firmware inventory system of claim 15 , wherein the firmware inventory module further to:

when the storage controller receives the device change event that indicates that the first storage device has been removed from the storage subsystem:

remove a first storage device entry associated with the first storage device from the inventory information table.

19. The firmware inventory system of claim 15 , wherein the device information of each storage device entry of the first inventory information table comprises a peripheral qualifier, a peripheral device type, a vendor identification, a product identification, a product revision level, a driver serial number, a vendor specific component identification, a drive slot number, and an enclosure bay identification.

Assignments (5)
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 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2018
From: PAITOD, SAMIR; GORE, SANTOSH; MADALA, RAVEENDRA BABU; NELOGAL, CHANDRASHEKAR
To: DELL PRODUCTS L.P.
Reel/Frame 047063/0413 →
Continuity (1)
Related Publication 20200057568A1 · Feb 20, 2020