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:
@@ -28,6 +28,12 @@ EFI_PEI_PPI_DESCRIPTOR mNvmeStorageSecurityPpiListTemplate = {
|
||||
NULL
|
||||
};
|
||||
|
||||
EFI_PEI_PPI_DESCRIPTOR mNvmePassThruPpiListTemplate = {
|
||||
(EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
|
||||
&gEdkiiPeiNvmExpressPassThruPpiGuid,
|
||||
NULL
|
||||
};
|
||||
|
||||
EFI_PEI_NOTIFY_DESCRIPTOR mNvmeEndOfPeiNotifyListTemplate = {
|
||||
(EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),
|
||||
&gEfiEndOfPeiSignalPpiGuid,
|
||||
@@ -392,6 +398,26 @@ NvmExpressPeimEntry (
|
||||
Private->BlkIo2PpiList.Ppi = &Private->BlkIo2Ppi;
|
||||
PeiServicesInstallPpi (&Private->BlkIoPpiList);
|
||||
|
||||
//
|
||||
// Nvm Express Pass Thru PPI
|
||||
//
|
||||
Private->PassThruMode.Attributes = EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_PHYSICAL |
|
||||
EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_LOGICAL |
|
||||
EFI_NVM_EXPRESS_PASS_THRU_ATTRIBUTES_CMD_SET_NVM;
|
||||
Private->PassThruMode.IoAlign = sizeof (UINTN);
|
||||
Private->PassThruMode.NvmeVersion = EDKII_PEI_NVM_EXPRESS_PASS_THRU_PPI_REVISION;
|
||||
Private->NvmePassThruPpi.Mode = &Private->PassThruMode;
|
||||
Private->NvmePassThruPpi.GetDevicePath = NvmePassThruGetDevicePath;
|
||||
Private->NvmePassThruPpi.GetNextNameSpace = NvmePassThruGetNextNameSpace;
|
||||
Private->NvmePassThruPpi.PassThru = NvmePassThru;
|
||||
CopyMem (
|
||||
&Private->NvmePassThruPpiList,
|
||||
&mNvmePassThruPpiListTemplate,
|
||||
sizeof (EFI_PEI_PPI_DESCRIPTOR)
|
||||
);
|
||||
Private->NvmePassThruPpiList.Ppi = &Private->NvmePassThruPpi;
|
||||
PeiServicesInstallPpi (&Private->NvmePassThruPpiList);
|
||||
|
||||
//
|
||||
// Check if the NVME controller supports the Security Receive/Send commands
|
||||
//
|
||||
|
Reference in New Issue
Block a user