IP Library Granted Patent US 8,578,148
Granted Patent B2
US 8,578,148 · App. 12/845,175 · Granted Nov 5, 2013

Method and system to transmit code to a system on a chip (SOC)

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,578,148
App. No.
12/845,175
Granted
Nov 5, 2013
Kind
B2
Abstract

A method and system to transmit code to a System on Chip (SOC) from a host processor using a host-side driver is provided herein. The SOC and host processor are coupled by a bus. The host driver receives an overlay from an application layer and stores the overlay. The host driver receives an IOCTL to be transmitted to the SOC. The host driver determines whether an input/output control (IOCTL) value of the IOCTL to be transmitted to the SOC corresponds to an IOCTL value in one of the stored overlays. The host driver transmits an overlay to the SOC if the IOCTL value of the IOCTL to be transmitted is equal to at least one IOCTL value in the overlay. The host driver then transmits the IOCTL to the SOC.

Claims (53)

1. A method in a host processor to transmit code to a System On a Chip (SOC), comprising:

receiving an event from the SOC requesting an overlay, wherein the event includes a first input/output control (IOCTL) value and a string name;

determining whether the first IOCTL value is equal to at least one IOCTL value in a first overlay of a plurality of overlays stored in a memory coupled to the host processor;

determining whether the string name is equal to an overlay name in the first overlay if the first IOCTL value is equal to at least one IOCTL value in the first overlay; and

transmitting the first overlay to the SOC if the string name is equal to the overlay name in the first overlay and if the first IOCTL value is equal to at least one IOCTL value in the first overlay.

2. The method of claim 1 , further comprising, prior to the receiving:

receiving an image file from a host application, wherein the image file includes at least one of a header, overlay offsets, a base image file, overlay region count, a plurality of overlay region addresses and a plurality of overlays corresponding to the overlay offsets; and

storing the image file in a host memory;

wherein each overlay includes a first IOCTL value, a second IOCTL value, an overlay index value, an overlay name and overlay code.

3. The method of claim 1 , further comprising, prior to the receiving:

transmitting a base image file to the SOC during startup.

4. The method of claim 1 , further comprising:

transmitting the first overlay 1024 bytes at a time.

5. The method of claim 1 , the transmitting further comprising:

encrypting the first overlay prior to transmission.

6. A method in a System on a Chip (SOC) to receive an overlay from a host processor, the SOC and the host processor coupled by a bus, comprising:

transmitting an event to the host processor requesting the overlay, wherein the event includes a first input/output control (IOCTL) value and a string name; and

receiving the overlay from the host processor, wherein an IOCTL value and an overlay name in the received overlay are equal to the corresponding first IOCTL value and the string name in the event.

7. The method of claim 6 , further comprising, prior to the transmitting:

receiving a base image file from the host processor during startup.

8. The method of claim 6 , further comprising:

receiving the overlay 1024 bytes at a time.

9. The method of claim 6 , wherein the received overlay is encrypted.

10. The method of claim 9 , further comprising decrypting the received overlay.

11. A System On a Chip (SOC), comprising:

a memory; and

a processor coupled to the memory and configured to execute instructions stored in the memory that cause the processor to transmit an event to a host processor to request an overlay, wherein the event includes a first input/output control (IOCTL) value and a string name, and to receive the overlay from the host processor, wherein an IOCTL value and an overlay name in the received overlay are equal to the corresponding first IOCTL value and the string name in the event.

12. The SOC of claim 11 , wherein the memory includes an overlay region configured to store one overlay at a time.

13. The SOC of claim 11 , wherein the memory includes multiple regions configured to allow for multiple overlays to be stored simultaneously.

14. A non-transitory computer readable medium having stored thereon computer executable instructions that, if executed by a host processor, cause the host processor to perform a method to transmit code to a System On a Chip (SOC), the method comprising:

receiving an event from the SOC requesting an overlay, wherein the event includes a first input/output control (IOCTL) value and a string name;

determining whether the first IOCTL value is equal to at least one IOCTL value in a first overlay of a plurality of overlays stored in a memory coupled to the host processor;

determining whether the string name is equal to an overlay name in the first overlay if the first IOCTL value is equal to at least one IOCTL value in the first overlay; and

transmitting the first overlay to the SOC if the string name is equal to the overlay name in the first overlay and if the first IOCTL value is equal to at least one IOCTL value in the first overlay.

15. The non-transitory computer readable medium of claim 14 , further comprising executable instructions for, prior to the receiving:

receiving an image file from a host application, wherein the image file includes at least one of a header, overlay offsets, a base image file, overlay region count, a plurality of overlay region addresses and a plurality of overlays corresponding to the overlay offsets; and

storing the image file in a host memory;

wherein each overlay includes a first IOCTL value, a second IOCTL value, an overlay index value, an overlay name and overlay code.

16. The non-transitory computer readable medium of claim 14 , further comprising executable instructions for, prior to the receiving:

transmitting a base image file to the SOC during startup.

17. The non-transitory computer readable medium of claim 14 , further comprising executable instructions for:

transmitting the first overlay 1024 bytes at a time.

18. The non-transitory computer readable medium of claim 14 , wherein the transmitting further comprises:

encrypting the first overlay prior to transmission.

19. A non-transitory computer readable medium having stored thereon computer executable instructions that, if executed by a System on a Chip (SOC), cause the SOC to perform a method to receive an overlay from a host processor, the SOC and the host processor coupled by a bus, the method comprising:

transmitting an event to the host processor requesting the overlay, wherein the event includes a first input/output control (IOCTL) value and a string name; and

receiving the overlay from the host processor, wherein an IOCTL value and an overlay name in the received overlay are equal to the corresponding first IOCTL value and the string name in the event.

20. The non-transitory computer readable medium of claim 19 , further comprising executable instructions for, prior to the transmitting:

receiving a base image file from the host processor during startup.

21. The non-transitory computer readable medium of claim 19 , further comprising executable instructions for:

receiving the overlay 1024 bytes at a time.

22. The non-transitory computer readable medium of claim 19 , wherein the received overlay is encrypted.

23. The non-transitory computer readable medium of claim 22 , further comprising executable instructions for decrypting the received overlay.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2010
From: IYER, MAHESH; SIENER, STEPHEN GEORGE
To: BROADCOM CORPORATION
Reel/Frame 024753/0899 →