IP Library Granted Patent US 11,599,621
Granted Patent B2
US 11,599,621 · App. 16/370,921 · Granted Mar 7, 2023

Apparatuses, methods, and systems for verification of input-output memory management unit to device attachment

Inventors: Vedvyas Shanbhogue (Austin, TX); Rajesh Sankaran (Portland, OR); Abhishek Basak (Hillsboro, OR); Pradeep Pappachan (Hillsboro, OR); Utkarsh Y. Kakaiya (Folsom, CA); Ravi Sahita (Portland, OR); Rupin Vakharwala (Hillsboro, OR)
Assignee: Intel Corporation
G06F21/44G06F3/0622G06F3/0659G06F3/0673G06F13/1668G06F21/79
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,599,621
App. No.
16/370,921
Granted
Mar 7, 2023
Kind
B2
Abstract

Systems, methods, and apparatuses relating to performing an attachment of an input-output memory management unit (IOMMU) to a device, and a verification of the attachment. In one embodiment, a protocol and IOMMU extensions are used by a secure arbitration mode (SEAM) module and/or circuitry to determine if the IOMMU that is attached to the device requested to be mapped to a trusted domain.

Claims (41)

1. An apparatus comprising:

a first input-output memory management circuit to couple a first device to memory;

a second input-output memory management circuit to couple a second device to the memory; and

a processor to:

execute a virtual machine monitor that is not in a trusted computing base for one or more virtual machines to be managed by the virtual machine monitor, and

execute secure arbitration mode firmware, separate from the virtual machine monitor, to cause a first unique identification value to be assigned for the first input-output memory management circuit, a second unique identification value to be assigned for the second input-output memory management circuit, send the first unique identification value to the first device during a secure assignment of the first device to a first trusted domain of the memory, and send the second unique identification value to the second device during a secure assignment of the second device to a second trusted domain of the memory.

2. The apparatus of claim 1 , wherein only execution of the secure arbitration mode firmware causes the first unique identification value to be assigned for the first input-output memory management circuit or the second unique identification value to be assigned for the second input-output memory management circuit.

3. The apparatus of claim 1 , wherein the first unique identification value and the second unique identification value are stored in a protected register that is only accessible by the secure arbitration mode firmware.

4. The apparatus of claim 1 , wherein the first device and a third device coupled to the memory have a same requester identification value.

5. The apparatus of claim 4 , wherein the processor is to execute the secure arbitration mode firmware to cause a request to be sent from the processor to the third device for an identification value, and block access for the third device unless the third device sends the first unique identification value in a response message.

6. The apparatus of claim 1 , wherein the processor is to execute the secure arbitration mode firmware to cause a request to be sent from the processor to a device coupled to the memory, and allow memory access to the first trusted domain of the memory by the device only when the device sends the first unique identification value in a response message.

7. The apparatus of claim 6 , wherein the memory access is a direct memory access by the device.

8. The apparatus of claim 6 , wherein, when the device sends the first unique identification value in the response message, the processor is to execute the secure arbitration mode firmware to select a trusted root pointer to use to perform the device to first input-output memory management circuit attachment.

9. A method comprising:

coupling a first device to memory with a first input-output memory management circuit;

coupling a second device to the memory with a second input-output memory management circuit;

assigning a first unique identification value for the first input-output memory management circuit by a processor in a secure arbitration mode separate from a virtual machine monitor, of the processor, that is removed from a trusted computing base for one or more virtual machines managed by the virtual machine monitor;

assigning a second unique identification value for the second input-output memory management circuit by the processor in the secure arbitration mode separate from the virtual machine monitor, of the processor, that is removed from the trusted computing base for the one or more virtual machines managed by the virtual machine monitor;

sending the first unique identification value to the first device during a secure assignment of the first device to a first trusted domain of the memory by the processor in the secure arbitration mode; and

sending the second unique identification value to the second device during a secure assignment of the second device to a second trusted domain of the memory by the processor in the secure arbitration mode.

