IP Library › Granted Patent US 11,783,042
Granted Patent B2
US 11,783,042 · App. 16/903,982 · Granted Oct 10, 2023

Access control system and method for isolating mutually distrusting security domains

Inventors: Steven Halter (San Diego, CA); Samar Asbe (San Diego, CA); Miguel Ballesteros (San Diego, CA); Girish Bhat (San Diego, CA); Mahadevamurty Nemani (San Diego, CA)
Assignee: QUALCOMM Incorporated
G06F21/575G06F9/445G06F9/5016G06F21/572G06F21/62G06F2221/034
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 11,783,042
App. No.
16/903,982
Granted
Oct 10, 2023
Kind
B2
Abstract

Resource access control in a system-on-chip (“SoC”) may employ an agent executing on a processor of the SoC and a trust management engine of the SoC. The agent, such as, for example, a high-level operating system or a hypervisor, may be configured to allocate a resource comprising a memory region to an access domain and to load a software image associated with the access domain into the memory region. The trust management engine may be configured to lock the resource against access by any entity other than the access domain, to authenticate the software image associated with the access domain, and to initiate booting of the access domain in response to a successful authentication of the software image associated with the access domain.

Claims (71)

1. A method for resource access control in a system-on-chip (“Sort”), comprising:

allocating to an access domain, by an agent executing on a processor, a resource within the system-on-chip comprising a memory region;

loading, by the agent, a software image associated with the access domain into the memory region;

locking, by a trust management engine, the resource against access by any entity other than the access domain and the trust management engine by setting a resource group configuration in a protection unit, the protection unit being coupled to and separate from the resource; the protection unit being coupled to a communication bus; the protection unit being separate from the processor; the protection unit comprising programmable logic for supporting the resource group configuration;

authenticating, by the trust management engine, the software image associated with the access domain;

initiating booting, by the trust management engine, of the access domain in response to a successful authentication of the software image associated with the access domain;

inspecting the resource group configuration in the protection unit by the access domain to determine if the resource group configuration is valid; and

the access domain locking the resource against access by the trust management engine if the resource group configuration in the protection unit is determined valid by the access domain.

2. The method of claim 1 , wherein the agent comprises a high-level operating system.

3. The method of claim 2 , wherein the access domain comprises a modem.

4. The method of claim 1 , wherein the access domain comprises one or more bus masters.

5. The method of claim 4 , wherein booting comprises a first bus master of the access domain initiating booting of a second bus master of the access domain after the first bus master completes booting, the second bus master booting independently of the trust management engine.

6. The method of claim 1 , further comprising:

the access domain transmitting a request to allocate an additional resource comprising an additional memory region to a high-level operating system (“HLOS”);

allocating, by the HLOS, the additional resource to the access domain;

locking, by the access domain, the additional resource against access by any entity other than the access domain.

7. The method of claim 6 , further comprising:

unlocking, by the access domain, the additional resource against access by another entity; and

the access domain transmitting to the HLOS an indication that the additional resource is free.

8. A system for resource access control in a system-on-chip (“Sort”), comprising:

an agent executing on a processor and configured to:

allocate a resource within the system-on-chip comprising a memory region to an access domain; and

load a software image associated with the access domain into the memory region; and

a trust management engine configured to:

lock the resource against access by any entity other than the access domain and the trust management engine by setting a resource group configuration in a protection unit, the protection unit being coupled to and separate from the resource; the protection unit being coupled to a communication bus; the protection unit being separate from the processor; the protection unit comprising programmable logic for supporting the resource group configuration;

authenticate the software image associated with the access domain;

initiate booting of the access domain in response to a successful authentication of the software image associated with the access domain; and

the access domain configured to:

inspect the resource group configuration in the protection unit by the access domain to determine if the resource group configuration is valid; and

lock the resource against access by the trust management engine if the resource group configuration in the protection unit is determined valid by the access domain.

9. The system of claim 8 , wherein the agent comprises a high-level operating system.

10. The system of claim 9 , wherein the access domain comprises a modem.

11. The system of claim 8 , wherein the access domain comprises one or more bus masters.

12. The system of claim 11 , wherein booting comprises a first bus master of the access domain initiating booting of a second bus master of the access domain after the first bus master completes booting, the second bus master booting independently of the trust management engine.

