audk/MdeModulePkg
Jiewen Yao d1fddc4533 MdeModulePkg/Include: Add IOMMU protocol definition.
This protocol is to abstract DMA access from IOMMU.
1) Intel "DMAR" ACPI table.
2) AMD "IVRS" ACPI table
3) ARM "IORT" ACPI table.

There might be multiple IOMMU engines on one platform.
For example, one for graphic and one for rest PCI devices
(such as ATA/USB).
All IOMMU engines are reported by one ACPI table.

All IOMMU protocol provider should be based upon ACPI table.
This single IOMMU protocol can handle multiple IOMMU engines on one system.

This IOMMU protocol provider can use UEFI device path to distinguish
if the device is graphic or ATA/USB, and find out corresponding
IOMMU engine.

The IOMMU protocol provides 2 capabilities:
A) Set DMA access attribute - such as write/read control.
B) Remap DMA memory - such as remap above 4GiB system memory address
to below 4GiB device address.
It provides AllocateBuffer/FreeBuffer/Map/Unmap for DMA memory.
The remapping can be static (fixed at build time) or dynamic (allocate
at runtime).

4) AMD "SEV" feature.
We can have an AMD SEV specific IOMMU driver to produce IOMMU protocol,
and manage SEV bit.

Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Leo Duran <leo.duran@amd.com>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Previous patch Tested-by: Brijesh Singh <brijesh.singh@amd.com>
Previous patch Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Leo Duran <leo.duran@amd.com>
2017-05-17 16:05:12 +08:00
..
Application MdeModulePkg SmiHandlerProfile: Fix memory leak in DumpSmiChildContext 2017-05-12 13:07:11 +08:00
Bus MdeModulePkg/UfsPassThruDxe: Fix typo in UfsPassThruGetTargetLun() 2017-05-17 15:26:24 +08:00
Core MdeModulePkg SmiHandlerProfile: Fix memory leak in DumpSmiChildContext 2017-05-12 13:07:11 +08:00
Include MdeModulePkg/Include: Add IOMMU protocol definition. 2017-05-17 16:05:12 +08:00
Library MdeModulePKg/BDS: Build meaningful description for Wi-Fi boot option 2017-04-26 09:25:54 +08:00
Logo MdeModulePkg/LogoDxe: Add missing dependency gEfiHiiImageExProtocolGuid 2017-03-17 12:25:14 +08:00
Universal MdeModulePkg/FormDisplay: Make the LineWidth of option consistent 2017-05-11 10:48:49 +08:00
Contributions.txt */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
License.txt Update copyright format 2012-04-24 06:49:39 +00:00
MdeModulePkg.dec MdeModulePkg/Include: Add IOMMU protocol definition. 2017-05-17 16:05:12 +08:00
MdeModulePkg.dsc MdeModulePkg: Update DEC/DSC version from 0.96 to 0.97 2017-05-05 15:55:09 +08:00
MdeModulePkg.uni MdeModulePkg: Add PROMPT&HELP string of pcd to UNI file 2017-03-07 21:47:19 +08:00
MdeModulePkgExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00