IP Library Granted Patent US 7,146,541
Granted Patent B2
US 7,146,541 · App. 10/441,700 · Granted Dec 5, 2006

Back out provision for failed programmable hardware update

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 7,146,541
App. No.
10/441,700
Granted
Dec 5, 2006
Kind
B2
Abstract

An apparatus and method for providing a back out routine for a failed programmable hardware update is provided. In one embodiment, the method includes: a) storing a new software image for the programmable device associated with the hardware update, b) storing a previous software image for the programmable device, c) programming the programmable device to operate according to the new software image, d) determining if there is a failure associated with the programming step, and e) if a failure is identified, programming the programmable device to operate according to the previous software image, otherwise the hardware update to the programmable device was successful. In one aspect, the back out routine is provided for a program load failure. In another aspect, the back out routine is provided for a programmable device failure.

Claims (76)

1. A method for backing out of a hardware update to a programmable device when a program load failure is detected, the method including the steps:

a) storing a new software image for the programmable device associated with the hardware update;

b) storing a previous software image for the programmable device;

c) programming the programmable device with the new software image;

d) determining if a program load failure occurred in conjunction with programming step c); and

e) if a program load failure is determined, programming the programmable device with the previous software image, wherein the programmable device is a field programmable gate array.

2. The method as set forth in claim 1 , wherein first and second flag storage locations and first and second software image storage locations are provided, between steps a) and c), the method further including:

f) setting the first flag to a value indicating that a new software image for updating the programmable device is available; and

g) setting the second flag to a value indicating whether the new software image is stored in the first or the second software image storage location; between steps g) and c), the method further including:

h) checking the value of the first flag to confirm that a new software image for updating the programmable device is available; and

i) checking the value of the second flag to locate the new software image; end between steps d) and e), the method further including:

j) if a program load failure is determined, checking the value of the second flag to locate the previous software image.

3. The method as set forth in claim 1 , between steps d) and e), the method further including:

f) if a program load failure is determined, returning to step c) to perform the programming and determining steps c) and d) again.

4. The method as set forth in claim 1 , further including:

f) if the programming portion of step e) was successful, returning to step c) to perform the programming and determining steps c) and d) again.

5. The method as set forth in claim 1 , further including:

f) determining if a program load failure occurred in conjunction with the programming portion of step e); and

g) if a program load failure is determined, concluding that the hardware update cannot be accomplished.

6. The method as set forth in claim 1 , wherein the field programmable gate array is associated with a peripheral interface in a telecommunication switch.

7. The method as set forth in claim 6 , wherein the field programmable gate array is associated with a time-division multiplexer interface.

8. The method as set forth in claim 1 , further including:

f) determining if a program load failure occurred in conjunction with programming step e); and

g) if a program load failure is determined, programming the programmable device with a golden software image.

9. A method for backing out of a hardware update to a programmable device when a subsequent programmable device failure is detected, the method including the steps:

a) storing a new software image for the programmable device associated with the hardware update;

b) storing a previous software image for the programmable device;

c) programming the programmable device with the new software image to install the hardware update over a remote link;

d) determining if the programmable device is operational after the hardware update; end

e) if a programmable device failure is identified, programming the programmable device with the previous software image, otherwise the hardware update to the programmable device was successful, wherein the programmable device comprises a field programmable gate array.

10. The method as set forth in claim 9 , between steps c) and d), the method further including:

f) determining if a program load failure occurred in conjunction with programming step c); and

g) ifs program load failure is determined, programming the programmable device with the previous software image, otherwise continuing to step d).

11. The method as set forth in claim 10 , further including:

h) determining ifs program load failure occurred in conjunction with programming step g); and

i) if a program load failure is determined, programming the programmable device with a golden software image, otherwise returning to step c).

12. The method as set forth in claim 10 , wherein first and second flag storage locations and first and second software image storage locations are provided, between steps a) and c) the method further including:

h) setting the first flag to a value indicating that a new software image for updating the programmable device is available; and