13. The system of claim 8 , wherein:

the access domain is further configured to transmit a request to allocate an additional resource comprising an additional memory region to a high-level operating system (“HLOS”);

the HLOS is configured to allocate the additional resource to the access domain; and

the access domain is configured to lock the additional resource against access by any entity other than the access domain.

14. The system of claim 13 , wherein the access domain is further configured to:

unlock the additional resource against access by another entity; and

transmit to the HLOS an indication that the additional resource is free.

15. A system for resource access control in a system-on-chip (“Sort”), comprising:

means for allocating to an access domain a resource within the system-on-chip comprising a memory region and for loading a software image associated with the access domain into the memory region;

first means for locking the resource against access by any entity other than the access domain and the first means for locking by setting a resource group configuration in a protection unit, for authenticating the software image associated with the access domain, and for initiating booting of the access domain in response to a successful authentication of the software image associated with the access domain; the protection unit being coupled to and separate from the resource; the protection unit being coupled to a communication bus; the protection unit being separate from the processor; the protection unit comprising programmable logic for supporting the resource group configuration; and

second means for inspecting the resource group configuration in the protection unit to determine if the resource group configuration is valid, for locking the resource against access by the trust management engine if the resource group configuration in the protection unit is determined valid by the second means.

16. The system of claim 15 , wherein the means for allocating and loading comprises a high-level operating system.

17. The system of claim 16 , wherein the means for allocating and loading comprises a modem.

18. The system of claim 15 , wherein the means for allocating and loading comprises one or more bus masters.

19. The system of claim 18 , wherein booting comprises a first bus master of the access domain initiating booting of a second bus master of the access domain after the first bus master completes booting, the second bus master booting independently of the trust management engine.

20. The system of claim 15 , wherein:

the means for allocating and loading further comprises means for transmitting a request to allocate an additional resource comprising an additional memory region and means for locking the additional resource against access by any entity other than the means for allocating and loading.

21. The system of claim 20 , wherein:

the means for allocating and loading further comprises means for unlocking the additional resource against access by another entity and means for providing an indication that the additional resource is free.

22. A computer program product for resource access control in a system-on-chip (“SoC”), the computer program product comprising a non-transitory computer-readable medium having stored thereon instructions that when executed on a processor of the SoC control a method comprising:

allocating to an access domain, by an agent executing on the processor, a resource within the system-on-chip comprising a memory region;

loading, by the agent, a software image associated with the access domain into the memory region;

locking, by a trust management engine, the resource against access by any entity other than the access domain and the trust management engine by setting a resource group configuration in a protection unit, the protection unit being coupled to and separate from the resource; the protection unit being coupled to a communication bus; the protection unit being separate from the processor; the protection unit comprising programmable logic for supporting the resource group configuration;

authenticating, by the trust management engine, the software image associated with the access domain;

initiating booting of the access domain in response to a successful authentication of the software image associated with the access domain;

inspecting the resource group configuration in the protection unit by the access domain to determine if the resource group configuration is valid; and

the access domain locking the resource against access by the trust management engine if the resource group configuration in the protection unit is determined valid by the access domain.

23. The computer program product of claim 22 , further comprising, after booting, the access domain locking the resource against access by the trust management engine.

24. The computer program product of claim 22 , wherein the agent comprises a high-level operating system.

25. The computer program product of claim 22 , wherein the access domain comprises one or more bus masters.

26. The computer program product of claim 22 , further comprising:

the access domain transmitting a request to allocate an additional resource comprising an additional memory region to a high-level operating system (“HLOS”);

allocating, by the HLOS, the additional resource to the access domain;

locking, by the access domain, the additional resource against access by any entity other than the access domain.

27. The computer program product of claim 26 , further comprising:

unlocking, by the access domain, the additional resource against access by another entity; and

the access domain transmitting to the HLOS an indication that the additional resource is free.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2021
From: HALTER, STEVEN; ASBE, SAMAR; BALLESTEROS, MIGUEL; BHAT, GIRISH; NEMANI, MAHADEVAMURTY
To: QUALCOMM INCORPORATED
Reel/Frame 055938/0506 →
Continuity (1)
Related Publication 20210397714A1 · Dec 23, 2021