usbotg: otg_set_mode() can only be called once
Christian Eggers
ceggers at arri.de
Thu Aug 24 04:30:46 PDT 2023
Application:
1. Try to boot via fastboot (usb device)
2. Try to boot via usb drive (usb host)
Problem:
barebox at i.MX6ULL:/ setenv otg.mode=host
imx-usb 2184000.usb at 2184000.of: USB EHCI 1.00
barebox at i.MX6ULL:/ setenv otg.mode=peripheral
Cannot set parameter otg.mode: Device or resource busy
Analysis:
The otgdev core maintains one `struct otg_mode` per device. The function
checks whether the current mode is equal to USB_DR_MODE_OTG. If not, it
returns -EBUSY. There is currently no way to reset the current mode back to
USB_DR_MODE_OTG after it has been set to peripheral or host mode once.
More information about the barebox
mailing list