Hello Everyone, Hi Peter I'm currently facing two USB problems with our Colibri iMX6ULL CoM. I'm asking here on the mailinglist if anyone else has seen similar problems and if anyone have any idea how I could solve this. On our iMX7 based CoM the Colibri iMX7 everything is working fine and from what I can tell it has the same Chipidea IP as the iMX6ULL which makes it strange to me that one is working but not the other one. 1st problem - RNDIS We try to use RNDIS on one of the USB ports the Colibri iMX6ULL has. For this purpose I'm using the usb_f_rndis.ko kernel module and setting dr_mode of &usbotg1 to "peripheral" This works fine on iMX7 but does not on iMX6ULL. On the ULL board I can see a "ci_hdrc.0" in /sys/class/udc after boot. If I add now an USB GPIO extcon to usbotg this changes to "ci_hdrc.1" and everything works fine after boot, but not after unplugging USB and replugging. To setup RNDIS I use the commands [1] I put at the end of this email for reference. 2nd problem - constant resetting When I compile a plain mainline kernel with "imx_v6_v7_defconfig" and boot the iMX6ULL with it I see that the USB is constantly resetting the hub that is present on the Colibri Evaluation carrier board. [ 49.654621] usb 1-1: reset high-speed USB device number 2 using ci_hdrc [ 52.180781] usb 1-1: reset high-speed USB device number 2 using ci_hdrc [ 54.699678] usb 1-1: reset high-speed USB device number 2 using ci_hdrc This looks to me like something is still not quite right for the use- case of ULL. I doubt that our hardware is the problem as we never have seen those problems downstream. @Peter: Stefan Agner suggested to include you too in this mail as you have in depth knowledge of differencies of the Chipidea IP of iMX7 and iMX6ULL. I hope you can point me to a direction where I can pick up again and solve those issues :-). For any suggestions or confirmations of those problems I would be very grateful. Best Regards, Philippe Schenker [1] CONFIGFS="/sys/kernel/config/usb_gadget/grndis" echo "Testscript for RNDIS, setting up RNDIS stuff in ${CONFIGFS}" mkdir $CONFIGFS echo 7015 > "${CONFIGFS}/idVendor" echo 16412 > "${CONFIGFS}/idProduct" mkdir "${CONFIGFS}/strings/0x409" echo "Toradex" > ${CONFIGFS}/strings/0x409/manufacturer echo "Test-Module" > ${CONFIGFS}/strings/0x409/product echo "12345678" > ${CONFIGFS}/strings/0x409/serialnumber mkdir -p "${CONFIGFS}/configs/c.1/strings/0x409/" echo 1 > ${CONFIGFS}/configs/c.1/MaxPower echo 192 > ${CONFIGFS}/configs/c.1/bmAttributes mkdir -p "${CONFIGFS}/functions/rndis.usb0" echo "02" > "${CONFIGFS}/functions/rndis.usb0/class" echo "00:14:2d:ff:ff:ff" > "${CONFIGFS}/functions/rndis.usb0/dev_addr" echo "00:14:2d:ff:ff:fe" > "${CONFIGFS}/functions/rndis.usb0/host_addr" echo "00" > "${CONFIGFS}/functions/rndis.usb0/protocol" echo 5 > "${CONFIGFS}/functions/rndis.usb0/qmult" echo "06" > "${CONFIGFS}/functions/rndis.usb0/subclass" ln -s "${CONFIGFS}/functions/rndis.usb0" "${CONFIGFS}/configs/c.1/rndis.usb0" echo "ci_hdrc.0" > "${CONFIGFS}/UDC"