> -----Original Message----- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > Wu, Hao A > Sent: Tuesday, June 25, 2019 9:44 AM > To: Albecki, Mateusz; devel@edk2.groups.io > Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThruDxe: > Refactor UFS device presence detection > > > -----Original Message----- > > From: Albecki, Mateusz > > Sent: Monday, June 24, 2019 7:33 PM > > To: devel@edk2.groups.io; Albecki, Mateusz > > Cc: Wu, Hao A > > Subject: RE: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThruDxe: > > Refactor UFS device presence detection > > > > Test info: > > > > Tested device presence detection before and after change on real > hardware. > > No functional change in UFS detection. > > > Thanks for the test information. > Reviewed-by: Hao A Wu <hao.a...@intel.com>
Pushed via commit f426d8744f. Best Regards, Hao Wu > > Best Regards, > Hao Wu > > > > > > > -----Original Message----- > > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf > Of > > > Albecki, Mateusz > > > Sent: Friday, June 21, 2019 5:27 PM > > > To: devel@edk2.groups.io > > > Cc: Albecki, Mateusz <mateusz.albe...@intel.com>; Wu, Hao A > > > <hao.a...@intel.com> > > > Subject: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThruDxe: > Refactor > > > UFS device presence detection > > > > > > In current implementation we are checking for device presence every > time > > > we execute UIC command. To make UfsExecUicCommands more generic > > > checking device presence has been moved to UfsDeviceDetection. > > > > > > Cc: Hao A Wu <hao.a...@intel.com> > > > Signed-off-by: Mateusz Albecki <mateusz.albe...@intel.com> > > > --- > > > .../Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c | 50 ++++++++--------- > -- > > -- > > > - > > > 1 file changed, 18 insertions(+), 32 deletions(-) > > > > > > diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > > > b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > > > index 4b93821f38..633f975e30 100644 > > > --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > > > +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > > > @@ -1534,7 +1534,7 @@ Exit1: > > > > > > > > > /** > > > - Sent UIC DME_LINKSTARTUP command to start the link startup > > procedure. > > > + Send UIC command. > > > > > > @param[in] Private The pointer to the > > > UFS_PASS_THRU_PRIVATE_DATA data structure. > > > @param[in] UicOpcode The opcode of the UIC command. > > > @@ -1544,7 +1544,6 @@ Exit1: > > > > > > @return EFI_SUCCESS Successfully execute this UIC command and > > > detect attached UFS device. > > > @return EFI_DEVICE_ERROR Fail to execute this UIC command and > detect > > > attached UFS device. > > > - @return EFI_NOT_FOUND The presence of the UFS device isn't > > detected. > > > > > > **/ > > > EFI_STATUS > > > @@ -1629,24 +1628,6 @@ UfsExecUicCommands ( > > > } > > > } > > > > > > - // > > > - // Check value of HCS.DP and make sure that there is a device attached > to > > > the Link. > > > - // > > > - Status = UfsMmioRead32 (Private, UFS_HC_STATUS_OFFSET, &Data); > > > - if (EFI_ERROR (Status)) { > > > - return Status; > > > - } > > > - > > > - if ((Data & UFS_HC_HCS_DP) == 0) { > > > - Status = UfsWaitMemSet (Private, UFS_HC_IS_OFFSET, > > 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, "UfsPassThruDxe: found a attached UFS > > > device\n")); > > > - > > > return EFI_SUCCESS; > > > } > > > > > > @@ -1820,8 +1801,9 @@ UfsDeviceDetection ( > > > IN UFS_PASS_THRU_PRIVATE_DATA *Private > > > ) > > > { > > > - UINTN Retry; > > > - EFI_STATUS Status; > > > + UINTN Retry; > > > + EFI_STATUS Status; > > > + UINT32 Data; > > > > > > // > > > // Start UFS device detection. > > > @@ -1829,22 +1811,26 @@ 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; > > > + Status = UfsMmioRead32 (Private, UFS_HC_STATUS_OFFSET, &Data); > > > + if (EFI_ERROR (Status)) { > > > + return EFI_DEVICE_ERROR; > > > } > > > > > > - return EFI_DEVICE_ERROR; > > > - } > > > - > > > - if (Retry == 3) { > > > - return EFI_NOT_FOUND; > > > + if ((Data & UFS_HC_HCS_DP) == 0) { > > > + Status = UfsWaitMemSet (Private, UFS_HC_IS_OFFSET, > > > UFS_HC_IS_ULSS, UFS_HC_IS_ULSS, UFS_TIMEOUT); > > > + if (EFI_ERROR (Status)) { > > > + return EFI_DEVICE_ERROR; > > > + } > > > + } else { > > > + return EFI_SUCCESS; > > > + } > > > } > > > > > > - return EFI_SUCCESS; > > > + return EFI_NOT_FOUND; > > > } > > > > > > /** > > > -- > > > 2.14.1.windows.1 > > > > > > -------------------------------------------------------------------- > > > > > > Intel Technology Poland sp. z o.o. > > > ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII > > > Wydzial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP > > 957- > > > 07-52-316 | Kapital zakladowy 200.000 PLN. > > > > > > Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego > > > adresata i moze zawierac informacje poufne. W razie przypadkowego > > > otrzymania tej wiadomosci, prosimy o powiadomienie nadawcy oraz > trwale > > > jej usuniecie; jakiekolwiek przegladanie lub rozpowszechnianie jest > > > zabronione. > > > This e-mail and any attachments may contain confidential material for the > > > sole use of the intended recipient(s). If you are not the intended > recipient, > > > please contact the sender and delete all copies; any review or > > > distribution > > by > > > others is strictly prohibited. > > > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#42907): https://edk2.groups.io/g/devel/message/42907 Mute This Topic: https://groups.io/mt/32159554/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-