From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.151; helo=mga17.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) (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 21FB9210FC0D9 for ; Fri, 15 Jun 2018 00:03:45 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Jun 2018 00:03:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,226,1526367600"; d="scan'208";a="47932588" Received: from shwdeopenpsi014.ccr.corp.intel.com ([10.239.9.19]) by fmsmga008.fm.intel.com with ESMTP; 15 Jun 2018 00:03:43 -0700 From: Hao Wu To: edk2-devel@lists.01.org Cc: Hao Wu , Star Zeng , Eric Dong , Ruiyu Ni , Jiewen Yao Date: Fri, 15 Jun 2018 15:03:38 +0800 Message-Id: <20180615070342.13388-1-hao.a.wu@intel.com> X-Mailer: git-send-email 2.12.0.windows.1 Subject: [PATCH 0/4] Add PEI BlockIo support for NVM Express devices X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2018 07:03:46 -0000 The series is also available at: https://github.com/hwu25/edk2/tree/nvme_pei_blockio The series will add the PEI BlockIo support for NVM Express devices. A new EDKII PEI NVME host controller PPI will be introduced. It will provide the caller with the MMIO BAR address and the device path information of the NVM Express host controllers within system. The NvmExpressPei driver is added to comsume the EDKII PEI NVME host controller PPI and produce the BlockIo PPIs for those NVME devices. Also, FatPei driver has been updated to support the recovery from NVME devices. Tests done for the patch: (NOTE: All tests are performed with 1 NVME device attached, and 2 NVME devices attached. And all tests are performed with Vtd enabled and disabled on platform.) 1. Use the BlockIo PPIs to read and verify the data on NVME devices. 2. Recovery from NVME device test on real platform. Cc: Star Zeng Cc: Eric Dong Cc: Ruiyu Ni Cc: Jiewen Yao Hao Wu (4): MdeModulePkg: Add definitions for EDKII PEI NVME host controller PPI MdeModulePkg/NvmExpressPei: Add the NVME device PEI BlockIo support MdeModulePkg: Add GUID for recovery capsule on NVM Express devices FatPkg/FatPei: Add the recognition of recovery capsule on NVME device FatPkg/FatPei/FatLiteApi.c | 6 +- FatPkg/FatPei/FatPei.inf | 3 +- MdeModulePkg/Bus/Pci/NvmExpressPei/DmaMem.c | 249 +++++++ MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.c | 368 ++++++++++ MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.h | 265 +++++++ MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.inf | 70 ++ MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.uni | 21 + MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiBlockIo.c | 531 ++++++++++++++ MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiBlockIo.h | 266 +++++++ MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiExtra.uni | 19 + MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiHci.c | 748 ++++++++++++++++++++ MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiHci.h | 166 +++++ MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiPassThru.c | 628 ++++++++++++++++ MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiPassThru.h | 107 +++ MdeModulePkg/Include/Guid/RecoveryDevice.h | 9 + MdeModulePkg/Include/Ppi/NvmExpressHostController.h | 97 +++ MdeModulePkg/MdeModulePkg.dec | 6 + MdeModulePkg/MdeModulePkg.dsc | 1 + 18 files changed, 3558 insertions(+), 2 deletions(-) create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/DmaMem.c create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.c create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.h create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.inf create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.uni create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiBlockIo.c create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiBlockIo.h create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiExtra.uni create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiHci.c create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiHci.h create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiPassThru.c create mode 100644 MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPeiPassThru.h create mode 100644 MdeModulePkg/Include/Ppi/NvmExpressHostController.h -- 2.12.0.windows.1