10. The method of claim 9 , wherein only the processor in the secure arbitration mode causes the first unique identification value to be assigned for the first input-output memory management circuit and the second unique identification value to be assigned for the second input-output memory management circuit.

11. The method of claim 9 , further comprising the processor in the secure arbitration mode storing the first unique identification value and the second unique identification value in a protected register that is only accessible by the processor in the secure arbitration mode.

12. The method of claim 9 , wherein the first device and a third device coupled to the memory have a same requester identification value.

13. The method of claim 12 , further comprising the processor in the secure arbitration mode causing a request to be sent from the processor to the third device for an identification value, and blocking access for the third device unless the third device sends the first unique identification value in a response message.

14. The method of claim 9 , further comprising the processor in the secure arbitration mode causing a request to be sent from the processor to a device coupled to the memory, and allow memory access to the first trusted domain of the memory by the device only when the device sends the first unique identification value in a response message.

15. The method of claim 14 , wherein the memory access is a direct memory access by the device.

16. The method of claim 14 , wherein, when the device sends the first unique identification value in the response message, the processor in the secure arbitration mode selects a trusted root pointer to use to perform the device to first input-output memory management circuit attachment.

17. A non-transitory machine readable medium that stores code that when executed by a machine causes the machine to perform a method comprising:

coupling a first device to memory with a first input-output memory management circuit;

coupling a second device to the memory with a second input-output memory management circuit;

assigning a first unique identification value for the first input-output memory management circuit by a processor in a secure arbitration mode separate from a virtual machine monitor, of the processor, that is removed from a trusted computing base for one or more virtual machines managed by the virtual machine monitor;

assigning a second unique identification value for the second input-output memory management circuit by the processor in the secure arbitration mode separate from the virtual machine monitor, of the processor, that is removed from the trusted computing base for the one or more virtual machines managed by the virtual machine monitor;

sending the first unique identification value to the first device during a secure assignment of the first device to a first trusted domain of the memory by the processor in the secure arbitration mode; and

sending the second unique identification value to the second device during a secure assignment of the second device to a second trusted domain of the memory by the processor in the secure arbitration mode.

18. The non-transitory machine readable medium of claim 17 , wherein only the processor in the secure arbitration mode causes the first unique identification value to be assigned for the first input-output memory management circuit and the second unique identification value to be assigned for the second input-output memory management circuit.

19. The non-transitory machine readable medium of claim 17 , further comprising the processor in the secure arbitration mode storing the first unique identification value and the second unique identification value in a protected register that is only accessible by the processor in the secure arbitration mode.

20. The non-transitory machine readable medium of claim 17 , wherein the first device and a third device coupled to the memory have a same requester identification value.

21. The non-transitory machine readable medium of claim 20 , further comprising the processor in the secure arbitration mode causing a request to be sent from the processor to the third device for an identification value, and blocking access for the third device unless the third device sends the first unique identification value in a response message.

22. The non-transitory machine readable medium of claim 17 , further comprising the processor in the secure arbitration mode causing a request to be sent from the processor to a device coupled to the memory, and allow memory access to the first trusted domain of the memory by the device only when the device sends the first unique identification value in a response message.

23. The non-transitory machine readable medium of claim 22 , wherein the memory access is a direct memory access by the device.

24. The non-transitory machine readable medium of claim 22 , wherein, when the device sends the first unique identification value in the response message, the processor in the secure arbitration mode selects a trusted root pointer to use to perform the device to first input-output memory management circuit attachment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2019
From: SHANBHOGUE, VEDVYAS; SANKARAN, RAJESH; BASAK, ABHISHEK; PAPPACHAN, PRADEEP; KAKAIYA, UTKARSH Y.; SAHITA, RAVI; VAKHARWALA, RUPIN
To: INTEL CORPORATION
Reel/Frame 050108/0859 →
Continuity (1)
Related Publication 20190228145A1 · Jul 25, 2019