IP Library › Granted Patent US 11,340,889
Granted Patent B2
US 11,340,889 · App. 16/288,933 · Granted May 24, 2022

Updating firmware images on chained input/output (I/O) modules

Inventor: Christopher D. Voltz (Houston, TX)
Assignee: Hewlett Packard Enterprise Development LP
G06F8/654G06F3/0632G06F9/4401
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,340,889
App. No.
16/288,933
Granted
May 24, 2022
Kind
B2
Abstract

A technique includes communicating with a plurality of input/output (I/O) modules to cause a firmware image to be transferred to the I/O modules. The I/O modules are each associated with the plurality of storage device enclosures, and the I/O modules are serially coupled together in a chain establishing a processing order among the I/O modules. The technique includes rebooting the I/O modules to cause the I/O modules to use the communicated firmware images, where the rebooting includes rebooting the I/O modules in a second order counter to the processing order.

Claims (41)

1. A method comprising:

communicating with a plurality of input/output (I/O) modules to cause a firmware image to be transferred to the plurality of I/O modules, wherein each I/O module of the plurality of I/O modules is associated with a storage device enclosure of a plurality of storage device enclosures, and the plurality of I/O modules are serially coupled together in a chain establishing a processing order among the plurality of I/O modules; and

rebooting the plurality of I/O modules to cause the plurality of I/O modules to use the communicated firmware images, wherein the rebooting comprises rebooting the plurality of I/O modules in a second order counter to the processing order, wherein the rebooting comprises communicating a reboot command to a given I/O module of the plurality of I/O modules while another I/O module of the plurality of I/O modules is rebooting.

2. The method of claim 1 , wherein:

the chain comprises a daisy chain;

the daisy chain begins with a first I/O module of the plurality of I/O modules and ends with a second I/O module of the plurality of I/O modules; and

rebooting the I/O modules comprises rebooting the plurality of I/O modules according to the second order such that the rebooting of the second I/O module is initiated before the rebooting of the first I/O module.

3. The method of claim 1 , wherein:

the processing order corresponds to a downstream sequential direction along the chain;

the second order corresponds to an upstream sequential direction along the chain; and

rebooting the plurality of I/O modules comprises communicating the reboot command to reboot a first I/O module of the plurality of I/O modules while a second I/O module of the plurality of I/O modules is rebooting.

4. The method of claim 1 , wherein a first I/O module of the plurality of I/O modules is associated with a port identification (ID), the first I/O module is associated with a given storage device enclosure of the plurality of storage device enclosures, the given storage device enclosure comprises a plurality of storage devices, and the first I/O module comprises a port expander to communicate with a plurality of ports associated with the plurality of storage devices.

5. The method of claim 1 , wherein communicating the firmware image to the plurality of I/O modules comprises communicating firmware image data through a port of a host bus adapter.

6. The method of claim 1 , wherein:

a first I/O module of the plurality of I/O modules corresponds to a first end of the chain and is coupled to a first port of a host bus adapter; and

a second I/O module of the plurality of I/O modules corresponds to a second end of the chain and is coupled to a second port of the host bus adapter other than the first port.

7. The method of claim 1 , wherein communicating with the plurality of I/O modules comprises communicating with hardware processors of the I/O modules.

8. The method of claim 7 , wherein:

communicating the firmware images and the rebooting occur in association with a computing node and the computing node determines whether an I/O module of the plurality of I/O modules is locked from firmware updates.

9. The method of claim 8 , wherein the computing node is part of a cluster of high availability (HA) computing nodes.

10. The method of claim 1 , wherein the plurality of I/O modules comprises port expanders.

11. The method of claim 1 , wherein communicating the firmware image data to the plurality of I/O modules comprises communicating a write command to the plurality of I/O modules, wherein the write command causes the plurality of I/O modules to defer rebooting.

12. The method of claim 1 , wherein:

rebooting the plurality I/O modules comprises rebooting a first I/O module of the plurality of I/O modules; and

rebooting of the first I/O module causes communication with a second I/O module of the plurality of I/O modules to be unavailable while the first I/O module is rebooting.

13. An apparatus comprising:

at least one processor; and

a memory to store instructions that, when executed by the at least processor, cause the at least one processor to:

communicate with input/output (I/O) modules that are coupled together in a daisy chain to cause an updated firmware image to be transferred to the I/O modules and cause the I/O modules to defer rebooting to effect updating of firmware of the I/O modules, wherein the daisy chain establishes a first sequential ordering of the I/O modules; and

sequentially reboot the I/O modules to effect updating of the firmware according to a second sequential ordering other than the first sequential ordering, wherein the sequential rebooting comprises the at least one processor communicating a reboot command to a given I/O module of the I/O modules while another I/O module of the I/O modules is rebooting.

14. The apparatus of claim 13 , wherein the second sequential ordering is the reverse of the first sequential ordering.

15. The apparatus of claim 13 , wherein the instructions, when executed by the at least one processor, further cause the at least one processor to sequentially reboot the I/O modules to cause a first I/O module of the I/O modules to reboot while the updated firmware image is being transferred to a second I/O module of the I/O modules.

16. The apparatus of claim 15 , wherein the second I/O module is upstream of the first I/O module according to the first sequential ordering.

17. A machine readable storage medium to store instructions that, when executed by a machine, cause the machine to:

communicate with a chain of input/output (I/O) modules serially coupled together by storage link interconnects to cause the I/O modules to load data representing a firmware update for each of the I/O modules, wherein the chain of I/O modules comprises a first I/O module disposed at the beginning of the chain and associated with a first group of storage drives, and the chain of I/O modules comprises a second I/O module disposed downstream of the first I/O module and associated with a second group of storage drives; and

communicate with the first and second I/O modules to reboot the first and second I/O modules to cause the first and second I/O modules to apply the firmware update, wherein communicating with the first and second I/O modules comprises causing the second I/O module to begin rebooting before the first I/O module and initiate rebooting of the first I/O module while the second I/O module is rebooting.

18. The machine readable storage medium of claim 17 , wherein the instructions, when executed by the machine, further cause the machine to:

communicate with a given I/O module of the chain of I/O modules in association with a first initiator; and

determine whether firmware of the given I/O module is being updated by a second initiator.

19. The machine readable storage medium of claim 18 , wherein the first and second initiators are associated with a cluster of high availability (HA) servers.

20. The machine readable storage medium of claim 17 , wherein the instructions, when executed by the machine, further cause the machine to reboot the chain of I/O modules in an order reverse to an order in which commands propagate through the chain.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2019
From: VOLTZ, CHRISTOPHER D.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 048469/0733 →
Continuity (1)
Related Publication 20200278858A1 · Sep 3, 2020
Cited By (2)
US 12,321,645 US 12,346,684