]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/NvmExpressPei/NvmExpressPei.h
MdeModulePkg/NvmExpressPei: Produce NVM Express PassThru PPI
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / NvmExpressPei / NvmExpressPei.h
index 6b2e2f032621dbae83e6372a1149459cc7e1993e..8cd905191bb4ef15619656b90207897c1414687d 100644 (file)
@@ -19,6 +19,7 @@
 #include <Ppi/BlockIo.h>\r
 #include <Ppi/BlockIo2.h>\r
 #include <Ppi/StorageSecurityCommand.h>\r
+#include <Ppi/NvmExpressPassThru.h>\r
 #include <Ppi/IoMmu.h>\r
 #include <Ppi/EndOfPeiPhase.h>\r
 \r
@@ -74,6 +75,8 @@ struct _PEI_NVME_NAMESPACE_INFO {
   PEI_NVME_CONTROLLER_PRIVATE_DATA          *Controller;\r
 };\r
 \r
+#define NVME_CONTROLLER_NSID        0\r
+\r
 //\r
 // Unique signature for private data structure.\r
 //\r
@@ -85,15 +88,18 @@ struct _PEI_NVME_NAMESPACE_INFO {
 struct _PEI_NVME_CONTROLLER_PRIVATE_DATA {\r
   UINT32                                    Signature;\r
   UINTN                                     MmioBase;\r
+  EFI_NVM_EXPRESS_PASS_THRU_MODE            PassThruMode;\r
   UINTN                                     DevicePathLength;\r
   EFI_DEVICE_PATH_PROTOCOL                  *DevicePath;\r
 \r
   EFI_PEI_RECOVERY_BLOCK_IO_PPI             BlkIoPpi;\r
   EFI_PEI_RECOVERY_BLOCK_IO2_PPI            BlkIo2Ppi;\r
   EDKII_PEI_STORAGE_SECURITY_CMD_PPI        StorageSecurityPpi;\r
+  EDKII_PEI_NVM_EXPRESS_PASS_THRU_PPI       NvmePassThruPpi;\r
   EFI_PEI_PPI_DESCRIPTOR                    BlkIoPpiList;\r
   EFI_PEI_PPI_DESCRIPTOR                    BlkIo2PpiList;\r
   EFI_PEI_PPI_DESCRIPTOR                    StorageSecurityPpiList;\r
+  EFI_PEI_PPI_DESCRIPTOR                    NvmePassThruPpiList;\r
   EFI_PEI_NOTIFY_DESCRIPTOR                 EndOfPeiNotifyList;\r
 \r
   //\r
@@ -145,6 +151,8 @@ struct _PEI_NVME_CONTROLLER_PRIVATE_DATA {
   CR (a, PEI_NVME_CONTROLLER_PRIVATE_DATA, BlkIo2Ppi, NVME_PEI_CONTROLLER_PRIVATE_DATA_SIGNATURE)\r
 #define GET_NVME_PEIM_HC_PRIVATE_DATA_FROM_THIS_STROAGE_SECURITY(a)    \\r
   CR (a, PEI_NVME_CONTROLLER_PRIVATE_DATA, StorageSecurityPpi, NVME_PEI_CONTROLLER_PRIVATE_DATA_SIGNATURE)\r
+#define GET_NVME_PEIM_HC_PRIVATE_DATA_FROM_THIS_NVME_PASSTHRU(a)       \\r
+  CR (a, PEI_NVME_CONTROLLER_PRIVATE_DATA, NvmePassThruPpi, NVME_PEI_CONTROLLER_PRIVATE_DATA_SIGNATURE)\r
 #define GET_NVME_PEIM_HC_PRIVATE_DATA_FROM_THIS_NOTIFY(a)              \\r
   CR (a, PEI_NVME_CONTROLLER_PRIVATE_DATA, EndOfPeiNotifyList, NVME_PEI_CONTROLLER_PRIVATE_DATA_SIGNATURE)\r
 \r