X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FBus%2FAta%2FAhciPei%2FAhciPei.c;fp=MdeModulePkg%2FBus%2FAta%2FAhciPei%2FAhciPei.c;h=31b072c118785b78481401091c156e30e0afcf53;hp=29e0aa7d65ad8d849459f0c2a2563986ad22d319;hb=b2b8e872fd1b3fd19464f0c8634b937c82fcf7c9;hpb=04c7a5febd82681692c95450ea1979daee8f31aa diff --git a/MdeModulePkg/Bus/Ata/AhciPei/AhciPei.c b/MdeModulePkg/Bus/Ata/AhciPei/AhciPei.c index 29e0aa7d65..31b072c118 100644 --- a/MdeModulePkg/Bus/Ata/AhciPei/AhciPei.c +++ b/MdeModulePkg/Bus/Ata/AhciPei/AhciPei.c @@ -16,6 +16,18 @@ EFI_PEI_PPI_DESCRIPTOR mAhciAtaPassThruPpiListTemplate = { NULL }; +EFI_PEI_PPI_DESCRIPTOR mAhciBlkIoPpiListTemplate = { + (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), + &gEfiPeiVirtualBlockIoPpiGuid, + NULL +}; + +EFI_PEI_PPI_DESCRIPTOR mAhciBlkIo2PpiListTemplate = { + (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), + &gEfiPeiVirtualBlockIo2PpiGuid, + NULL +}; + EFI_PEI_PPI_DESCRIPTOR mAhciStorageSecurityPpiListTemplate = { (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), &gEdkiiPeiStorageSecurityCommandPpiGuid, @@ -265,6 +277,29 @@ AtaAhciPeimEntry ( Private->AtaPassThruPpiList.Ppi = &Private->AtaPassThruPpi; PeiServicesInstallPpi (&Private->AtaPassThruPpiList); + Private->BlkIoPpi.GetNumberOfBlockDevices = AhciBlockIoGetDeviceNo; + Private->BlkIoPpi.GetBlockDeviceMediaInfo = AhciBlockIoGetMediaInfo; + Private->BlkIoPpi.ReadBlocks = AhciBlockIoReadBlocks; + CopyMem ( + &Private->BlkIoPpiList, + &mAhciBlkIoPpiListTemplate, + sizeof (EFI_PEI_PPI_DESCRIPTOR) + ); + Private->BlkIoPpiList.Ppi = &Private->BlkIoPpi; + PeiServicesInstallPpi (&Private->BlkIoPpiList); + + Private->BlkIo2Ppi.Revision = EFI_PEI_RECOVERY_BLOCK_IO2_PPI_REVISION; + Private->BlkIo2Ppi.GetNumberOfBlockDevices = AhciBlockIoGetDeviceNo2; + Private->BlkIo2Ppi.GetBlockDeviceMediaInfo = AhciBlockIoGetMediaInfo2; + Private->BlkIo2Ppi.ReadBlocks = AhciBlockIoReadBlocks2; + CopyMem ( + &Private->BlkIo2PpiList, + &mAhciBlkIo2PpiListTemplate, + sizeof (EFI_PEI_PPI_DESCRIPTOR) + ); + Private->BlkIo2PpiList.Ppi = &Private->BlkIo2Ppi; + PeiServicesInstallPpi (&Private->BlkIo2PpiList); + if (Private->TrustComputingDevices != 0) { DEBUG (( DEBUG_INFO,