IP Library Granted Patent US 9,389,793
Granted Patent B2
US 9,389,793 · App. 14/198,915 · Granted Jul 12, 2016

Trusted execution and access protection for embedded memory

Inventors: Richard Soja (Austin, TX); Nancy H. Amedeo (Austin, TX)
Assignee: Freescale Semiconductor, Inc.
G06F3/0622G06F3/0637G06F3/0679G06F12/1425G06F2206/1014
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,389,793
App. No.
14/198,915
Granted
Jul 12, 2016
Kind
B2
Abstract

A semiconductor device includes, in various embodiments, a memory and a processor, with the processor configured to perform a permission check prior to execution of a memory-access instruction. The permission check comprises evaluating a permission attribute of the memory-access instruction and a permission attribute of a memory location to be accessed. The memory-access instruction is denied unless the permission attribute of the memory-access instruction is compatible with the permission attribute of the memory location to be accessed. In various embodiments, permission attributes are obtained by the processor from a one-time-programmable (OTP) memory module. In various embodiments, the permission attributes are determined based on a source address of the memory-access instruction and an address of the memory location to be accessed. In various embodiments, the OTP memory module stores permission settings that are based on the identity of suppliers for various portions of code stored in the memory.

Claims (67)

1. A method comprising:

retrieving an instruction from a first memory address in memory;

determining a trust attribute that is associated with the instruction, wherein the trust attribute is one of a plurality of trust attributes stored in a one-time programmable (OTP) memory module;

identifying a second memory address in the memory to be accessed by a processor executing the instruction;

determining a protection attribute that is associated with of the second memory address, based at least upon the second memory address, wherein the protection attribute is one of a plurality of protection attributes stored in the OTP memory module;

comparing the trust attribute and the protection attribute; and

allowing execution of the instruction by the processor in response to a determination that the protection attribute of the second memory address is compatible with the trust attribute of the instruction.

2. The method of claim 1 , wherein:

the trust attribute is determined to be associated with the instruction based upon the trust attribute being associated with the first memory address.

3. The method of claim 1 , wherein:

the trust attribute is the determined to be associated with the instruction based upon the trust attribute being associated with a range of memory addresses that includes the first memory address.

4. The method of claim 1 , wherein:

the instruction is a firmware instruction,

the instruction has a type that is one of a group comprising: a load instruction type, a store instruction type, and a branch instruction type, and

the trust attribute is determined to be associated with the instruction based upon the type of the instruction.

5. The method of claim 1 , wherein the trust attribute of the instruction and the protection attribute of the second memory address each comprise security information stored in the one-time programmable (OTP) memory module.

6. The method of claim 5 , comprising:

fabricating the OTP memory module, the memory, and the processor onto a semiconductor substrate; and

loading the security information into the OTP memory module during a secure write operation period that immediately follows the fabricating, wherein the OTP memory module does not accept erase operations or overwrite operations.

7. The method of claim 6 , wherein:

the OTP memory module is configured to receive a first set of security information for a first set of memory addresses;

the OTP memory module is configured to receive the first set of security information from a first supplier under a first configuration procedure;

the OTP memory module is configured to receive a second set of security information for a second set of memory addresses; and

the OTP memory module is configured to receive the second set of security information from a second supplier under a second configuration procedure, wherein the first supplier is not authorized for the second configuration procedure.

8. The method of claim 5 , wherein:

the security information comprises at least one of a group comprising: a vendor identifier, a security category, a safety category, a priority category, a cost category, a customer identity, a user identify, user privilege, a token, a signature, and an indicator associated with the instruction.

9. The method of claim 1 , wherein:

the determination that the protection attribute is compatible with the trust attribute comprises a determination that a protection category identifier of the protection attribute matches a trust category identifier of the trust attribute, and

execution of the instruction is disallowed when the protection category identifier does not match the trust category identifier.

10. The method of claim 1 , wherein:

