From: Marius Dinu <m95d+git@psihoexpert.ro>
To: Jonas Karlman <jonas@kwiboo.se>
Cc: Marius Dinu <m95d+git@psihoexpert.ro>,
"u-boot@lists.denx.de" <u-boot@lists.denx.de>
Subject: Re: [PATCH] USB: dwc2: allow usb start even if usbphy is not found
Date: Tue, 17 Mar 2026 11:20:45 +0200 [thread overview]
Message-ID: <abkc7YaVNYXGR+jd@GRAPHRT> (raw)
In-Reply-To: <822b68b9-e0a8-401f-a0b2-f4c66d1084d0@kwiboo.se>
On Mon, 2026-03-16 22.41.08 ++0100, Jonas Karlman wrote:
> Hi Marius,
>
> On 3/16/2026 4:12 PM, Marius Dinu wrote:
> > On Mon, 2026-03-16 11.04.13 ++0100, Jonas Karlman wrote:
> >> Hi Marius,
> >>
> >> On 3/16/2026 10:26 AM, Marius Dinu wrote:
> >>> RK3288 uses rockchip_usb2_phy, but that driver doesn't register iself
> >>> as a usbphy driver and "usb start" fails with this error:
> >>>
> >>> drivers/usb/host/dwc2.c:1254- dwc2_setup_phy() dwc2_usb usb@ff580000:
> >>> Failed to get USB PHY: -19.
> >>>
> >>> Until a proper fix is made for rockchip_usb2_phy, this patch allows
> >>> usb start to continue even if usbphy is not found.
> >>>
> >>> Tested on Asus TinkerBoard.
> >>
> >> I am not seeing this issue on my TinkerBoard, what U-Boot version are
> >> you testing and have you made any config changes compared to
> >> tinker-rk3288_defconfig?
> >
> > I'm using the github master branch pulled today + lots and lots of changes
> > in config. I didn't make a diff, but I expect it to be very very far from
> > tinker-rk3288_defconfig.
> >
> >>
> >> => usb start
> >> starting USB...
> >> USB DWC2
> >> USB DWC2
> >> Bus usb@ff540000: 2 USB Device(s) found
> >> Bus usb@ff580000: 1 USB Device(s) found
> >> scanning usb for storage devices... 0 Storage Device(s) found
> >>
> >> => dm tree -e usb
> >> Class Seq Probed Driver Name
> >> -----------------------------------------------------------
> >> usb 0 [ + ] dwc2_usb usb@ff540000
> >> usb_hub 0 [ + ] usb_hub `-- usb_hub
> >> usb_hub 1 [ + ] usb_hub `-- usb_hub
> >> usb 1 [ + ] dwc2_usb usb@ff580000
> >> usb_hub 2 [ + ] usb_hub `-- usb_hub
> >>
> >> Have something changed recently that broke this?
> >
> > Yes! but not exactly recently...
> > It broke since commit e17a4bf198510693967644c331ab621fc41ea8b5.
> > Here's a log on my system without my proposed fix. This is a log that I
> > saved while I was investigating the failed USB, about a year ago, I think.
> > But I checked and it still fails with today's git master, I just don't have
> > the time to enable all the debug options again. It's still ret -19 error.
>
> I did a new runtime test on a Tinker Board R2.0 using master with
> tinker-rk3288_defconfig and I am not able to reproduce any issue. Maybe
> your config changes introduce a condition that causes an issue? Please
> share your savedefconfig.
>
>
>
> I have re-run some tests with different Kconfig options related to
> GADGET and DWC2 and are not able to reproduce your issue.
>
> As mentioned above, please share your config changes compared to tinker
> defconfig, maybe you have some Kconfig option enabled that make DWC2
> work differently?
>
>
> U-Boot SPL 2026.04-rc4-00007-g010855c5005e (Mar 16 2026 - 21:33:53 +0000)
> Trying to boot from RAM
> ## Checking hash(es) for config conf-1 ... OK
> ## Checking hash(es) for Image firmware-1 ... crc32+ OK
> ## Checking hash(es) for Image fdt-1 ... crc32+ OK
> spl_perform_arch_fixups: could not map BootROM boot device to ofpath
>
>
> U-Boot 2026.04-rc4-00007-g010855c5005e (Mar 16 2026 - 21:33:53 +0000)
>
> SoC: Rockchip rk3288
> Reset cause: POR
> Model: Rockchip RK3288 Asus Tinker Board
> DRAM: 2 GiB
> PMIC: RK808
> Core: 221 devices, 27 uclasses, devicetree: separate
> MMC: mmc@ff0c0000: 1, mmc@ff0d0000: 2
> Loading Environment from MMC... Card did not respond to voltage select! : -110
> *** Warning - No block device, using default environment
>
> In: serial,usbkbd
> Out: serial,vidconsole
> Err: serial,vidconsole
> Net: eth0: ethernet@ff290000
>
> Hit any key to stop autoboot: 0
> => usb start
> starting USB...
> USB DWC2
> USB DWC2
> Bus usb@ff540000: 2 USB Device(s) found
> Bus usb@ff580000: 1 USB Device(s) found
> scanning usb for storage devices... 0 Storage Device(s) found
> => usb tree
> USB device tree:
> 1 Hub (480 Mb/s, 0mA)
> | U-Boot Root Hub
> |
> +-2 Hub (480 Mb/s, 100mA)
> USB2.0 Hub
>
> 1 Hub (480 Mb/s, 0mA)
> U-Boot Root Hub
>
> => dm tree -e usb
> Class Seq Probed Driver Name
> -----------------------------------------------------------
> usb 0 [ + ] dwc2_usb usb@ff540000
> usb_hub 0 [ + ] usb_hub `-- usb_hub
> usb_hub 1 [ + ] usb_hub `-- usb_hub
> usb 1 [ + ] dwc2_usb usb@ff580000
> usb_hub 2 [ + ] usb_hub `-- usb_hub
> pinconfig 130 [ ] pinconfig usb
> pinconfig 131 [ ] pinconfig |-- host-vbus-drv
> pinconfig 132 [ ] pinconfig `-- pwr-3g
> =>
>
> Regards,
> Jonas
I tested the tinkerboard defconfig. It does work. As far as I can tell, it
doesn't try to load the phy driver at all. The only significant difference
is that I didn't enable OTG/gadget in my config - it's just the usb-host
driver.
So the bug is still there, it's just that the OTG driver doesn't search for
a phy driver.
Marius
>
> >
> > Marius
> >
> > PS: There is a duplicate of this email sent from the wrong address. Sorry.
> >
> >>
> >> Anyway if something needs fixing it is probably rockchip_usb2_phy.
> >>
> >> Regards,
> >> Jonas
> >>
> >>>
> >>> Signed-off-by: Marius Dinu <m95d+git@psihoexpert.ro>
> >>> ---
> >>> drivers/usb/host/dwc2.c | 5 ++---
> >>> 1 file changed, 2 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c
> >>> index 16f21fa9083..74d71f23d88 100644
> >>> --- a/drivers/usb/host/dwc2.c
> >>> +++ b/drivers/usb/host/dwc2.c
> >>> @@ -1329,7 +1329,7 @@ static int dwc2_usb_probe(struct udevice *dev)
> >>>
> >>> ret = dwc2_setup_phy(dev);
> >>> if (ret)
> >>> - return ret;
> >>> + dev_dbg(dev, "Failed to setup PHY: %d. Continuing anyway...\n", ret);
> >>>
> >>> return dwc2_init_common(dev, priv);
> >>> }
> >>> @@ -1345,8 +1345,7 @@ static int dwc2_usb_remove(struct udevice *dev)
> >>>
> >>> ret = dwc2_shutdown_phy(dev);
> >>> if (ret) {
> >>> - dev_dbg(dev, "Failed to shutdown USB PHY: %d.\n", ret);
> >>> - return ret;
> >>> + dev_dbg(dev, "Failed to shutdown USB PHY: %d. Continuing anyway...\n", ret);
> >>> }
> >>>
> >>> dwc2_uninit_common(priv->regs);
> >>
> >
>
prev parent reply other threads:[~2026-03-17 9:20 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-16 9:26 [PATCH] USB: dwc2: allow usb start even if usbphy is not found Marius Dinu
2026-03-16 10:04 ` Jonas Karlman
2026-03-16 14:27 ` Marius Dinu
2026-03-16 15:12 ` Marius Dinu
2026-03-16 21:41 ` Jonas Karlman
2026-03-17 7:37 ` Marius Dinu
2026-03-17 9:20 ` Marius Dinu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=abkc7YaVNYXGR+jd@GRAPHRT \
--to=m95d+git@psihoexpert.ro \
--cc=jonas@kwiboo.se \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.