From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id C655321DFA7B0 for ; Sat, 25 Mar 2017 02:28:50 -0700 (PDT) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga104.jf.intel.com with ESMTP; 25 Mar 2017 02:28:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,219,1486454400"; d="scan'208";a="948072128" Received: from jyao1-mobl.ccr.corp.intel.com ([10.254.213.212]) by orsmga003.jf.intel.com with ESMTP; 25 Mar 2017 02:28:49 -0700 From: Jiewen Yao To: edk2-devel@lists.01.org Cc: Ruiyu Ni , Leo Duran , Brijesh Singh Date: Sat, 25 Mar 2017 17:28:39 +0800 Message-Id: <1490434122-16200-1-git-send-email-jiewen.yao@intel.com> X-Mailer: git-send-email 2.7.4.windows.1 Subject: [RFC] [PATCH 0/3] Add IOMMU support. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Mar 2017 09:28:51 -0000 This patch series adds IOMMU protocol and updates the consumer to support IOMMU based DMA access in UEFI. This patch series can support the BmDmaLib request for AMD SEV. submitted by Duran, Leo and Brijesh Singh . https://lists.01.org/pipermail/edk2-devel/2017-March/008109.html, and https://lists.01.org/pipermail/edk2-devel/2017-March/008820.html. We can have an AMD SEV specific IOMMU driver to produce IOMMU protocol, and clear SEV in IOMMU->SetAttribute(). This patch series can also support Intel VTd based DMA protection, requested by Jiewen Yao , discussed in https://lists.01.org/pipermail/edk2-devel/2017-March/008157.html. We can have an Intel VTd specific IOMMU driver to produce IOMMU protocol, and update VTd engine to grant or deny access in IOMMU->SetAttribute(). This patch series does not provide a full Intel VTd driver, which will be provide in other patch in the future. The purpose of this patch series to review if this IOMMU protocol design can meet all DMA access and management requirement. Cc: Ruiyu Ni Cc: Leo Duran Cc: Brijesh Singh Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiewen Yao Jiewen Yao (3): MdeModulePkg/Include: Add IOMMU protocol definition. MdeModulePkg/PciHostBridge: Add IOMMU support. MdeModulePkg/PciBus: Add IOMMU support. MdeModulePkg/Bus/Pci/PciBusDxe/PciBus.c | 12 ++ MdeModulePkg/Bus/Pci/PciBusDxe/PciBus.h | 10 ++ MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf | 1 + MdeModulePkg/Bus/Pci/PciBusDxe/PciIo.c | 100 ++++++++++++ MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridge.c | 3 + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf | 1 + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridge.h | 7 + MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c | 172 +++++++++++++++++++- MdeModulePkg/Include/Protocol/IoMmu.h | 132 +++++++++++++++ MdeModulePkg/MdeModulePkg.dec | 3 + 10 files changed, 436 insertions(+), 5 deletions(-) create mode 100644 MdeModulePkg/Include/Protocol/IoMmu.h -- 2.7.4.windows.1