EFI breaks USB dual port detection - our observations

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Jul 19 04:38:06 CEST 2023


On 7/19/23 02:55, Da Xue wrote:
> On Tue, Jul 18, 2023 at 3:13 PM Heinrich Schuchardt <xypron.glpk at gmx.de
> <mailto:xypron.glpk at gmx.de>> wrote:
>
>
>
>     Am 18. Juli 2023 20:37:04 MESZ schrieb Suniel Mahesh
>     <sunil at amarulasolutions.com <mailto:sunil at amarulasolutions.com>>:
>      >Hi,
>      >
>      >I am testing the USB infrastructure on a Rockchip RK3328 based
>      >roc-rk3328-cc target.
>      >
>      >The USB tree on the device is as follows:
>      >
>      >=> usb tree
>      >USB device tree:
>      >  1  Hub (480 Mb/s, 0mA)
>      >     u-boot EHCI Host Controller
>      >
>      >  1  Hub (12 Mb/s, 0mA)
>      >      U-Boot Root Hub   (OHCI)
>      >
>      >  1  Hub (5 Gb/s, 0mA)
>      >     U-Boot XHCI Host Controller
>      >
>      >  1  Hub (480 Mb/s, 0mA)
>      >      U-Boot Root Hub (DWC2)
>      >
>      >For some reason I am unable to detect storage device on DWC2 when
>     two USB
>      >drives
>      >are simultaneously connected on EHCI and DWC2. Though it shows 2
>     storage
>      >devices
>      >when i do a "usb start/reset" and it gives usb_mass_storage.lun0
>     failed
>      >message as
>      >shown below.
>
>     On which U-Boot version are you?
>
>
> This is replicated on v2023.07.

We need to model the UCLASS_USB device in the EFI device path to make
the device paths of the two USB sticks unique.

Best regards

Heinrich

>
>
>     Cf.
>     https://github.com/trini/u-boot/commit/180b7118bed8433f9cfe4b5ad62c6b0d901924f5 <https://github.com/trini/u-boot/commit/180b7118bed8433f9cfe4b5ad62c6b0d901924f5>
>
>     Best regards
>
>     Heinrich
>
>
>
>      >
>      >=> usb start
>      >starting USB...
>      >Bus usb at ff5c0000: USB EHCI 1.00
>      >Bus usb at ff5d0000: USB OHCI 1.0
>      >Bus usb at ff600000: generic_phy_get_bulk : no phys property
>      >Register 2000140 NbrPorts 2
>      >Starting the controller
>      >USB XHCI 1.10
>      >Bus usb at ff580000: USB DWC2
>      >scanning bus usb at ff5c0000 for devices...
>      >2 USB Device(s) found
>      >scanning bus usb at ff5d0000 for devices... 1 USB Device(s) found
>      >scanning bus usb at ff600000 for devices... 1 USB Device(s) found
>      >scanning bus usb at ff580000 for devices...
>      >Adding disk for usb_mass_storage.lun0 failed
>      >(err=-9223372036854775788/0x8000000000000014)
>      >device 'usb_mass_storage.lun0' failed to unbind
>      >1 USB Device(s) found
>      >device 'usb_mass_storage.lun0' failed to unbind
>      >       scanning usb for storage devices... 2 Storage Device(s) found
>      >
>      >=> usb tree
>      >USB device tree:
>      >  1  Hub (480 Mb/s, 0mA)
>      >  |  u-boot EHCI Host Controller
>      >  |
>      >  +-2  Mass Storage (480 Mb/s, 224mA)
>      >       SanDisk Dual Drive 040130e3ee554b7078843f4eb331646
>      >
>      >  1  Hub (12 Mb/s, 0mA)
>      >      U-Boot Root Hub
>      >
>      >  1  Hub (5 Gb/s, 0mA)
>      >     U-Boot XHCI Host Controller
>      >
>      >  1  Hub (480 Mb/s, 0mA)
>      >      U-Boot Root Hub
>      >
>      >call trace: (detailed log:
>      >https://gist.github.com/sunielmahesh/10088ea7b536cc9898ef787d9db43721 <https://gist.github.com/sunielmahesh/10088ea7b536cc9898ef787d9db43721>)
>      >
>      >efi_install_multiple_protocol_interfaces_int
>      >device path
>      >/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/USB(0x0,0x0)/USB(0x1,0x0)/Ctrl(0x0)
>      >09576e91-6d3f-11d2-8e39-00a0c969723b, 00000000fcf1bae8,
>      >00000000fcf1bae0efi_locate_device_path: ret = EFI_SUCCESS
>      >efi_install_multiple_protocol_interfaces_int: ret=0, dp->type:7f
>      >Path
>      >/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/USB(0x0,0x0)/USB(0x1,0x0)/Ctrl(0x0)
>      >already installed
>      >install failed 8000000000000014
>      >
>      >However, an interesting observation is that if i disable
>     CONFIG_EFI_LOADER,
>      >then I am able to detect the storage devices
>      >without any usb_mass_storage.lun0 failed message:
>      >
>      >=> usb reset
>      >resetting USB...
>      >Bus usb at ff5c0000: USB EHCI 1.00
>      >Bus usb at ff5d0000: USB OHCI 1.0
>      >Bus usb at ff600000: generic_phy_get_bulk : no phys property
>      >Register 2000140 NbrPorts 2
>      >Starting the controller
>      >USB XHCI 1.10
>      >Bus usb at ff580000: USB DWC2
>      >scanning bus usb at ff5c0000 for devices... 2 USB Device(s) found
>      >scanning bus usb at ff5d0000 for devices... 1 USB Device(s) found
>      >scanning bus usb at ff600000 for devices... 1 USB Device(s) found
>      >scanning bus usb at ff580000 for devices... 2 USB Device(s) found
>      >       scanning usb for storage devices... 2 Storage Device(s) found
>      >=> usb tree
>      >USB device tree:
>      >  1  Hub (480 Mb/s, 0mA)
>      >  |  u-boot EHCI Host Controller
>      >  |
>      >  +-2  Mass Storage (480 Mb/s, 224mA)
>      >       SanDisk Dual Drive 040130e3ee554b7078843f4eb331646
>      >
>      >  1  Hub (12 Mb/s, 0mA)
>      >      U-Boot Root Hub
>      >
>      >  1  Hub (5 Gb/s, 0mA)
>      >     U-Boot XHCI Host Controller
>      >
>      >  1  Hub (480 Mb/s, 0mA)
>      >  |   U-Boot Root Hub
>      >  |
>      >  +-2  Mass Storage (480 Mb/s, 224mA)
>      >       SanDisk Dual Drive 04019c9b2e1a58f24ee318c3c123aa5
>      >
>      >Please share you thoughts.
>      >
>      >Thanks and Regards
>



More information about the U-Boot mailing list