IP Library Granted Patent US 9,594,623
Granted Patent B2
US 9,594,623 · App. 14/666,592 · Granted Mar 14, 2017

System on chip and method of updating program code on a system on chip

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,594,623
App. No.
14/666,592
Granted
Mar 14, 2017
Kind
B2
Abstract

In a system on chip SoC, a memory control unit connected between the memory unit and the processing unit controls access to the memory unit. An update request received or generated by the processing unit triggers an update operation which comprises appending an update enabling record to a sequence of update records in the log region, writing new program code to the memory unit, and appending an update completion record to a sequence of update records. Write access to the log region is disabled if a fault is detected in the SoC during the update operation.

Claims (44)

1. A system on chip (SoC), comprising:

multiple functional units;

a memory unit comprising a program region and a log region;

a processing unit for executing program code and arranged to perform an update operation in response to an update request received or generated by the processing unit, wherein the update operation comprises appending an update enabling record to a sequence of update records in the log region, writing new program code to the program region, and appending an update completion record to the sequence of update records in the log region;

a memory control unit connected between the memory unit and the processing unit, for controlling access to the memory unit; and

a fault collection unit arranged to assert a fault flag in response to a fault occurring in the SoC, wherein the multiple functional units are connected to the fault collection unit, each one of the multiple functional units configured to signal a fault of the respective functional unit to the fault collection unit;

wherein the memory control unit is further connected to the fault collection unit and arranged to disable write access to the log region in response to the fault flag being asserted.

2. The SoC of claim 1 , wherein the fault collection unit is arranged to deassert the fault flag in response to a reset of the SoC.

3. The SoC of claim 1 , wherein the fault collection unit is arranged to deassert the fault flag in response to a new update request.

4. The SoC of claim 1 , wherein the log region is one-time programmable.

5. The SoC of claim 1 , wherein the log region is located in a flash memory unit.

6. The SoC of claim 1 , wherein the processing unit is arranged to generate a new program update request in response to a reset of the SoC if the last member of the sequence of update records is an update enabling record.

7. The SoC of claim 1 , wherein each update enabling record comprises a first constant which is the same for every update enabling record and each update completion record comprises a second constant which is the same for every update completion record and different from the first constant.

8. The SoC of claim 1 , comprising or connected to an interface for wireless communication between the processing unit and a remote server, for enabling the processing unit to receive said new program code from the remote server through said interface.

9. The SoC of claim 1 , integrated in a vehicle.

10. A system on chip (SoC), comprising:

a tamper detection module arranged to detect tamper events;

a processing unit for executing program code;

a memory unit comprising a program region and a log region;

a memory control unit connected between the memory unit and the processing unit, for controlling access to the memory unit;

wherein the processing unit is arranged to perform an update operation in response to an update request received or generated by the processing unit, wherein the update operation comprises appending an update enabling record to a sequence of update records in the log region, writing new program code to the program region, and appending an update completion record to the sequence of update records in the log region,

wherein the memory control unit is arranged to monitor the log region and to enable write access to the program region and disable at least one of read access and execute access to the program region when the last member of the sequence of update records in the log region is an update enabling record, and to disable write access to the program region and enable at least one of read access and execute access to the program region when the last member of the sequence of update records is an update completion record, and

wherein the memory control unit is connected to the tamper detection module and arranged to disable write access to one or both of the program region and the log region in response to detection of a tamper event by the tamper detection module.

11. The SoC of claim 10 , further comprising a fault collection unit arranged to assert a fault flag in response to a fault occurring in the SoC, wherein the memory control unit is connected to the fault collection unit and arranged to disable write access to the log region when the fault flag is asserted.

12. The SoC of claim 10 , comprising a timer connected to or integrated in the memory control unit and arranged to provide a time window in response to the update request, wherein the memory control unit is arranged to disable write access to the log region for the processing unit in response to lapse of the time window.

13. The SoC of claim 10 , comprising or connected to an interface for wireless communication between the processing unit and a remote server, for enabling the processing unit to receive said new program code from the remote server through said interface.

14. A method of operating a system on chip (SoC), wherein the SoC comprises:

a processing unit;

a memory unit comprising a program region and a log region;

a memory control unit connected between the memory unit and the processing unit, for controlling access to the memory unit;

and wherein the method comprises:

performing an update operation in response to an update request received or generated by the processing unit, wherein the update operation comprises appending an update enabling record to a sequence of update records in the log region, writing new program code to the program region, and appending an update completion record to the sequence of update records in the log region,

asserting a fault flag in response to a fault occurring in the SoC;

disabling write access to the log region when the fault flag is asserted resetting the SoC;

determining whether the last member of the sequence of update records is an update enabling record; and

generating a new program update request if the last member of the sequence of update records is an update enabling record.

15. The method of claim 14 , comprising:

monitoring the log region;

enabling write access to the program region and disabling at least one of read access and execute access to the program region if the last member of the sequence of update records in the log region is an update enabling record; and

disabling write access to the program region and enabling at least one of read access and execute access to the program region if the last member of the sequence of update records is an update completion record.

16. The method of claim 14 , comprising one or more of:

deasserting the fault flag in response to a reset of the SoC; and

deasserting the fault flag in response to the update request.

17. The method of claim 14 , wherein each update enabling record comprises a first constant which is the same for every update enabling record and each update completion record comprises a second constant which is different from the first constant and which is the same for every update completion record.

Assignments (15)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0341 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 7, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037458/0359 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0974 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0080 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0112 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded May 4, 2015
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035571/0095 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2015
From: ROBERTSON, ALISTAIR PAUL; MARSHALL, RAY CHARLES; MORAN, ROBERT F.; STEWART, MURRAY DOUGLAS
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 035238/0941 →