# US 11,308,015 B2 · Host-safe firmware upgrade of a PCI express device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,308,015 B2
- Document ID: US11308015B2
- Status: Granted
- Kind: B2
- Application number: 16/144,265
- Filed: 2018-09-27
- Published: 2019-01-24
- Granted: 2022-04-19
- Earliest claimed: 2015-09-25
- Assignees: Kioxia Corporation
- Applicants: Kioxia Corporation
- Inventors: Gordon W. Waidhofer; Ali Aiouaz; Christopher Delaney; Leland Thompson
- Web page: https://patentgrep.com/patent/US11308015B2

## CPC

- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- G06F 8/654: using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
- G06F 9/4403: {Processor initialisation}
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A method and a computer readable medium comprising instructions for upgrading a firmware of a peripheral device connected to a host device via a Peripheral Component Interconnect Express (PCIe) bus from the operating system (OS) of the host device is disclosed. In one embodiment, the method and computer readable medium instructions includes halting host device access to the peripheral device after detecting the peripheral device has completed a shutdown sequence, and resetting the peripheral device after a predetermined time period after completion of the shutdown sequence. The method and computer readable medium instructions further includes initializing the firmware stored in a persistent storage location of the peripheral device, and re-establishing a connection between the peripheral device and the host device. In one embodiment, the predetermined time period is greater than a time it takes for the host device to detect the peripheral device has completed the shutdown sequence. In one embodiment, the peripheral device is a Non-Volatile Memory Express (NVMe)-compliant data storage device.

## Claims

### Claim 1

A method of resetting a peripheral device directly connected, without a host bus adapter, to a host device via a Peripheral Component Interconnect Express (PCIe) bus from the operating system (OS) of the host device, the method comprising:
halting host device access to the peripheral device when the peripheral device has begun a shutdown sequence;
starting a predetermined time period after detecting the peripheral device has completed the shutdown sequence;
restarting the peripheral device after the predetermined time period; and
re-establishing a connection between the peripheral device and the host device through a link negotiation setting a link width and link speed of the PCIe bus.

### Claim 2 (depends on 1)

The method of claim 1, further comprising polling a status of the peripheral device to detect the peripheral device has completed the shutdown sequence.

### Claim 3 (depends on 2)

The method of claim 2, wherein polling the status of the peripheral device comprises reading a register of the peripheral device corresponding to either an active or a shutdown state of the peripheral device.

### Claim 4 (depends on 1)

The method of claim 1, further comprising selecting the predetermined time period to be greater than a time it takes for the host device to detect the peripheral device has completed the shutdown sequence.

### Claim 5 (depends on 1)

The method of claim 1, wherein the predetermined time period is greater than a time it takes for the host device to detect the peripheral device has completed the shutdown sequence.

### Claim 6 (depends on 1)

The method of claim 1, wherein the predetermined time period is between 1 ms and 200 ms.

### Claim 7 (depends on 1)

The method of claim 1, wherein the peripheral device is a data storage device.

### Claim 8 (depends on 1)

The method of claim 1, wherein the peripheral device is a Non-Volatile Memory Express (NVMe)-compliant data storage device.

### Claim 9 (depends on 8)

The method of claim 8, wherein the NVMe-compliant data storage device is a Solid State Drive (SSD).

### Claim 10 (depends on 8)

The method of claim 8, wherein the shutdown sequence includes disabling one or more NVMe command queues and performing a Flash Translation Layer (FTL) flush.

### Claim 11

A computer readable medium comprising instructions for resetting a peripheral device directly connected, without a host bus adapter, to a host device via a Peripheral Component Interconnect Express (PCIe) bus from the operating system (OS) of the host device by performing:
halting host device access to the peripheral device when detecting the peripheral device has begun a shutdown sequence;
starting a predetermined time period after detecting the peripheral device has completed the shutdown sequence
restarting the peripheral device after the predetermined time period; and
re-establishing a connection between the peripheral device and the host device through a link negotiation setting a link width and link speed of the PCIe bus.

### Claim 12 (depends on 11)

The computer readable medium of claim 11, further comprising instructions for performing:
polling a status of the peripheral device to detect the peripheral device has completed the shutdown sequence.

### Claim 13 (depends on 11)

The computer readable medium of claim 11, further comprising instructions for performing:
selecting the predetermined time period to be greater than a time it takes for the host device to detect the peripheral device has completed the shutdown sequence.

### Claim 14 (depends on 11)

The computer readable medium of claim 11, wherein the predetermined time period is greater than a time it takes for the host device to detect the peripheral device has completed the shutdown sequence.

### Claim 15 (depends on 11)

The computer readable medium of claim 11, wherein the predetermined time period is between 1 ms and 200 ms.

### Claim 16 (depends on 11)

The computer readable medium of claim 11, wherein the peripheral device is a data storage device.

### Claim 17 (depends on 11)

The computer readable medium of claim 11, wherein the peripheral device is a Non-Volatile Memory Express (NVMe)-compliant data storage device.

### Claim 18 (depends on 17)

The computer readable medium of claim 17, wherein the NVMe-compliant data storage device is a Solid State Drive (SSD).

### Claim 19 (depends on 17)

The computer readable medium of claim 17, wherein the shutdown sequence includes disabling one or more NVMe command queues and performing a Flash Translation Layer (FTL) flush.

### Claim 20 (depends on 11)

The computer readable medium of claim 11, wherein the computer readable medium is Random Access Memory (RAM) or Universal Serial Bus (USB) Flash Memory or is distributed across multiple devices or computing platforms.
