Hello Christian, On 24.08.23 14:04, Christian Eggers wrote: > ok, I should better read the manuals ... > > "Once a specific mode has been selected it can't be changed later anymore." > > In the past I used two OTG cores, one as device and one as host. So both > OTGs were set to a fixed drmode in the device tree. > > No I need to implement both features via a single OTG. But probably > I can use another criteria for choosing the correct boot methods instead of > trying both. Obvious choices is checking [ "$bootsource" = serial ] or checking if device is gadget through ID pin or Type C controller. Is that possible in your case? Cheers, Ahmad > > > On Thursday, 24 August 2023, 13:30:46 CEST, Christian Eggers wrote: >> Application: >> >> 1. Try to boot via fastboot (usb device) >> 2. Try to boot via usb drive (usb host) >> >> Problem: >> >> barebox@i.MX6ULL:/ setenv otg.mode=host >> imx-usb 2184000.usb@xxxxxxxxxx: USB EHCI 1.00 >> barebox@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. >> >> > > > > > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |