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. 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. > >