System and method for coupling a host device to secure and non-secure devices

US10089247B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10089247-B2
Application numberUS-201615282647-A
CountryUS
Kind codeB2
Filing dateSep 30, 2016
Priority dateSep 30, 2016
Publication dateOct 2, 2018
Grant dateOct 2, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

One embodiment provides an apparatus. The apparatus includes an input output memory management unit (I/O MMU), a non-secure operating system (OS) driver, a secure OS driver and a virtual machine monitor (VMM). The I/OMMU is to couple an I/O Controller to a memory. The I/O Controller is coupled to a secure device and a non-secure device and has one I/O Controller identifier. The non-secure OS driver is associated with the non-secure device. The secure OS driver is associated with the secure device. The VMM is to allocate a secure address space to a secure OS and a non-secure address space to a non-secure OS. The secure address space is non-overlapping with the non-secure address space.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: an input output memory management unit (I/O MMU) to couple an I/O Controller to a memory, the I/O Controller coupled to a secure device and a non-secure device, the I/O Controller having one I/O Controller identifier; a non-secure operating system (OS) driver associated with the non-secure device; a secure OS driver associated with the secure device; and a virtual machine monitor (VMM) to allocate a secure address space to a secure OS and a non-secure address space to a non-secure OS, the secure address space non-overlapping with the non-secure address space; wherein the secure OS is to allocate a random address in the secure address space in response to a request from the secure OS driver, the VMM is to store the allocated random address to an I/O MMU page table and count I/O MMU page table faults in response to initiation of a secure operation, and the secure OS is to terminate the secure operation with failure if a number of I/O MMU page table faults is greater than a threshold; and/or wherein the VMM is to transfer control of each of one or more non-secure descriptors to the secure OS driver in response to a request for a secure operation, each non-secure descriptor to contain a target address associated with a direct memory access (DMA) operation, and the secure OS driver is to allow the secure operation to proceed when each non-secure descriptor has been at least one of consumed and/or validated and moved to a secure address space as a protected non-secure descriptor. 2. The apparatus of claim 1 , wherein the secure OS is to allocate the random address in the secure address space in response to the request from the secure OS driver and the VMM is to store the allocated random address to the I/O MMU page table; and wherein the VMM is to count I/O MMU page table faults in response to initiation of the secure operation, and the secure OS is to terminate the secure operation with failure if the number of I/O MMU page table faults is greater than the threshold. 3. The apparatus of claim 1 , wherein the VMM is to transfer control of each of one or more non-secure descriptors to the secure OS driver in response to the request for the secure operation, each non-secure descriptor to contain the target address associated with the DMA operation; and wherein the secure OS driver is to pause for a time interval to allow an outstanding non-secure descriptor to be consumed and the secure OS driver is further to attempt to validate the target address included in a remaining non-secure descriptor if fewer than all of the outstanding non-secure descriptors have been consumed after the time interval. 4. The apparatus of claim 1 , wherein the VMM is to transfer control of each of one or more non-secure descriptors to the secure OS driver in response to the request for the secure operation, each non-secure descriptor to contain the target address associated with the DMA operation; and wherein the secure OS driver is to allow the secure operation to proceed when each non-secure descriptor has been at least one of consumed and/or validated and moved to a secure address space as the protected non-secure descriptor. 5. The apparatus of claim 1 , wherein the secure device or the non-secure device is a dual use device. 6. A method comprising: coupling, by an input output memory management unit (I/O MMU), an I/O Controller to a memory, the I/O Controller coupled to a secure device and a non-secure device, the I/O Controller having one I/O Controller identifier; allocating, by a virtual machine monitor (VMM), a secure address space to a secure operating system (OS) and a non-secure address space to a non-secure OS, the secure address space non-overlapping with the non-secure address space; and performing at least one of operation A or operation B, wherein operation A comprises: allocating, by the secure OS, a random address in the secure address space in response to a request from a secure OS driver; and storing, by the VMM, the allocated random address to an I/O MMU page table; and counting, by the VMM, I/O MMU page table faults in response to initiation of a secure operation; and terminating, by the secure OS, the secure operation with failure if a number of I/O MMU page table faults is greater than a threshold; and wherein operation B comprises: transferring, by the VMM, control of each of one or more non-secure descriptors to a secure OS driver in response to a request for a secure operation, each non-secure descriptor to contain a target address associated with a direct memory access (DMA) operation; and allowing, by the secure OS driver, the secure operation to proceed when each non-secure descriptor has been at least one of consumed and/or validated and moved to a secure address space as a protected non-secure descriptor. 7. The method of claim 6 , further comprising: allocating, by the secure OS, the random address in the secure address space in response to the request from the secure OS driver; storing, by the VMM, the allocated random address to the I/O MMU page table; counting, by the VMM, I/O MMU page table faults in response to initiation of the secure operation; and terminating, by the secure OS, the secure operation with failure if the number of I/O MMU page table faults is greater than the threshold. 8. The method of claim 6 , further comprising: transferring, by the VMM, control of each of one or more non-secure descriptors to the secure OS driver in response to the request for a secure operation, each non-secure descriptor to contain the target address associated with the DMA operation; pausing, by the secure OS driver, for a time interval to allow an outstanding non-secure descriptor to be consumed; and attempting, by the secure OS driver, to validate the target address included in a remaining non-secure descriptor if fewer than all of the outstanding non-secure descriptors have been consumed after the time interval. 9. The method of claim 6 , further comprising: transferring, by the VMM, control of each of one or more non-secure descriptors to the secure OS driver in response to the request for a secure operation, each non-secure descriptor to contain the target address associated with the DMA operation; allowing, by the secure OS driver, the secure operation to proceed when each non-secure descriptor has been at least one of consumed and/or validated and moved to the secure address space as the protected non-secure descriptor. 10. The method of claim 6 , wherein the secure device or the non-secure device is a dual use device. 11. A computer readable storage device having stored thereon instructions that when executed by one or more processors result in the following operations comprising: coupling an I/O Controller to a memory, the I/O Controller coupled to a secure device and a non-secure device, the I/O Controller having one I/O Controller identifier; allocating a secure address space to a secure operating system (OS) and a non-secure address space to a non-secure OS, the secure address space non-overlapping with the non-secure address space; and performing at least one of operation A or operation B, wherein operation A comprises: allocating, by the secure OS, a random address in the secure address space in response to a request from a secure OS driver; and storing, by the VMM, the allocated random address to an I/O MMU page table; and counting, by the VMM, I/O MMU page table faults in response to initiation of a secure operation; and terminating, by the secure OS, the secure operation with failure if a number of I/O MMU page table faults is greater than a threshold; and wherein operation B comprises: tran

Assignees

Inventors

Classifications

  • the protection being physical, e.g. cell, word, block · CPC title

  • User address space allocation, e.g. contiguous or non contiguous base addressing · CPC title

  • Details of memory controller · CPC title

  • using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence) · CPC title

  • Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10089247B2 cover?
One embodiment provides an apparatus. The apparatus includes an input output memory management unit (I/O MMU), a non-secure operating system (OS) driver, a secure OS driver and a virtual machine monitor (VMM). The I/OMMU is to couple an I/O Controller to a memory. The I/O Controller is coupled to a secure device and a non-secure device and has one I/O Controller identifier. The non-secure OS dr…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/1425. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 02 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).