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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox