* [PATCH] bRefClkFreq UFS card attribute need to be programmed after fDeviceInit @ 2022-03-25 12:18 Bandaru, Purna Chandra Rao 2022-03-28 0:29 ` [edk2-devel] " Wu, Hao A 0 siblings, 1 reply; 3+ messages in thread From: Bandaru, Purna Chandra Rao @ 2022-03-25 12:18 UTC (permalink / raw) To: devel Cc: Purna Chandra Rao Bandaru, Wu Hao A, Albecki Mateusz, Liming Gao, Zhiguang Liu REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3886 bRefClkFreq UFS card attribute need to be read and written after successful fDeviceInit and NOP response so that link will be stable. Cc: Wu Hao A <hao.a.wu@intel.com> Cc: Albecki Mateusz <mateusz.albecki@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang.liu@intel.com> Signed-off-by: Purna Chandra Rao Bandaru <purna.chandra.rao.bandaru@intel.com> --- .../Bus/Ufs/UfsPassThruDxe/UfsPassThru.c | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c index dc78e09678..ae593ff03a 100644 --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c @@ -919,6 +919,23 @@ UfsPassThruDriverBindingStart ( goto Error; } + // + // UFS 2.0 spec Section 13.1.3.3: + // At the end of the UFS Interconnect Layer initialization on both host and device side, + // the host shall send a NOP OUT UPIU to verify that the device UTP Layer is ready. + // + Status = UfsExecNopCmds (Private); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Ufs Sending NOP IN command Error, Status = %r\n", Status)); + goto Error; + } + + Status = UfsFinishDeviceInitialization (Private); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Device failed to finish initialization, Status = %r\n", Status)); + goto Error; + } + if ((mUfsHcPlatform != NULL) && ((mUfsHcPlatform->RefClkFreq == EdkiiUfsCardRefClkFreq19p2Mhz) || (mUfsHcPlatform->RefClkFreq == EdkiiUfsCardRefClkFreq26Mhz) || @@ -967,23 +984,6 @@ UfsPassThruDriverBindingStart ( } } - // - // UFS 2.0 spec Section 13.1.3.3: - // At the end of the UFS Interconnect Layer initialization on both host and device side, - // the host shall send a NOP OUT UPIU to verify that the device UTP Layer is ready. - // - Status = UfsExecNopCmds (Private); - if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "Ufs Sending NOP IN command Error, Status = %r\n", Status)); - goto Error; - } - - Status = UfsFinishDeviceInitialization (Private); - if (EFI_ERROR (Status)) { - DEBUG ((DEBUG_ERROR, "Device failed to finish initialization, Status = %r\n", Status)); - goto Error; - } - // // Check if 8 common luns are active and set corresponding bit mask. // -- 2.31.1.windows.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [edk2-devel] [PATCH] bRefClkFreq UFS card attribute need to be programmed after fDeviceInit 2022-03-25 12:18 [PATCH] bRefClkFreq UFS card attribute need to be programmed after fDeviceInit Bandaru, Purna Chandra Rao @ 2022-03-28 0:29 ` Wu, Hao A 2022-03-29 1:47 ` Wu, Hao A 0 siblings, 1 reply; 3+ messages in thread From: Wu, Hao A @ 2022-03-28 0:29 UTC (permalink / raw) To: devel@edk2.groups.io, Bandaru, Purna Chandra Rao Cc: Albecki, Mateusz, Gao, Liming, Liu, Zhiguang Will slightly modify the subject to: MdeModulePkg/Ufs: bRefClkFreq attribute be programmed after fDeviceInit Reviewed-by: Hao A Wu <hao.a.wu@intel.com> Will wait a day before merging to see if comment from other reviewers. Best Regards, Hao Wu > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Bandaru, > Purna Chandra Rao > Sent: Friday, March 25, 2022 8:18 PM > To: devel@edk2.groups.io > Cc: Bandaru, Purna Chandra Rao <purna.chandra.rao.bandaru@intel.com>; Wu, > Hao A <hao.a.wu@intel.com>; Albecki, Mateusz <mateusz.albecki@intel.com>; > Gao, Liming <gaoliming@byosoft.com.cn>; Liu, Zhiguang > <zhiguang.liu@intel.com> > Subject: [edk2-devel] [PATCH] bRefClkFreq UFS card attribute need to be > programmed after fDeviceInit > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3886 > > bRefClkFreq UFS card attribute need to be read and written after successful > fDeviceInit and NOP response so that link will be stable. > > Cc: Wu Hao A <hao.a.wu@intel.com> > Cc: Albecki Mateusz <mateusz.albecki@intel.com> > Cc: Liming Gao <gaoliming@byosoft.com.cn> > Cc: Zhiguang Liu <zhiguang.liu@intel.com> > > Signed-off-by: Purna Chandra Rao Bandaru > <purna.chandra.rao.bandaru@intel.com> > --- > .../Bus/Ufs/UfsPassThruDxe/UfsPassThru.c | 34 +++++++++---------- > 1 file changed, 17 insertions(+), 17 deletions(-) > > diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c > b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c > index dc78e09678..ae593ff03a 100644 > --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c > +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c > @@ -919,6 +919,23 @@ UfsPassThruDriverBindingStart ( > goto Error; > } > > + // > + // UFS 2.0 spec Section 13.1.3.3: > + // At the end of the UFS Interconnect Layer initialization on both > + host and device side, // the host shall send a NOP OUT UPIU to verify that the > device UTP Layer is ready. > + // > + Status = UfsExecNopCmds (Private); > + if (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "Ufs Sending NOP IN command Error, Status > = %r\n", Status)); > + goto Error; > + } > + > + Status = UfsFinishDeviceInitialization (Private); if (EFI_ERROR > + (Status)) { > + DEBUG ((DEBUG_ERROR, "Device failed to finish initialization, Status = %r\n", > Status)); > + goto Error; > + } > + > if ((mUfsHcPlatform != NULL) && > ((mUfsHcPlatform->RefClkFreq == EdkiiUfsCardRefClkFreq19p2Mhz) || > (mUfsHcPlatform->RefClkFreq == EdkiiUfsCardRefClkFreq26Mhz) || @@ - > 967,23 +984,6 @@ UfsPassThruDriverBindingStart ( > } > } > > - // > - // UFS 2.0 spec Section 13.1.3.3: > - // At the end of the UFS Interconnect Layer initialization on both host and > device side, > - // the host shall send a NOP OUT UPIU to verify that the device UTP Layer is > ready. > - // > - Status = UfsExecNopCmds (Private); > - if (EFI_ERROR (Status)) { > - DEBUG ((DEBUG_ERROR, "Ufs Sending NOP IN command Error, Status > = %r\n", Status)); > - goto Error; > - } > - > - Status = UfsFinishDeviceInitialization (Private); > - if (EFI_ERROR (Status)) { > - DEBUG ((DEBUG_ERROR, "Device failed to finish initialization, Status = %r\n", > Status)); > - goto Error; > - } > - > // > // Check if 8 common luns are active and set corresponding bit mask. > // > -- > 2.31.1.windows.1 > > > > > ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [edk2-devel] [PATCH] bRefClkFreq UFS card attribute need to be programmed after fDeviceInit 2022-03-28 0:29 ` [edk2-devel] " Wu, Hao A @ 2022-03-29 1:47 ` Wu, Hao A 0 siblings, 0 replies; 3+ messages in thread From: Wu, Hao A @ 2022-03-29 1:47 UTC (permalink / raw) To: devel@edk2.groups.io, Wu, Hao A, Bandaru, Purna Chandra Rao Cc: Albecki, Mateusz, Gao, Liming, Liu, Zhiguang Pushed via: PR - https://github.com/tianocore/edk2/pull/2701 Commit - https://github.com/tianocore/edk2/commit/7456990e8eebe3b935447253bb6d1d3129839122 Best Regards, Hao Wu > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Wu, Hao A > Sent: Monday, March 28, 2022 8:30 AM > To: devel@edk2.groups.io; Bandaru, Purna Chandra Rao > <purna.chandra.rao.bandaru@intel.com> > Cc: Albecki, Mateusz <mateusz.albecki@intel.com>; Gao, Liming > <gaoliming@byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu@intel.com> > Subject: Re: [edk2-devel] [PATCH] bRefClkFreq UFS card attribute need to be > programmed after fDeviceInit > > Will slightly modify the subject to: > MdeModulePkg/Ufs: bRefClkFreq attribute be programmed after fDeviceInit > > Reviewed-by: Hao A Wu <hao.a.wu@intel.com> Will wait a day before merging > to see if comment from other reviewers. > > Best Regards, > Hao Wu > > > -----Original Message----- > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of > > Bandaru, Purna Chandra Rao > > Sent: Friday, March 25, 2022 8:18 PM > > To: devel@edk2.groups.io > > Cc: Bandaru, Purna Chandra Rao <purna.chandra.rao.bandaru@intel.com>; > > Wu, Hao A <hao.a.wu@intel.com>; Albecki, Mateusz > > <mateusz.albecki@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; > > Liu, Zhiguang <zhiguang.liu@intel.com> > > Subject: [edk2-devel] [PATCH] bRefClkFreq UFS card attribute need to > > be programmed after fDeviceInit > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3886 > > > > bRefClkFreq UFS card attribute need to be read and written after > > successful fDeviceInit and NOP response so that link will be stable. > > > > Cc: Wu Hao A <hao.a.wu@intel.com> > > Cc: Albecki Mateusz <mateusz.albecki@intel.com> > > Cc: Liming Gao <gaoliming@byosoft.com.cn> > > Cc: Zhiguang Liu <zhiguang.liu@intel.com> > > > > Signed-off-by: Purna Chandra Rao Bandaru > > <purna.chandra.rao.bandaru@intel.com> > > --- > > .../Bus/Ufs/UfsPassThruDxe/UfsPassThru.c | 34 +++++++++---------- > > 1 file changed, 17 insertions(+), 17 deletions(-) > > > > diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c > > b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c > > index dc78e09678..ae593ff03a 100644 > > --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c > > +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThru.c > > @@ -919,6 +919,23 @@ UfsPassThruDriverBindingStart ( > > goto Error; > > } > > > > + // > > + // UFS 2.0 spec Section 13.1.3.3: > > + // At the end of the UFS Interconnect Layer initialization on both > > + host and device side, // the host shall send a NOP OUT UPIU to > > + verify that the > > device UTP Layer is ready. > > + // > > + Status = UfsExecNopCmds (Private); > > + if (EFI_ERROR (Status)) { > > + DEBUG ((DEBUG_ERROR, "Ufs Sending NOP IN command Error, Status > > = %r\n", Status)); > > + goto Error; > > + } > > + > > + Status = UfsFinishDeviceInitialization (Private); if (EFI_ERROR > > + (Status)) { > > + DEBUG ((DEBUG_ERROR, "Device failed to finish initialization, > > + Status = %r\n", > > Status)); > > + goto Error; > > + } > > + > > if ((mUfsHcPlatform != NULL) && > > ((mUfsHcPlatform->RefClkFreq == EdkiiUfsCardRefClkFreq19p2Mhz) || > > (mUfsHcPlatform->RefClkFreq == EdkiiUfsCardRefClkFreq26Mhz) || > > @@ - > > 967,23 +984,6 @@ UfsPassThruDriverBindingStart ( > > } > > } > > > > - // > > - // UFS 2.0 spec Section 13.1.3.3: > > - // At the end of the UFS Interconnect Layer initialization on both > > host and device side, > > - // the host shall send a NOP OUT UPIU to verify that the device UTP > > Layer is ready. > > - // > > - Status = UfsExecNopCmds (Private); > > - if (EFI_ERROR (Status)) { > > - DEBUG ((DEBUG_ERROR, "Ufs Sending NOP IN command Error, Status > > = %r\n", Status)); > > - goto Error; > > - } > > - > > - Status = UfsFinishDeviceInitialization (Private); > > - if (EFI_ERROR (Status)) { > > - DEBUG ((DEBUG_ERROR, "Device failed to finish initialization, Status > = %r\n", > > Status)); > > - goto Error; > > - } > > - > > // > > // Check if 8 common luns are active and set corresponding bit mask. > > // > > -- > > 2.31.1.windows.1 > > > > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-03-29 1:47 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-03-25 12:18 [PATCH] bRefClkFreq UFS card attribute need to be programmed after fDeviceInit Bandaru, Purna Chandra Rao 2022-03-28 0:29 ` [edk2-devel] " Wu, Hao A 2022-03-29 1:47 ` Wu, Hao A
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox