[edk2-devel] [PATCH] MdeModulePkg/UfsPassThru : Fix UFS flag read from Query Resp UPIU
As per UFS spec, flag value is stored in the 'last byte' of value field. Existing code is attempting to read first byte. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2208 Test: Verified the Fix by sending command to set fPowerOnWPEn flag and then reading it to verify the set value. Cc: Hao A Wu Cc: Ray Ni Signed-off-by: Sachin Agrawal --- MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c | 5 - MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c | 5 - 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c index e8ef0c2a7a..e450f6f49d 100644 --- a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c +++ b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c @@ -977,7 +977,10 @@ UfsRwFlags ( } if (Trd->Ocs == 0) { -*Value = (UINT8)QueryResp->Tsf.Value; +// +// The 'FLAG VALUE' field is at byte offset 3 of QueryResp->Tsf.Value +// +*Value = *((UINT8*)&(QueryResp->Tsf.Value) + 3); } else { Status = EFI_DEVICE_ERROR; } diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c index 0b95e7..93ac958f65 100644 --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c @@ -863,7 +863,10 @@ UfsGetReturnDataFromQueryResponse ( case UtpQueryFuncOpcodeSetFlag: case UtpQueryFuncOpcodeClrFlag: case UtpQueryFuncOpcodeTogFlag: - CopyMem (Packet->DataBuffer, &QueryResp->Tsf.Value, sizeof (UINT8)); + // + // The 'FLAG VALUE' field is at byte offset 3 of QueryResp->Tsf.Value + // + *((UINT8*)(Packet->DataBuffer)) = *((UINT8*)&(QueryResp->Tsf.Value) + 3); break; case UtpQueryFuncOpcodeRdAttr: case UtpQueryFuncOpcodeWrAttr: -- 2.14.3.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47849): https://edk2.groups.io/g/devel/message/47849 Mute This Topic: https://groups.io/mt/34263041/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThru : Fix UFS flag read from Query Resp UPIU
> -Original Message- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > Agrawal, Sachin > Sent: Monday, September 23, 2019 7:48 PM > To: devel@edk2.groups.io > Cc: Agrawal, Sachin; Wu, Hao A; Ni, Ray > Subject: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThru : Fix UFS flag > read from Query Resp UPIU When pushing the patch, I will change the subject a little bit to: MdeModulePkg/Ufs : Fix UFS flag read from Query Resp UPIU Other than this, the patch looks good to me: Reviewed-by: Hao A Wu Best Regards, Hao Wu > > As per UFS spec, flag value is stored in the 'last byte' of value > field. Existing code is attempting to read first byte. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2208 > > Test: Verified the Fix by sending command to set fPowerOnWPEn flag > and then reading it to verify the set value. > > Cc: Hao A Wu > Cc: Ray Ni > > Signed-off-by: Sachin Agrawal > --- > MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c | 5 - > MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c | 5 - > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > index e8ef0c2a7a..e450f6f49d 100644 > --- a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > +++ b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > @@ -977,7 +977,10 @@ UfsRwFlags ( >} > >if (Trd->Ocs == 0) { > -*Value = (UINT8)QueryResp->Tsf.Value; > +// > +// The 'FLAG VALUE' field is at byte offset 3 of QueryResp->Tsf.Value > +// > +*Value = *((UINT8*)&(QueryResp->Tsf.Value) + 3); >} else { > Status = EFI_DEVICE_ERROR; >} > diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > index 0b95e7..93ac958f65 100644 > --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > @@ -863,7 +863,10 @@ UfsGetReturnDataFromQueryResponse ( > case UtpQueryFuncOpcodeSetFlag: > case UtpQueryFuncOpcodeClrFlag: > case UtpQueryFuncOpcodeTogFlag: > - CopyMem (Packet->DataBuffer, &QueryResp->Tsf.Value, sizeof (UINT8)); > + // > + // The 'FLAG VALUE' field is at byte offset 3 of QueryResp->Tsf.Value > + // > + *((UINT8*)(Packet->DataBuffer)) = *((UINT8*)&(QueryResp->Tsf.Value) > + 3); >break; > case UtpQueryFuncOpcodeRdAttr: > case UtpQueryFuncOpcodeWrAttr: > -- > 2.14.3.windows.1 > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#48064): https://edk2.groups.io/g/devel/message/48064 Mute This Topic: https://groups.io/mt/34263041/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThru : Fix UFS flag read from Query Resp UPIU
> -Original Message- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > Wu, Hao A > Sent: Thursday, September 26, 2019 9:40 AM > To: devel@edk2.groups.io; Agrawal, Sachin > Cc: Ni, Ray > Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThru : Fix UFS > flag read from Query Resp UPIU > > > -Original Message- > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > > Agrawal, Sachin > > Sent: Monday, September 23, 2019 7:48 PM > > To: devel@edk2.groups.io > > Cc: Agrawal, Sachin; Wu, Hao A; Ni, Ray > > Subject: [edk2-devel] [PATCH] MdeModulePkg/UfsPassThru : Fix UFS flag > > read from Query Resp UPIU > > > When pushing the patch, I will change the subject a little bit to: > MdeModulePkg/Ufs : Fix UFS flag read from Query Resp UPIU > > Other than this, the patch looks good to me: > Reviewed-by: Hao A Wu Patch pushed via commit cd70b1a71d. Best Regards, Hao Wu > > Best Regards, > Hao Wu > > > > > > As per UFS spec, flag value is stored in the 'last byte' of value > > field. Existing code is attempting to read first byte. > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2208 > > > > Test: Verified the Fix by sending command to set fPowerOnWPEn flag > > and then reading it to verify the set value. > > > > Cc: Hao A Wu > > Cc: Ray Ni > > > > Signed-off-by: Sachin Agrawal > > --- > > MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c | 5 - > > MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c | 5 - > > 2 files changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > > b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > > index e8ef0c2a7a..e450f6f49d 100644 > > --- a/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > > +++ b/MdeModulePkg/Bus/Ufs/UfsBlockIoPei/UfsHci.c > > @@ -977,7 +977,10 @@ UfsRwFlags ( > >} > > > >if (Trd->Ocs == 0) { > > -*Value = (UINT8)QueryResp->Tsf.Value; > > +// > > +// The 'FLAG VALUE' field is at byte offset 3 of QueryResp->Tsf.Value > > +// > > +*Value = *((UINT8*)&(QueryResp->Tsf.Value) + 3); > >} else { > > Status = EFI_DEVICE_ERROR; > >} > > diff --git a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > > b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > > index 0b95e7..93ac958f65 100644 > > --- a/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > > +++ b/MdeModulePkg/Bus/Ufs/UfsPassThruDxe/UfsPassThruHci.c > > @@ -863,7 +863,10 @@ UfsGetReturnDataFromQueryResponse ( > > case UtpQueryFuncOpcodeSetFlag: > > case UtpQueryFuncOpcodeClrFlag: > > case UtpQueryFuncOpcodeTogFlag: > > - CopyMem (Packet->DataBuffer, &QueryResp->Tsf.Value, sizeof > (UINT8)); > > + // > > + // The 'FLAG VALUE' field is at byte offset 3 of QueryResp->Tsf.Value > > + // > > + *((UINT8*)(Packet->DataBuffer)) = *((UINT8*)&(QueryResp- > >Tsf.Value) > > + 3); > >break; > > case UtpQueryFuncOpcodeRdAttr: > > case UtpQueryFuncOpcodeWrAttr: > > -- > > 2.14.3.windows.1 > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#48968): https://edk2.groups.io/g/devel/message/48968 Mute This Topic: https://groups.io/mt/34263041/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-