the determination that the protection attribute is compatible with the trust attribute comprises a determination that a trust level of the trust attribute matches or exceeds a protection level of the protection attribute, and

execution of the instruction is disallowed when the trust level is less than the protection level.

11. The method of claim 1 , wherein:

the protection attribute is associated with a range of memory addresses that includes the second memory address.

12. A system comprising:

a memory disposed on a semiconductor substrate;

a processor disposed on the semiconductor substrate; and

a protection interface configured between the memory and the processor, wherein the protection interface comprises a one-time programmable (OTP) memory module, the protection interface is configured to:

determine a trust attribute that is associated with an instruction fetched from the memory, wherein the trust attribute is one of memory module, a plurality of trust attributes stored in the OTP memory module,

determine a target address in the memory that is targeted by the instruction,

determine a protection attribute that is associated with the target address, wherein the protection attribute is one of a plurality of protection attributes stored in the OTP memory module,

compare the trust attribute and the protection attribute, and

allow execution of the instruction by the processor in response to a determination that the trust attribute is compatible with the protection attribute.

13. The system of claim 12 , wherein:

the protection interface further comprises a plurality of write-once registers that are configured to be written only once during a startup operation of the system;

the protection interface is configured to load the plurality of trust attributes and the plurality of protection attributes from the OTP memory module into the write-once registers during the startup operation; and

the protection interface is configured to obtain the trust attribute and the protection attribute from the write-once registers at a time after the a startup operation.

14. The system of claim 12 , wherein the processor is configured to:

initiate an exception handling routine if the trust attribute is incompatible with the protection attribute.

15. The system of claim 12 , wherein:

the instruction comprises a branching instruction, and

the target address indicates a location of a target instruction to be fetched.

16. The system of claim 12 , wherein:

the instruction comprises one of a load instruction and a store instruction, and

the target address indicates a target data location that is targeted by the instruction.

17. The system of claim 12 , wherein:

the protection interface is integrated into the processor.

18. A method comprising:

fetching an instruction from a memory to a processor;

determining a first permission attribute that is associated with the instruction, wherein the first permission attribute is one of a plurality of permission attributes stored in a protected section of memory;

determining a target address in the memory targeted by the instruction;

determining a second permission attribute that is associated with the target address, wherein the second permission attribute is one of the plurality of permission attributes stored in the protected section of memory;

granting access to the target address, by the processor, only if the first permission attribute of the instruction is compatible with the second permission attribute of the target address.

19. The method of claim 18 , wherein:

the first permission attribute is determined to be associated with the instruction based upon the first permission attribute being associated with an address of the instruction.

20. The method of claim 18 , wherein:

the memory and the processor are comprised within a system-on-a-chip semiconductor device.

Assignments (26)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2025
From: NXP USA, INC.
To: TAIWAN SEMICONDUCTOR MANUFACTURING COMPANY LIMITED
Reel/Frame 072889/0939 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
MERGER Recorded Jan 3, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041144/0363 →
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBERS PREVIOUSLY RECORDED AT REEL: 037458 FRAME: 0438. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded May 12, 2016
From: CITIBANK, NA
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038665/0136 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT APPLICATION NUMBERS 12222918, 14185362, 14147598, 14185868 & 14196276 PREVIOUSLY RECORDED AT REEL: 037458 FRAME: 0479. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded May 12, 2016
From: CITIBANK, NA
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038665/0498 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
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/0438 →
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/0479 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0763 →
SUPPLEMENT TO SECURITY AGREEMENT Recorded May 7, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 032845/0522 →
SUPPLEMENT TO SECURITY AGREEMENT Recorded May 7, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 032845/0497 →
SUPPLEMENT TO SECURITY AGREEMENT Recorded May 7, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 032845/0442 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2014
From: SOJA, RICHARD; AMEDEO, NANCY H.
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 032365/0240 →
Continuity (1)
Related Publication 20150254017A1 · Sep 10, 2015