IP Library Granted Patent US 8,839,227
Granted Patent B2
US 8,839,227 · App. 12/396,154 · Granted Sep 16, 2014

Preventing overwrite of nonessential code during essential code 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 8,839,227
App. No.
12/396,154
Filed
Mar 2, 2009
Granted
Sep 16, 2014
Kind
B2
Art Unit
2198
USPC
717/172
Abstract

Systems and methods are provided for downloading updated software from a head end to a cable modem that writes to flash memory an updated operating system code without overwriting the preexisting application code portion and also without overwriting the preexisting operating system code portion. Updated application code is not written until the updated operating system code has been verified as error-free.

Claims (52)

1. A method for updating the software of a network communication device, the method comprising the steps of:

receiving the updated software code from a head end device, wherein the updated software code includes an essential code portion and a nonessential application code portion; and

upon a determination that sufficient storage capacity exists within a flash memory device for the essential code portion while maintaining a preexisting essential code portion and a preexisting nonessential application code portion therein:

writing the essential code portion to the flash memory device such that both the preexisting essential code portion and the preexisting nonessential application code portion are not overwritten by the essential code portion;

verifying that the essential code portion has been written to the flash memory device without error;

updating a first pointer with an address corresponding to the essential code;

writing the nonessential application code portion to the flash memory device such that the preexisting essential code portion is not overwritten; and

updating a second pointer with an address corresponding to the nonessential application code.

2. The method of claim 1 further comprising the steps of:

upon determination that essential code portion was not accurately written to the flash memory device:

receiving the updated software code again from a head end device; and

performing the determination steps again.

3. The method of claim 2 further comprising the step of, upon failure of an attempt to write the essential code portion to the flash memory device, operating the network communication device with the preexisting essential code portion and the preexisting nonessential application code portion without the need for re-download of preexisting software code.

4. The method of claim 1 , wherein the network communication device is a cable modem.

5. The method of claim 1 , wherein the nonessential application code portion includes code for operating a telephony device.

6. The method of claim 1 , wherein the nonessential application code portion includes PacketCable™ code.

7. The method of claim 1 further comprising the step of, booting the network communication device from the preexisting essential code portion after a failure that occurred while updating the software and before the verifying step.

8. The method of claim 7 further comprising the step of, requesting that the updated software code be re-sent from the head end device, whereupon the updating of the software begins again.

9. The method of claim 7 , wherein the failure is one of the following: a loss of power, an RF interruption, a corrupted download.

10. The method of claim 1 further comprising the step of, verifying that the nonessential application code portion has been written to the flash memory device without error.

11. A method for updating the software of a network communication device, the method comprising the steps of:

receiving the updated software code from a head end device, wherein the updated software code includes an essential code portion and a nonessential application code portion;

determining that sufficient storage capacity exists within a flash memory device for the essential code portion while maintaining a preexisting essential code portion and a preexisting nonessential application code portion therein,

writing the essential code portion to the flash memory device such that both the preexisting essential code portion and the preexisting nonessential application code portion are not overwritten by the essential code portion; and

writing the nonessential application code portion to the flash memory device such that the preexisting essential code portion is not overwritten.

12. A system for updating the software of a network communication device, the system comprising:

a head end device for providing updated software code, wherein the updated software code includes an essential code portion and a nonessential application code portion; and

a network communication device comprising a flash memory device, the network communication device coupled to the head end device through a network and configured to:

receive the updated software code from the head end device; and

upon a determination that sufficient storage capacity exists within the flash memory device for the essential code portion and also maintain a preexisting essential code portion and a preexisting nonessential application code portion therein:

write the essential code portion to the flash memory device while the preexisting essential code portion and the preexisting nonessential application code portion are not overwritten;

verify that the essential code portion has been written to the flash memory device without error;

update a first pointer with an address that corresponds to the essential code;

write the nonessential application code portion to the flash memory device such that the preexisting essential code portion is not overwritten; and

update a second pointer with an address that corresponds to the nonessential application code.

13. The system of claim 12 , wherein the network communication device is further configured to request the updated software code again from the head end device upon a determination that the essential code portion was not accurately written to the flash memory device.

14. The system of claim 13 , wherein the network communication device is further configured to operate with the preexisting essential code portion and the preexisting nonessential application code portion upon failure of an attempt to write the essential code portion to the flash memory device, such that a re-download of preexisting software code is unnecessary.

15. The system of claim 12 , wherein the network communication device is a cable modem.

16. The system of claim 12 , wherein the nonessential application code portion includes code for operating a telephony device.

17. The system of claim 12 , wherein the nonessential application code portion includes PacketCable™ code.

18. The system of claim 12 the network communication device is configured to boot from the preexisting essential code portion after a failure that occurred while updating the software and before verification of the essential code portion.

19. The system of claim 18 wherein the network communication device is configured to request that the updated software code be re-sent from the head end device such that the updating of the software starts again.

20. The system of claim 18 , wherein the failure is one of the following: a loss of power, an RF interruption, a corrupted download.

21. The system of claim 12 wherein the network communication device verifies that the nonessential application code portion has been written to the flash memory device without error.

22. A method for installing an updated set of communication programs into a stored program controlled apparatus that includes a communication port and a memory by transmitting said updated set of programs to said apparatus via said port, with the aid of a preexisting set of communications programs already resident in said memory, where said preexisting set of programs contains a subset of programs that include preexisting essential programs, and said updated set of programs contain a subset of programs that include essential programs and nonessential application programs, comprising the steps of:

installing the essential programs in a first area of said memory that do not contain the preexisting essential programs and also do not contain preexisting nonessential application programs, such that the preexisting essential programs and preexisting nonessential application programs are not overwritten;

