EFI breaks USB dual port detection - our observations
Suniel Mahesh
sunil at amarulasolutions.com
Tue Jul 18 20:37:04 CEST 2023
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 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)
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
--
Suniel Mahesh
Embedded Linux and Kernel Engineer
Amarula Solutions India
More information about the U-Boot
mailing list