[PATCH] configs: am62x_evm_*: Fix USB DFU configuration
Siddharth Vadapalli
s-vadapalli at ti.com
Fri Dec 6 10:38:51 CET 2024
On Fri, Dec 06, 2024 at 11:17:28AM +0200, Roger Quadros wrote:
> Hello Siddharth,
>
> On 06/12/2024 09:19, Siddharth Vadapalli wrote:
[...]
> > While this fixes the issue, I am wondering if the issue lies elsewhere.
> > In U-Boot, the compatible "snps,dwc3" is associated with:
> > drivers/usb/host/xhci-dwc3.c
> > while in Linux, the compatible "snps,dwc3" is associated with:
> > drivers/usb/dwc3/core.c
> >
> > So there seem to be two alternatives that I could think of:
> > 1. Modify U-Boot to match Linux in the sense that we associate
> > "snps,dwc3" with drivers/usb/dwc3/core.c in U-Boot.
>
> Many platforms (grep for CONFIG_USB_XHCI_DWC3
> in configs/) use xhci-dwc3 to get Host mode working
> without the need for core.c. Maybe it was more simpler that way?
> Also see USB_XHCI_DWC3_OF_SIMPLE.
>
> So if we drop "snps,dwc3" from xhci-dwc3, we will have to ensure each
> and every platform works.
Yes, that will require significant effort and testing.
>
> > 2. With the understanding that "dr_mode" doesn't have to be host/otg for
> > the compatible "snps,dwc3" which is tied to drivers/usb/host/xhci-dwc3.c,
> > do the following to exit probe when "dr_mode" is "peripheral":
> > -------------------------------------------------------------------------
> > diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
> > index e3e0ceff43e..edfd7b97a73 100644
> > --- a/drivers/usb/host/xhci-dwc3.c
> > +++ b/drivers/usb/host/xhci-dwc3.c
> > @@ -208,6 +208,8 @@ static int xhci_dwc3_probe(struct udevice *dev)
> > writel(reg, &dwc3_reg->g_usb2phycfg[0]);
> >
> > dr_mode = usb_get_dr_mode(dev_ofnode(dev));
> > + if (dr_mode == USB_DR_MODE_PERIPHERAL)
> > + return -ENODEV;
> > if (dr_mode == USB_DR_MODE_OTG &&
> > dev_read_bool(dev, "usb-role-switch")) {
> > dr_mode = usb_get_role_switch_default_mode(dev_ofnode(dev));
> > -------------------------------------------------------------------------
> > which will still show "xhci-dwc3" in the output of "dm tree" after "usb
> > start", but the driver won't be probed (absence of "+" in the "Probed"
> > column of "dm tree" output).
>
> I agree with your second proposal.
> But it is a separate bug (in xhci-dwc3 driver) which also
> fixes the issue this patch is fixing.
>
> Regardless, I think both fixes should go in.
>
> Could you please send a patch to fix xhci-dwc3? Thanks!
Sure. Thank you for reviewing the suggestions and sharing your feedback.
Regards,
Siddharth.
More information about the U-Boot
mailing list