altering operation of said apparatus to execute the essential programs instead of the preexisting essential programs; and

installing the nonessential application programs in a second area of said memory, said second area constituting memory locations not occupied by the essential programs.

23. The method of claim 22 , further comprising the steps of:

erasing said first area of said memory, said erasing step to be performed prior to said step of installing the essential programs into said first area of said memory; and

erasing said second area of said memory, said erasing step to be performed after said step of altering operation of the apparatus and prior to said step of installing the remaining nonessential application programs of said updated set of communication programs.

24. The method of claim 22 , wherein said step of altering operation of said apparatus to execute said essential programs is accomplished by updating a pointer to a byte address indicating a beginning sector of said essential programs to pass control of said apparatus to said essential programs.

Assignments (13)
SECURITY INTEREST Recorded Apr 8, 2026
From: ARRIS ENTERPRISES LLC; RUCKUS IP HOLDINGS LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 075476/0814 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 049905/0504 Recorded Dec 19, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC (F/K/A ARRIS ENTERPRISES, INC.); ARRIS TECHNOLOGY, INC.; ARRIS SOLUTIONS, INC.; COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; RUCKUS WIRELESS, LLC (F/K/A RUCKUS WIRELESS, INC.)
Reel/Frame 071477/0255 →
SECURITY INTEREST Recorded Dec 17, 2024
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE INC., OF NORTH CAROLINA; OUTDOOR WIRELESS NETWORKS LLC; RUCKUS IP HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC
Reel/Frame 069889/0114 →
SECURITY INTEREST Recorded Nov 19, 2021
From: ARRIS SOLUTIONS, INC.; ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; RUCKUS WIRELESS, INC.
To: WILMINGTON TRUST
Reel/Frame 060752/0001 →
ABL SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049892/0396 →
TERM LOAN SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049905/0504 →
PATENT SECURITY AGREEMENT Recorded Jul 3, 2019
From: ARRIS ENTERPRISES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 049820/0495 →
CHANGE OF NAME Recorded Jun 25, 2019
From: ARRIS ENTERPRISES, INC.
To: ARRIS ENTERPRISES LLC
Reel/Frame 049586/0470 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 8, 2019
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: ARRIS GROUP, INC.; ARRIS ENTERPRISES, INC.; ARRIS SOLUTIONS, INC.; ARRIS KOREA, INC.; ARRIS HOLDINGS CORP. OF ILLINOIS, INC.; BIG BAND NETWORKS, INC.; TEXSCAN CORPORATION; POWER GUARD, INC.; 4HOME, INC.; ACADIA AIC, INC.; AEROCAST, INC.; BROADBUS TECHNOLOGIES, INC.; GENERAL INSTRUMENT CORPORATION; GENERAL INSTRUMENT AUTHORIZATION SERVICES, INC.; GENERAL INSTRUMENT INTERNATIONAL HOLDINGS, INC.; IMEDIA CORPORATION; JERROLD DC RADIO, INC.; LEAPSTONE SYSTEMS, INC.; MODULUS VIDEO, INC.; MOTOROLA WIRELINE NETWORKS, INC.; NETOPIA, INC.; NEXTLEVEL SYSTEMS (PUERTO RICO), INC.; QUANTUM BRIDGE COMMUNICATIONS, INC.; SETJAM, INC.; SUNUP DESIGN SYSTEMS, INC.; UCENTRIC SYSTEMS, INC.; GIC INTERNATIONAL HOLDCO LLC; GIC INTERNATIONAL CAPITAL LLC; CCE SOFTWARE LLC; THE GI REALTY TRUST 1996
Reel/Frame 048825/0294 →
CHANGE OF NAME Recorded Mar 14, 2017
From: ARRIS ENTERPRISES INC
To: ARRIS ENTERPRISES LLC
Reel/Frame 041995/0031 →
SECURITY AGREEMENT Recorded May 28, 2013
From: ARRIS GROUP, INC.; ARRIS ENTERPRISES, INC.; ARRIS SOLUTIONS, INC.; ARRIS KOREA, INC.; ARRIS HOLDINGS CORP. OF ILLINOIS; BIGBAND NETWORKS, INC.; TEXSCAN CORPORATION; POWER GUARD, INC.; 4HOME, INC.; ACADIA AIC, INC.; AEROCAST, INC.; BROADBUS TECHNOLOGIES, INC.; GENERAL INSTRUMENT CORPORATION; GENERAL INSTRUMENT AUTHORIZATION SERVICES, INC.; GENERAL INSTRUMENT INTERNATIONAL HOLDINGS, INC.; IMEDIA CORPORATION; JERROLD DC RADIO, INC.; LEAPSTONE SYSTEMS, INC.; MODULUS VIDEO, INC.; MOTOROLA WIRELINE NETWORKS, INC.; NETOPIA, INC.; NEXTLEVEL SYSTEMS (PUERTO RICO), INC.; QUANTUM BRIDGE COMMUNICATIONS, INC.; SETJAM, INC.; SUNUP DESIGN SYSTEMS, INC.; UCENTRIC SYSTEMS, INC.; GIC INTERNATIONAL HOLDCO LLC; GIC INTERNATIONAL CAPITAL LLC; CCE SOFTWARE LLC; THE GI REALTY TRUST 1996
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 030498/0023 →
MERGER Recorded Apr 16, 2013
From: ARRIS GROUP, INC.
To: ARRIS ENTERPRISES, INC.
Reel/Frame 030228/0388 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2009
From: WALSTON, ALLEN
To: ARRIS GROUP, INC.
Reel/Frame 022968/0568 →