i) setting the second flag to a value indicating whether the new software image is stored in the first or the second software image storage location;

j) checking the value of the first flag to confirm that a new software image for updating the programmable device is available; and

k) checking the value of the second flag to locate the new software image; between steps f) and g), the method further including:

l) if a program load failure is determined, checking the value of the second flag to locate the previous software image;

step d) further including:

m) communicating with the programmable device to determine if the programmable device is operational after the hardware update;

n) if the programmable device is operational after the hardware update, setting the first flag to a value indicating that a new software image for updating the programmable device is no longer available; and

o) checking the value of the first flag to confirm that a new software image for updating the programmable device is no longer available; between steps d) and e), the method further including:

p) if a programmable device failure is identified, checking the value of the second flag to locate the previous software image; and

after step e), the method further including:

q) setting the first flag to a value indicating that a new software image for updating the programmable device is no longer available; and

r) selling the second flag to a value indicating whether the previous software image is stored in the first or the second software image storage location.

13. The method as set forth in claim 10 , between steps f) and g), the method further including:

h) if a program load failure is determined, returning to step c) to perform the programming and determining steps c) and f) again.

14. The method as set forth in claim 10 , further including:

h) if the programming portion of step g) was successful, returning to step c) to perform the programming and determining steps c) and f) again.

15. The method as set forth in claim 10 , further including:

h) determining if a program load failure occurred in conjunction with the programming portion of step g); and

i) if a program load failure is determined, concluding that the hardware update cannot be accomplished.

16. A method for backing out of a hardware update to a programmable device when a subsequent programmable device failure is detected, the method including the steps:

a) storing a new software image for the programmable device associated with the hardware update;

b) storing a previous software image for the programmable device;

c) programming the programmable device with the new software image to install the hardware update;

d) determining if the programmable device is operational after the hardware update; and

e) if a programmable device failure is identified, programming the programmable device with the previous software image, otherwise the hardware update to the programmable device was successful, wherein the programmable device is a field programmable gate array.

17. The method as set forth in claim 16 , wherein the field programmable gate array is associated with a peripheral interface in a telecommunication switch.

18. The method as set forth in claim 17 , wherein the field programmable gate array is associated with a time-division multiplexer interface.

19. The method as set forth in claim 16 , further including:

f) determining if the programming portion of step e) was successful; and

g) if the programming was not successful, returning to step e) to perform the programming portion again.

20. A method for backing out of a hardware update to a programmable device when a failure is detected, the method Including the steps:

a) storing a new software image for the programmable device associated with the hardware update:

b) storing a previous software image for the programmable device;

c) programming the programmable device to operate according to the new software image over a remote link;

d) determining if there is a failure associated with the programming step; and

e) if a failure is identified, programming the programmable device to operate according to the previous software image, otherwise the hardware update to the programmable device was successful, wherein the programmable device comprises a field programmable gate array.

21. The method as set forth in claim 20 , wherein the failure in steps d) and e) is a program load failure.

22. The method as set forth in claim 20 , wherein the failure in steps d) and e) is a programmable device failure.

Assignments (12)
PATENT SECURITY AGREEMENT Recorded Aug 6, 2024
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 068328/0674 →
RELEASE OF LIEN ON PATENTS Recorded Aug 5, 2024
From: BARINGS FINANCE LLC
To: RPX CORPORATION
Reel/Frame 068328/0278 →
PATENT SECURITY AGREEMENT Recorded Apr 22, 2023
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 063429/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
CHANGE OF NAME Recorded Feb 7, 2019
From: LUCENT TECHNOLOGIES INC.
To: ALCATEL-LUCENT USA INC.
Reel/Frame 049887/0613 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2003
From: BLUMBERG, MARC R.; KALSCHEUR, MICHAEL J.; PALITTO, MATTEO; STURM, DOUGLAS W.; PRANAITIS, WILLIAM F., JR.
To: LUCENT TECHNOLOGIES INC.
Reel/Frame 014364/0060 →