Hello, I'm using a board equipped with ChipIdea UDC and trying to expose storage device (for example) out of it. I load the following modules/drivers: udc-core libcomposite ci_hdrc ci_hdrc_usb usb_f_mass_storage. Next, I used the basic setup via configfs: idVendor = 0x1d6b idProduct = 0x0001 Created an empty config, function and linked the function to configuration: mkdir configs/c.1 mkdir functions/mass_storage.1 (also created lun0 with dd) ln -s functions/mass_storage.1 configs/c.1 Then started the device: echo ci_hdrc.0 > UDC On device side I can see that the setup from Linux perspective is looking good: [ 8.360082] Mass Storage Function, version: 2009/09/11 [ 8.360094] LUN: removable file: (no medium) However on the host side I see some errors: [ 10.087328] usb 1-1: device descriptor read/64, error -32 [ 10.455328] usb 1-1: device descriptor read/64, error -32 [ 10.695328] usb 1-1: device descriptor read/64, error -32 [ 11.875327] usb 1-1: device not accepting address 4, error -32 [ 12.423327] usb 1-1: device not accepting address 5, error -32 [ 12.429178] usb usb1-port1: unable to enumerate USB device I added some debug printks to both coreidea/udc.c and coreidea/core.c and can see that the interatom between the platform driver and the device controller is ok (i.e interrupts etc). git tag 4.14.76. Any idea? Thanks a lot in advance for any help. Yuval