MdeModulePkg/NvmExpressPei: Produce NVM Express PassThru PPI

https://bugzilla.tianocore.org/show_bug.cgi?id=1879
This commit will add codes to produce the NVM Express PassThru PPI.

Signed-off-by: Maggie Chu <maggie.chu@intel.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
This commit is contained in:
Maggie Chu
2019-06-17 10:11:26 +08:00
committed by Hao A Wu
parent 4128d8a8cb
commit ba3aa1c4e7
8 changed files with 418 additions and 115 deletions

View File

@@ -57,15 +57,17 @@ TrustTransferNvmeDevice (
OUT UINTN *TransferLengthOut
)
{
EDKII_PEI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET CommandPacket;
EDKII_PEI_NVM_EXPRESS_COMMAND Command;
EDKII_PEI_NVM_EXPRESS_COMPLETION Completion;
EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET CommandPacket;
EFI_NVM_EXPRESS_COMMAND Command;
EFI_NVM_EXPRESS_COMPLETION Completion;
EFI_STATUS Status;
UINT16 SpecificData;
EDKII_PEI_NVM_EXPRESS_PASS_THRU_PPI *NvmePassThru;
ZeroMem (&CommandPacket, sizeof(EDKII_PEI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET));
ZeroMem (&Command, sizeof(EDKII_PEI_NVM_EXPRESS_COMMAND));
ZeroMem (&Completion, sizeof(EDKII_PEI_NVM_EXPRESS_COMPLETION));
NvmePassThru = &Private->NvmePassThruPpi;
ZeroMem (&CommandPacket, sizeof(EFI_NVM_EXPRESS_PASS_THRU_COMMAND_PACKET));
ZeroMem (&Command, sizeof(EFI_NVM_EXPRESS_COMMAND));
ZeroMem (&Completion, sizeof(EFI_NVM_EXPRESS_COMPLETION));
CommandPacket.NvmeCmd = &Command;
CommandPacket.NvmeCompletion = &Completion;
@@ -94,11 +96,11 @@ TrustTransferNvmeDevice (
CommandPacket.CommandTimeout = Timeout;
CommandPacket.QueueType = NVME_ADMIN_QUEUE;
Status = NvmePassThru (
Private,
NVME_CONTROLLER_NSID,
&CommandPacket
);
Status = NvmePassThru->PassThru (
NvmePassThru,
NVME_CONTROLLER_NSID,
&CommandPacket
);
if (!IsTrustSend) {
if (EFI_ERROR (Status)) {