Reviewed-by: Hao A Wu <hao.a...@intel.com> Best Regards, Hao Wu
> -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of > VincentX Ke > Sent: Thursday, December 23, 2021 12:19 PM > To: devel@edk2.groups.io > Cc: Ke, VincentX <vincentx...@intel.com>; Wu, Hao A > <hao.a...@intel.com>; Ni, Ray <ray...@intel.com>; Chiu, Ian > <ian.c...@intel.com>; Chu, Maggie <maggie....@intel.com> > Subject: [edk2-devel] [PATCH v6 3/3] MdeModulePkg: Put off UFS HCS.DP > checking to fix timing problem > > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3776 > > Put off UFS HCS.DP (Device Attached) checking until UfsDeviceDetection() to > fix timing problem. > > Cc: Hao A Wu <hao.a...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Ian Chiu <ian.c...@intel.com> > Cc: Maggie Chu <maggie....@intel.com> > Signed-off-by: VincentX Ke <vincentx...@intel.com> > --- > MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c | 47 +++++++++------------ > 1 file changed, 19 insertions(+), 28 deletions(-) > > diff --git a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > index cffe8e02a7..864bf6928d 100644 > --- a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > +++ b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > @@ -1353,23 +1353,6 @@ UfsExecUicCommands ( > } > } > > - // > - // Check value of HCS.DP and make sure that there is a device attached to > the Link. > - // > - Address = UfsHcBase + UFS_HC_STATUS_OFFSET; > - Data = MmioRead32 (Address); > - if ((Data & UFS_HC_HCS_DP) == 0) { > - Address = UfsHcBase + UFS_HC_IS_OFFSET; > - Status = UfsWaitMemSet (Address, UFS_HC_IS_ULSS, UFS_HC_IS_ULSS, > UFS_TIMEOUT); > - if (EFI_ERROR (Status)) { > - return EFI_DEVICE_ERROR; > - } > - > - return EFI_NOT_FOUND; > - } > - > - DEBUG ((DEBUG_INFO, "UfsblockioPei: found a attached UFS device\n")); > - > return EFI_SUCCESS; > } > > @@ -1443,6 +1426,8 @@ UfsDeviceDetection ( > ) > { > UINTN Retry; > + UINTN Address; > + UINT32 Data; > EFI_STATUS Status; > > // > @@ -1451,22 +1436,28 @@ UfsDeviceDetection ( > // > for (Retry = 0; Retry < 3; Retry++) { > Status = UfsExecUicCommands (Private, UfsUicDmeLinkStartup, 0, 0, 0); > - if (!EFI_ERROR (Status)) { > - break; > + if (EFI_ERROR (Status)) { > + return EFI_DEVICE_ERROR; > } > > - if (Status == EFI_NOT_FOUND) { > - continue; > + // > + // Check value of HCS.DP and make sure that there is a device attached to > the Link > + // > + Address = Private->UfsHcBase + UFS_HC_STATUS_OFFSET; > + Data = MmioRead32 (Address); > + if ((Data & UFS_HC_HCS_DP) == 0) { > + Address = Private->UfsHcBase + UFS_HC_IS_OFFSET; > + Status = UfsWaitMemSet (Address, UFS_HC_IS_ULSS, UFS_HC_IS_ULSS, > UFS_TIMEOUT); > + if (EFI_ERROR (Status)) { > + return EFI_DEVICE_ERROR; > + } > + } else { > + DEBUG ((DEBUG_INFO, "UfsblockioPei: found a attached UFS > device\n")); > + return EFI_SUCCESS; > } > - > - return EFI_DEVICE_ERROR; > } > > - if (Retry == 3) { > - return EFI_NOT_FOUND; > - } > - > - return EFI_SUCCESS; > + return EFI_NOT_FOUND; > } > > /** > -- > 2.31.1.windows.1 > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#85192): https://edk2.groups.io/g/devel/message/85192 Mute This Topic: https://groups.io/mt/87913160/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-