EFI breaks USB dual port detection - our observations

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.
=> usb start starting USB... Bus usb@ff5c0000: USB EHCI 1.00 Bus usb@ff5d0000: USB OHCI 1.0 Bus usb@ff600000: generic_phy_get_bulk : no phys property Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 Bus usb@ff580000: USB DWC2 scanning bus usb@ff5c0000 for devices... 2 USB Device(s) found scanning bus usb@ff5d0000 for devices... 1 USB Device(s) found scanning bus usb@ff600000 for devices... 1 USB Device(s) found scanning bus usb@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)
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@ff5c0000: USB EHCI 1.00 Bus usb@ff5d0000: USB OHCI 1.0 Bus usb@ff600000: generic_phy_get_bulk : no phys property Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 Bus usb@ff580000: USB DWC2 scanning bus usb@ff5c0000 for devices... 2 USB Device(s) found scanning bus usb@ff5d0000 for devices... 1 USB Device(s) found scanning bus usb@ff600000 for devices... 1 USB Device(s) found scanning bus usb@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

Am 18. Juli 2023 20:37:04 MESZ schrieb Suniel Mahesh sunil@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?
Cf. https://github.com/trini/u-boot/commit/180b7118bed8433f9cfe4b5ad62c6b0d90192...
Best regards
Heinrich
=> usb start starting USB... Bus usb@ff5c0000: USB EHCI 1.00 Bus usb@ff5d0000: USB OHCI 1.0 Bus usb@ff600000: generic_phy_get_bulk : no phys property Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 Bus usb@ff580000: USB DWC2 scanning bus usb@ff5c0000 for devices... 2 USB Device(s) found scanning bus usb@ff5d0000 for devices... 1 USB Device(s) found scanning bus usb@ff600000 for devices... 1 USB Device(s) found scanning bus usb@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)
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@ff5c0000: USB EHCI 1.00 Bus usb@ff5d0000: USB OHCI 1.0 Bus usb@ff600000: generic_phy_get_bulk : no phys property Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 Bus usb@ff580000: USB DWC2 scanning bus usb@ff5c0000 for devices... 2 USB Device(s) found scanning bus usb@ff5d0000 for devices... 1 USB Device(s) found scanning bus usb@ff600000 for devices... 1 USB Device(s) found scanning bus usb@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

On Tue, Jul 18, 2023 at 3:13 PM Heinrich Schuchardt xypron.glpk@gmx.de wrote:
Am 18. Juli 2023 20:37:04 MESZ schrieb Suniel Mahesh < sunil@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.
Cf. https://github.com/trini/u-boot/commit/180b7118bed8433f9cfe4b5ad62c6b0d90192...
Best regards
Heinrich
=> usb start starting USB... Bus usb@ff5c0000: USB EHCI 1.00 Bus usb@ff5d0000: USB OHCI 1.0 Bus usb@ff600000: generic_phy_get_bulk : no phys property Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 Bus usb@ff580000: USB DWC2 scanning bus usb@ff5c0000 for devices... 2 USB Device(s) found scanning bus usb@ff5d0000 for devices... 1 USB Device(s) found scanning bus usb@ff600000 for devices... 1 USB Device(s) found scanning bus usb@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)
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@ff5c0000: USB EHCI 1.00 Bus usb@ff5d0000: USB OHCI 1.0 Bus usb@ff600000: generic_phy_get_bulk : no phys property Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.10 Bus usb@ff580000: USB DWC2 scanning bus usb@ff5c0000 for devices... 2 USB Device(s) found scanning bus usb@ff5d0000 for devices... 1 USB Device(s) found scanning bus usb@ff600000 for devices... 1 USB Device(s) found scanning bus usb@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

On 7/19/23 02:55, Da Xue wrote:
On Tue, Jul 18, 2023 at 3:13 PM Heinrich Schuchardt <xypron.glpk@gmx.de mailto:xypron.glpk@gmx.de> wrote:
Am 18. Juli 2023 20:37:04 MESZ schrieb Suniel Mahesh <sunil@amarulasolutions.com <mailto:sunil@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@ff5c0000: USB EHCI 1.00 >Bus usb@ff5d0000: USB OHCI 1.0 >Bus usb@ff600000: generic_phy_get_bulk : no phys property >Register 2000140 NbrPorts 2 >Starting the controller >USB XHCI 1.10 >Bus usb@ff580000: USB DWC2 >scanning bus usb@ff5c0000 for devices... >2 USB Device(s) found >scanning bus usb@ff5d0000 for devices... 1 USB Device(s) found >scanning bus usb@ff600000 for devices... 1 USB Device(s) found >scanning bus usb@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@ff5c0000: USB EHCI 1.00 >Bus usb@ff5d0000: USB OHCI 1.0 >Bus usb@ff600000: generic_phy_get_bulk : no phys property >Register 2000140 NbrPorts 2 >Starting the controller >USB XHCI 1.10 >Bus usb@ff580000: USB DWC2 >scanning bus usb@ff5c0000 for devices... 2 USB Device(s) found >scanning bus usb@ff5d0000 for devices... 1 USB Device(s) found >scanning bus usb@ff600000 for devices... 1 USB Device(s) found >scanning bus usb@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
participants (3)
-
Da Xue
-
Heinrich Schuchardt
-
Suniel Mahesh