Hi Liming, I create one pull request: MdeModulePkg/XhciDxe: Reset endpoint while USB Transaction error by Xianglei-Cai · Pull Request #5631 · tianocore/edk2 (github.com). Is it helpful for merge the change? Thanks, Xianglei From: gaoliming Sent: Tuesday, May 7, 2024 9:12 AM To: Shih, More ; Cai, Xianglei ; devel@edk2.groups.io Cc: Ni, Ray ; Lewandowski, Krzysztof ; Huang, Jenny Subject: 回复: [edk2-devel] [PATCH V2 1/1] MdeModulePkg/XhciDxe: Reset endpoint while USB Transaction error I will merge it this week. 发件人: Shih, More > 发送时间: 2024年5月6日 11:34 收件人: Cai, Xianglei >; gaoliming >; devel@edk2.groups.io 抄送: Ni, Ray >; Lewandowski, Krzysztof >; Huang, Jenny > 主题: Re: [edk2-devel] [PATCH V2 1/1] MdeModulePkg/XhciDxe: Reset endpoint while USB Transaction error Hi Gaoliming, Could you help push the PR ? BR, More Shih ________________________________ From: Cai, Xianglei > Sent: Friday, April 26, 2024 5:13 PM To: gaoliming >; devel@edk2.groups.io > Cc: Ni, Ray >; Lewandowski, Krzysztof >; Huang, Jenny >; Shih, More > Subject: RE: [edk2-devel] [PATCH V2 1/1] MdeModulePkg/XhciDxe: Reset endpoint while USB Transaction error I have no access to push PR. But I tried with my personal fork, it can pass CI. Thanks, Xianglei -----Original Message----- From: gaoliming > Sent: Friday, April 26, 2024 4:44 PM To: devel@edk2.groups.io; Cai, Xianglei > Cc: Ni, Ray >; Lewandowski, Krzysztof >; Huang, Jenny >; Shih, More > Subject: 回复: [edk2-devel] [PATCH V2 1/1] MdeModulePkg/XhciDxe: Reset endpoint while USB Transaction error Can you create PR for this patch? If it passes CI, I will add push label. Thanks Liming > -----邮件原件----- > 发件人: devel@edk2.groups.io > 代表 Xianglei Cai > 发送时间: 2024年4月25日 17:58 > 收件人: gaoliming >; devel@edk2.groups.io > 抄送: Ni, Ray >; Lewandowski, Krzysztof > >; Huang, Jenny > >; Shih, More > > 主题: Re: [edk2-devel] [PATCH V2 1/1] MdeModulePkg/XhciDxe: Reset > endpoint while USB Transaction error > > Hi @gaoliming > > Could you provide the eta when the patch can be merged? > > Thanks, > Xianglei > > -----Original Message----- > From: Cai, Xianglei > Sent: Thursday, April 18, 2024 4:59 PM > To: gaoliming >; devel@edk2.groups.io > Cc: Ni, Ray >; Lewandowski, Krzysztof > >; Huang, Jenny > >; Shih, More > > Subject: RE: [edk2-devel] [PATCH V2 1/1] MdeModulePkg/XhciDxe: Reset > endpoint while USB Transaction error > > Hi Liming, > > Could you help pick the change to the master branch? > > Thanks, > Xianglei > > -----Original Message----- > From: gaoliming > > Sent: Monday, April 15, 2024 5:52 PM > To: devel@edk2.groups.io; Cai, Xianglei > > Cc: Ni, Ray >; Lewandowski, Krzysztof > >; Huang, Jenny > >; Shih, More > > Subject: 回复: [edk2-devel] [PATCH V2 1/1] MdeModulePkg/XhciDxe: Reset > endpoint while USB Transaction error > > Reviewed-by: Liming Gao > > > > -----邮件原件----- > > 发件人: devel@edk2.groups.io > 代表 Xianglei > Cai > > 发送时间: 2024年4月15日 14:55 > > 收件人: devel@edk2.groups.io > > 抄送: Xianglei Cai >; Ray Ni > > >; Liming Gao >; Krzysztof > > Lewandowski >; Jenny Huang > > >; More Shih > > > 主题: [edk2-devel] [PATCH V2 1/1] MdeModulePkg/XhciDxe: Reset > endpoint > > while USB Transaction error > > > > https://bugzilla.tianocore.org/show_bug.cgi?id=4556 > > > > Based on XHCI spec 4.8.3, software should do the reset endpoint > > while USB Transaction occur. > > Add the error code for USB Transaction error since UEFI spec don't > > have the related definition. > > > > Cc: Ray Ni > > > Cc: Liming Gao > > > Cc: Krzysztof Lewandowski > > > Cc: Jenny Huang > > > Cc: More Shih > > > Signed-off-by: Xianglei Cai > > > Reviewed-by: Krzysztof Lewandowski > > > --- > > MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c | 5 ++++- > > MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c | 5 ++++- > > MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.h | 7 +++++++ > > 3 files changed, 15 insertions(+), 2 deletions(-) > > > > diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > > b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > > index f4e61d223c1b..cf6b32959e68 100644 > > --- a/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > > +++ b/MdeModulePkg/Bus/Pci/XhciDxe/Xhci.c > > @@ -825,7 +825,10 @@ XhcTransfer ( > > *TransferResult = Urb->Result; > > *DataLength = Urb->Completed; > > > > - if ((*TransferResult == EFI_USB_ERR_STALL) || (*TransferResult == > > EFI_USB_ERR_BABBLE)) { > > + // > > + // Based on XHCI spec 4.8.3, software should do the reset > > + endpoint > while > > USB Transaction occur. > > + // > > + if ((*TransferResult == EFI_USB_ERR_STALL) || (*TransferResult == > > EFI_USB_ERR_BABBLE) || (*TransferResult == > > EDKII_USB_ERR_TRANSACTION)) { > > ASSERT (Status == EFI_DEVICE_ERROR); > > RecoveryStatus = XhcRecoverHaltedEndpoint (Xhc, Urb); > > if (EFI_ERROR (RecoveryStatus)) { diff --git > > a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > > b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > > index 5d735008ba31..a97ed44dbfc3 100644 > > --- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > > +++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > > @@ -1192,8 +1192,11 @@ XhcCheckUrbResult ( > > DEBUG ((DEBUG_ERROR, "XhcCheckUrbResult: ERR_BUFFER! > > Completecode = %x\n", EvtTrb->Completecode)); > > goto EXIT; > > > > + // > > + // Based on XHCI spec 4.8.3, software should do the reset > > + endpoint > > while USB Transaction occur. > > + // > > case TRB_COMPLETION_USB_TRANSACTION_ERROR: > > - CheckedUrb->Result |= EFI_USB_ERR_TIMEOUT; > > + CheckedUrb->Result |= EDKII_USB_ERR_TRANSACTION; > > CheckedUrb->Finished = TRUE; > > DEBUG ((DEBUG_ERROR, "XhcCheckUrbResult: > > TRANSACTION_ERROR! Completecode = %x\n", EvtTrb->Completecode)); > > goto EXIT; > > diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.h > > b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.h > > index 7c85f7993b5c..e606e212a1d3 100644 > > --- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.h > > +++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.h > > @@ -78,6 +78,13 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > > #define TRB_COMPLETION_STOPPED 26 > > #define TRB_COMPLETION_STOPPED_LENGTH_INVALID 27 > > > > +// > > +// USB Transfer Results Internal Definition // Based on XHCI spec > > +4.8.3, software should do the reset endpoint while > > USB Transaction occur. > > +// Add the error code for USB Transaction error since UEFI spec > > +don't > have > > the related definition. > > +// > > +#define EDKII_USB_ERR_TRANSACTION 0x200 > > + > > // > > // The topology string used to present usb device location // > > -- > > 2.42.0.windows.2 > > > > > > > > > > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#118619): https://edk2.groups.io/g/devel/message/118619 Mute This Topic: https://groups.io/mt/105952466/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-