IP Library Granted Patent US 9,223,563
Granted Patent B2
US 9,223,563 · App. 14/119,375 · Granted Dec 29, 2015

Management of device firmware update effects as seen by a host

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 9,223,563
App. No.
14/119,375
Granted
Dec 29, 2015
Kind
B2
Abstract

Management of device firmware update effects as seen by a computing host enables continuously running an OS on the host across a device firmware update, e.g., via delaying visibility of at least a portion of effects of the firmware update, such as in a context where without the delay in visibility the OS would encounter an unrecoverable error and crash. For example, a device (e.g. an SSD) is coupled to a computing host running an unmodified version of Windows. Firmware on the device is updated/activated, such as by being booted. Visibility of a portion of information that would otherwise become immediately visible to the OS (upon activation of updated firmware) is delayed until a power cycle of the device. If the portion includes, e.g., a firmware revision identifier, then the delayed visibility enables continuously running the OS across the firmware update/activation without rebooting the OS.

Claims (42)

1. A method comprising:

coupling a storage device to a computing host;

managing, by the storage device, a non-volatile memory to store a first firmware, a first firmware revision identifier, a second firmware, and a second firmware revision identifier;

receiving, by the storage device, the first firmware from the computing host, the first firmware being associated with the first firmware revision identifier;

receiving, by the storage device, the second firmware from the computing host, the receiving the second firmware being occurring after the receiving the first firmware, the second firmware being associated with the second firmware revision identifier; and

returning, by the storage device, the first firmware revision identifier to the computing host, the returning being responsive to a particular command type from the computing host and occurring while the storage device is executing the second firmware and before a particular event occurs, wherein a first command type is a read-identity command type and the particular event is a power cycle of the storage device; and

wherein the returning the first firmware revision identifier to the computing host enables an Operating System (OS) executing on the computing host to continue executing without detecting an error in response to a change in a value of a returned firmware revision identifier throughout the storage device executing the first firmware and during executing the second firmware until the particular event occurs.

2. The method of claim 1 , further comprising returning, by the storage device, the second firmware revision identifier to the computing host while the storage device is executing the second firmware, after the particular event occurs, and responsive to the particular command type from the computing host.

3. The method of claim 1 , wherein the OS comprises a version of an OS selected from the group consisting of a version of a Windows OS, a version of a Linux OS, and a version of a MacOS OS.

4. The method of claim 1 , wherein the particular command type comprises a Serial Advanced Technology Attachment (SATA) IDENTIFY command type.

5. The method of claim 1 , wherein the particular command type comprises a Serial Attached Small Computer System Interface (Serial SCSI) (SAS) read Vital Product Data (VPD) command type.

6. A storage device comprising:

non-volatile memory;

a storage controller to manage the non-volatile memory to store a first firmware, a first firmware revision identifier, a second firmware, and a second firmware revision identifier, the storage device being enabled to couple to a computing host; and

a host interface configured to

receive the first firmware from the computing host, the first firmware being associated with the first firmware revision identifier,

receive the second firmware from the computing host after receiving the first firmware, the second firmware being associated with the second firmware revision identifier,

return the first firmware revision identifier to the computing host responsive to a first command type from the computing host and occurring while the storage device is executing the second firmware and before a particular event occurs, and

return the second firmware revision identifier to the computing host responsive to a second command type from the computing host and occurring while the storage device is executing the second firmware,

wherein the first command type is a read-identity command type,

wherein the second command type is a vendor specific command type, and

wherein the returning the first firmware revision identifier to the computing host enables an Operating System (OS) executing on the computing host to continue executing without detecting an error in response to a change in a value of a returned firmware revision identifier throughout the storage device executing the first firmware and during executing the second firmware until the particular event occurs.

7. The storage device of claim 6 , wherein the vendor specific command type comprises a vendor specific firmware identification information read command type.

8. The storage device of claim 6 , wherein the read-identity command type comprises a Serial Advanced Technology Attachment (SATA) IDENTIFY command type.

9. The storage device of claim 6 , wherein the read-identity command type comprises a Serial Attached Small Computer System Interface (Serial SCSI) (SAS) read Vital Product Data (VPD) command type.

10. The storage device of claim 6 , wherein the read-identity command type comprises a command type that when processed such that the second firmware revision identifier is returned instead of the first firmware revision identifier, an Operating System (OS) executing on the computing host encounters an unrecoverable error.

11. The storage device of claim 10 , wherein the OS comprises a version of an OS selected from the group consisting of a version of a Windows OS, a version of a Linux OS, and a version of a MacOS OS.

12. A storage device comprising:

a non-volatile memory;

a storage controller to manage the non-volatile memory to store a first firmware, a first firmware revision identifier, a second firmware, and a second firmware revision identifier, the storage device being enabled to couple to a computing host; and

a host interface configured to

receive the first firmware from the computing host, the first firmware being associated with the first firmware revision identifier,

receive the second firmware from the computing host, the receiving the second firmware occurring after the receiving the first firmware, the second firmware being associated with the second firmware revision identifier, and

return the first firmware revision identifier to the computing host, the returning being responsive to a first command type from the computing host and occurring while the device is executing the second firmware and before a particular event occurs, wherein the first command type is a read-identity command type; and

wherein the returning the first firmware revision identifier to the computing host enables an Operating System (OS) executing on the computing host to continue executing without detecting an error in response to a change in a value of a returned firmware revision identifier throughout the storage device executing the first firmware and during executing the second firmware until the particular event occurs.

13. The storage device of claim 12 , wherein the host interface is further configured to

return the second firmware revision identifier to the computing host responsive to a second command type from the computing host and occurring while the storage device is executing the second firmware.

14. The storage device of claim 12 , wherein the second command type is a vendor specific command type.

15. The storage device of claim 12 , wherein the OS comprises a version of an OS selected from the group consisting of a version of a Windows OS, a version of a Linux OS, and a version of a MacOS OS.

16. The storage device of claim 12 , wherein the first command type comprises a Serial Advanced Technology Attachment (SATA) IDENTIFY command type.

17. The storage device of claim 12 , wherein the first command type comprises a Small Computer System Interface (SCSI) read Vital Product Data (VPD) command type.

18. The storage device of claim 12 , wherein the first command type comprises a Serial Attached Small Computer System Interface (Serial SCSI) (SAS) read Vital Product Data (VPD) command type.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2015
From: LSI CORPORATION
To: SEAGATE TECHNOLOGY LLC
Reel/Frame 034771/0571 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS INCLUDED IN SECURITY INTEREST PREVIOUSLY RECORDED AT REEL/FRAME (032856/0031) Recorded Nov 6, 2014
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 034177/0257 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2014
From: STENFORT, ROSS JOHN; MCKAY, KEITH PATRICK
To: LSI CORPORATION
Reel/Frame 032650/0953 →