# US 8,544,053 B2 · System and method for upgrading a multiprocessor set-top box device with a monolithilic firmware image

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

- Number: US 8,544,053 B2
- Document ID: US8544053B2
- Status: Granted
- Kind: B2
- Application number: 12/273,476
- Filed: 2008-11-18
- Published: 2009-06-18
- Granted: 2013-09-24
- Earliest claimed: 2007-12-17
- Assignees: Broadcom Corporation
- Applicants: Pinar Taskiran-Cyr
- Inventors: Pinar Taskiran-Cyr
- Web page: https://patentgrep.com/patent/US8544053B2

## CPC

- H04N 21/443: OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N 7/17318: {Direct or substantially direct transmission and handling of requests}
- H04N 21/23617: {by inserting additional data into a data carousel, e.g. inserting software modules into a DVB carousel (arrangements for broadcast or for distribution of identical information repeatedly in broadcast distribution systems H04H20/16)}
- H04N 21/25816: {involving client authentication (restricting access to computer systems by authenticating users using a predetermined code G06F21/33; cryptographic authentication protocols H04L9/32; networks authentication protocols H04L63/08; authentication in wireless network security H04W12/06)}
- H04N 21/42676: {for modulating an analogue carrier signal to encode digital information or demodulating it to decode digital information, e.g. ADSL or cable modem}
- H04N 21/6168: {involving cable transmission, e.g. using a cable modem}
- H04N 21/8166: {involving executable data, e.g. software (arrangements for executing specific programs G06F9/44; broadcasting computer programmes in broadcast systems H04H20/91; involving the movement of software or configuration parameters H04L67/34)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A system and method for downloading a code image at a set-top gateway host that includes an embedded set-top box and an embedded cable modem. The embedded set-top box and the embedded cable modem interact so that each leverages the resources of the other, thereby minimizing the functionality that must be built into each.

## Claims

### Claim 1

A method of downloading a monolithic code image at an embedded set-top box (eSTB), comprising:
determining at the eSTB whether a software upgrade is permitted;
receiving at the eSTB a request to validate a header of the monolithic code image;
validating the header of the monolithic code image;
sending validation results to a second device;
receiving the monolithic code image from the second device; and
validating the monolithic code image.

### Claim 2 (depends on 1)

The method of claim 1, wherein the step of validating the monolithic code image comprises validating a cyclic redundancy code (CRC) of the monolithic code image.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
locating a second device code image in the monolithic code image;
requesting that the second device authenticate the code image;
receiving a length of a digital signature of the code image from the second device; and
storing the length.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
receiving a signed code version table (CVT);
requesting an authentication of the signed CVT;
after authentication of the signed CVT, receiving a length of a digital signature of the signed CVT; and
finding the start of a CVT file in the CVT, using the length of the digital signature.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
receiving a Code Verification Certificate (CVC);
requesting the second device to validate settings of the CVC;
after validation of the settings, receiving a length of the CVC; and
using the length of the CVC to locate a next CVC in the CVT.

### Claim 6

A method of downloading a monolithic code image to an embedded set-top box (eSTB) comprising:
starting a download of the monolithic code image at an embedded cable modem (eCM);
parsing out a download header;
requesting the eSTB to validate the download header;
receiving the validity results from the step of requesting the eSTB to validate the download header;
maintaining a Secure Hashing Algorithm (SHA) digest during the download;
authenticating the SHA digest after completion of the download;
requesting the eSTB to validate the monolithic code image;
receiving the validity results from the step of requesting the eSTB to validate the monolithic code image;
receiving a request from the eSTB to authenticate the monolithic code image;
retrieving the monolithic code image from the eSTB;
authenticating the monolithic code image; and
returning a length of a digital signal of the monolithic code image to the eSTB.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
receiving a request, from the eSTB, to authenticate a signed code version table CVT;
parsing a secure download header;
authenticating the signed CVT;
and
returning, to the eSTB, a length of a digital signature of the signed CVT;
performed before the step of starting a download of the monolithic code image at the (eCM).

### Claim 8 (depends on 7)

The method of claim 7, wherein the step of authenticating the signed CVT comprises authenticating the signed CVT using a security certificate.

### Claim 9

A system for downloading a monolithic code image, comprising:
an embedded set-top box (eSTB) configured to receive a downloaded monolithic code image, the eSTB being further configured to:
determine whether a software upgrade is permitted;
receive a request to validate a header of the monolithic code image;
validate the header of the monolithic code image;
send validation results to a second device;
receive the monolithic code image from the second device; and
validate the monolithic code image.

### Claim 10 (depends on 9)

The system of claim 9, wherein the eSTB is further configured to validate a cyclic redundancy code (CRC) of the monolithic code image.

### Claim 11 (depends on 9)

The system of claim 9, wherein the eSTB is further configured to:
locate a code image in the monolithic code image;
request that the code image be authenticated;
receive a length of a digital signature of the code image; and
store the length.

### Claim 12 (depends on 9)

The system of claim 9, wherein the eSTB is further configured to:
receive a signed code version table (CVT);
request an embedded cable mdoem (eCM) to authenticate the signed CVT;
after authentication of the signed CVT by the eCM, receive a length of a digital signature of the signed CVT from the eCM; and
find the start of a CVT file in the CVT, using the length of the digital signature.

### Claim 13 (depends on 12)

The system of claim 12, wherein the eSTB is further configured to:
receive a code verification certificate (CVC);
request the eCM to validate settings of the CVC;
after validation of the settings, receive from the eCM a length of the CVC; and
use the length of the CVC to locate a next CVC in the CVT.

### Claim 14

A system for downloading a monolithic code image, comprising:
an embedded set-top box (eSTB) configured to receive a downloaded monolithic cable image, the eSTB being further configured to:
start a download of the monolithic code image to the eSTB;
parse out a download header;
request the eSTB to validate the download header;
receive the validation results from the eSTB;
maintain a Secure Hashing Algorithm (SHA) digest during the download;
authenticate the SHA digest after completion of the download;
request the eSTB to validate the monolithic code image;
receive the validity results from the eSTB;
receive a request from the eSTB to authenticate the monolithic code image;
retrieve the monolithic code image from the eSTB;
authenticate the monolithic code image; and
return a length of a digital signal of the monolithic code image to the eSTB.

### Claim 15 (depends on 14)

The system of claim 14, further comprising an embedded cable modem (eCM) configured to:
receive a request, from the eSTB, to authenticate a signed code version table (CVT);
parse a secure download header;
authenticate the signed CVT;
maintain a secure hashing algorithm (SHA) digest; and
return, to the eSTB, a length of a digital signature of the signed CVT;
performed before the step of determining whether a software upgrade is permitted.

### Claim 16 (depends on 15)

The system of claim 15, wherein the eCM is further configured to authenticate the signed CVT using a security certificate.

### Claim 17 (depends on 1)

The method according to claim 1, further comprising:
receiving a signed code version table (CVT), requesting an authentication of the signed CVT, after authentication of the signed CVT, receiving a length of a digital signature of the signed CVT, and finding the start of a CVT file in the CVT, using the length of the digital signature before determining at the eSTB whether a software upgrade is permitted.

### Claim 18 (depends on 4)

The method according to claim 4, further comprising:
receiving a Code-Verification Certificate (CVC), requesting the second device to validate settings of the CVC, after validation of the settings, receiving a length of the CVC, and using the length of the CVC to locate a next CVC in the CVT, after finding the start of a CVT file in the CVT, using the length of the digital signature and before determining at the eSTB whether a software upgrade is permitted.

### Claim 19 (depends on 12)

The system according to claim 12, wherein the eSTB is further configured to:
receive a signed code version table (CVT), request the embedded cable modem (eCM) to authenticate the signed CVT, after authentication of the signed CVT, receive a length of a digital signature of the signed CVT from the eCM, and find the start of a CVT file in the CVT, using the length of the digital signature before determining whether a software upgrade is permitted.

### Claim 20 (depends on 12)

The system of claim 12, wherein the eSTB is further configured to:
receive a code verification certificate (CVC), request the eCM to validate settings of the CVC, after validation of the settings, receive from the eCM a length of the CVC, and use the length of the CVC to locate a next CVC in the CVT, before finding the start of a CVT file in the CVT, using the length of the digital signature and after determining whether a software upgrade is permitted.
